Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
LOCATION OF A MOBILE STATION
Document Type and Number:
WIPO Patent Application WO/1998/010307
Kind Code:
A1
Abstract:
A location system is disclosed for commercial wireless telecommunication infrastructures. The system is an end-to-end solution having one or more location centers for outputting requested locations of commercially available handsets or mobile stations (MS) based on, e.g., CDMA, AMPS, NAMPS or TDMA communication standards, for processing both local MS location requests and more global MS location requests via, e.g., Internet communication between a distributed network of location centers. The system uses a plurality of MS locating technologies including those based on: (1) two-way TOA and TDOA; (2) pattern recognition; (3) distributed antenna provisioning; and (4) supplemental information from various types of very low cost non-infrastructure base stations for communicating via a typical commercial wireless base station infrastructure or a public telephone switch network.

Inventors:
DUPRAY DENNIS JAY (US)
KARR CHARLES L (US)
Application Number:
PCT/US1997/015892
Publication Date:
March 12, 1998
Filing Date:
September 08, 1997
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
DUPRAY DENNIS JAY (US)
KARR CHARLES L (US)
International Classes:
G01S1/02; G01S19/09; G01S5/00; G01S5/02; G01S19/46; H04W64/00; G01S5/06; (IPC1-7): G01S3/02
Foreign References:
US5212804A1993-05-18
US5574648A1996-11-12
US5610972A1997-03-11
Attorney, Agent or Firm:
Kovarik, Joseph E. (P.C. Suite 3500, 1700 Lincoln Stree, Denver CO, US)
Dupray, Dennis J. (Suite 3500 1700 Lincoln Stree, Denver CO, US)
Download PDF:
Claims:
AMENDED CLAIMS [received by the International Bureau on 27 March 1998 (27.03.98); original claims 1-124 replaced by new claims 1-47 (32 pages)]
1. A method for locating a wireless mobile station using wireless signal measurements obtained from transmissions between said mobile station and a plurality of base stations capable of wirelessly detecting said mobile station, comprising: providing first and second mobile station location estimators, wherein said location estimators provide location estimates of said mobile station when said location estimators are supplied with data obtained from wireless signal measurements obtained from transmissions between said mobile station and the base stations, wherein: (A) said first location estimator performs one or more of the techniques when supplied with said wireless signal measurements: (a) a triangulation technique to determine, for each of three or more of the base stations, one of: a distance and a wireless signal angle of arrival between the mobile station and the base station using the wireless signal measurements ; (b) a learning technique, wherein said learning technique determines an association for associating: the wireless signal measurements, and data indicative of a location for the mobile station, wherein said association is determined by a training process using a plurality of data pairs, each said pair including: first information indicative of a location of some mobile station, and second information from wireless signal measurements between said some mobile station and one or more of the base stations when said some mobile station is at the location; (c) a stochastic technique, wherein each said stochastic technique uses a statistical correlation for correlating: the wireless signal measurements, and data indicative of a location for the mobile station, wherein said correlation is used for determining a probability that the mobile station is within an area, and (B) for at least a particular one of said techniques performed by said first location estimator, said second location estimator does not perform said particular technique when supplied with said wireless signal measurements ; first supplying said first location estimator with first data obtained from the wireless signal measurements ; first generating, by said first location estimator, first location related information having at least a first estimate for the mobile station's location; second supplying said second location estimator with second data obtained from the wireless signal measurements; second generating, by said second location estimator, second location related information having at least a second estimate for the mobile station's location; determining a resulting location estimate of the mobile station using: (a) a first value obtained from said first location related information, and (b) a second value obtained from said second location related information.
2. A method as claimed in Claim 1, further including a step of receiving said measurements during a wireless communication between said mobile station and said plurality of base stations for contacting an emergency response center.
3. A method as claimed in Claim 2, further including a step of transmitting said resulting location estimate to the emergency response center during said wireless communication.
4. A method as claimed in Claim 1, wherein said step of providing includes: transmitting through a telecommunications network, said first location estimator from a source site to a site having said second location estimator ; operably integrating said first location estimator with said second location estimator for performing at least said step of determining.
5. A method as claimed in Claim 4, wherein said step of transmitting includes sending an encoding of said first location estimator using the Internet.
6. A method as claimed in Claim 1, further including a step of retrieving at least one of (al) and (bl): (al) first historical location data having: (i) a first set of historical location estimates generated by said first location estimator for wireless signal measurements obtained from transmissions between one or more mobile stations and said plurality of base stations at a first plurality of locations, wherein a distance between at least one of said location estimates of said first set, and said first estimate of said mobile station's location is determined to be less than a first predetermined value, and (ii) data identifying said locations of said first plurality of locations; (bl) second historical location data having: (i) a second set of historical location estimates generated by said second location estimator for wireless signal measurements obtained from transmissions between one or more mobile stations and said plurality of base stations at a second plurality of locations, wherein a distance between at least one of said location estimates of said second set, said second estimate of said mobile station's location is determined to be less than a second predetermined value, and (ii) data identifying said locations of said second plurality of locations.
7. A method as claimed in Claim 1, further including, for at least one location estimate of said first and second estimates, a step of obtaining one of a likelihood value and a probability that a location of said mobile station is in said one location estimate, wherein said likelihood value is obtained using historical location estimates generated by the location estimator that generated said one location estimate when the location estimator is supplied with wireless signal measurements obtained from transmissions between one or more mobile stations and said plurality of base stations at a plurality of locations.
8. A method as claimed in Claim 1, wherein said step of providing includes providing some one mobile station location estimator, wherein said one mobile station location estimator generates an estimate of where said mobile station is unlikely to be located.
9. A method as claimed in Claim 1, wherein said wireless signal measurements are obtained from transmissions between said mobile station and said plurality of base stations, wherein said transmissions occur within an interval of time wherein one of: said mobile station is expected to be in substantially a same location, and said interval is less than a predetermined duration.
10. A method as claimed in Claim 1, wherein one of: said first data includes said second estimate, and said second data includes said first estimate.
11. A method as claimed in Claim 1, further including: performing a first simulation for predicting a likelihood of said mobile station being at said first estimate, wherein said simulation uses pairs of location representations, a first member of each pair including a location estimate obtained from said first location estimator and a second member of the pair including a representation of an independently determined location of a mobile station used for obtaining wireless signal measurements that are obtained from transmissions with said plurality of base stations.
12. A method as claimed in Claim 1, wherein at least one of said first and second location estimators each utilize one of the following: (a) a pattern recognition location technique for estimating a location of said mobile station by recognizing a pattern of characteristics of said data obtained from wireless signal measurements; (b) a mobile base station estimator for estimating a location of said mobile station from location information received from a mobile base station detecting wireless transmissions of said mobile station; (c) a coverage area location technique for estimating a location of said mobile station by intersecting wireless coverage areas for different sets of one or more of said base stations; (d) a negative logic location for estimating where said mobile station is unlikely to be located.
13. A method as claimed in Claim 1, wherein at least one of the following holds: (a) said learning technique is capable of providing an artificial neural network for generating a mobile station location estimate by training said artificial neural network to recognize a pattern of characteristics of location information obtained from said wireless signal measurements; (b) said triangulation technique is capable of providing the distances between the mobile station and said three or more of the base stations using one or more of: a wireless signal time of arrival, a wireless signal time difference of arrival, a wireless signal strength indication; (c) said stochastic technique is capable of providing said statistical correlation using one of: principle decomposition, least squares, partial least squares, and Bollenger Bands.
14. A method as claimed in Claim 1, wherein said first location estimator includes an artificial neural network, wherein said artificial neural network is one of: a multilayer perceptron, an adaptive resonance theory model, and radial basis function network.
15. A method as claimed in Claim 1, wherein said step of determining includes deriving a likelihood measurement that said mobile station is in said resulting location estimate, wherein said likelihood measurement is dependent upon a first likelihood measurement that said mobile station is in said first estimate, and a second likelihood measurement that said mobile station is in said second estimate.
16. A method as claimed in Claim 1, further including a step of deriving one of said first estimate, said second estimate, and said resulting location estimate using one of: (a) an expected maximum velocity of said mobile station; (b) an expected maximum acceleration of said mobile station; (c) an expected route of said mobile station.
17. A location system for locating a mobile station, wherein said mobile station is one of a plurality of mobile stations, and wireless signal measurements are capable of being obtained from wireless transmissions between the plurality of mobile stations and a plurality of base stations, the improvement characterized by: one or more location estimators, each said location estimator for estimating a location for each of one or more individual mobile stations of the plurality of mobile stations, when said location estimator is supplied with data from a set of said wireless signal measurements obtained from wireless transmissions between the individual mobile station and said plurality of base stations; an archive for storing a plurality of data item collections, wherein for each geographical location of a plurality geographical locations, there is one of said data item collections having (al) and (a2): (al) a representation of the geographical location, and (a2) wireless signal measurements corresponding to one of the plurality of mobile stations transmitting from approximately the geographical location of (al); a performance estimator for determining, for each one of said location estimators, corresponding one or more performance measurements indicative of a previous performance of said one location estimator in locating one or more of the plurality of mobile stations, wherein said corresponding performance measurements are determined using location estimates generated by said one location estimator when said set of (a2), for some of said data item collections, is supplied to said one location estimator; a controller for activating a group of at least one of said location estimators for generating corresponding location estimates of said mobile station when a first said set of wireless signal measurements is obtained from wireless transmissions between said mobile station and said plurality of base stations, wherein one or more location hypotheses are generated, each said location hypothesis having: (bl) an hypothesized location estimate of said mobile station obtained using the corresponding location estimate generated by a location estimator of said group, (b2) a likelihood value indicating a likelihood of said mobile station being at a location represented by said hypothesized location estimate of (bl), wherein said corresponding performance measurements for said location estimator providing the location estimate of (bl) are used in determining said likelihood value; a location estimator for determining a resulting location estimate of said mobile station, said resulting location estimate being derived using said hypothesized location estimates and said likelihood values from said one or more location hypotheses.
18. A method as claimed in Claim 17, further including a step of transmitting said resulting location estimate to an emergency response center during a wireless communication wherein said first set of wireless signal measurements is obtained.
19. A location system as claimed in Claim 17, further including an hypothesis estimate generator for generating one of said hypothesized location estimates using a time series of location estimates for said mobile station output by said one or more location estimators.
20. A method for locating a mobile station, wherein said mobile station is one of a plurality of mobile stations, and wireless signal measurements are capable of being obtained from wireless transmissions between the plurality mobile stations and a network of base stations, wherein said base stations in the network are cooperatively linked for providing wireless communication with each of the mobile stations, the improvement characterized by: providing a mobile station location estimator for estimating locations of one or more individual mobile stations of said plurality of mobile stations when said location estimator is supplied with said wireless signal measurements obtained from wireless transmissions between the individual mobile station and said network of base stations; storing a plurality of data item collections, wherein for each of a plurality of geographical locations, there is one of said data item collections having: (al) a representation of the geographical location, and (a2) a representation of said wireless signal measurements between one of the mobile stations and the base stations when said one mobile station is approximately at the geographical location of (al); generating, from said wireless signal measurements between said mobile and said base stations, an initial location estimate of said mobile ; obtaining a first set of one or more additional location estimates generated by said location estimator, wherein each said additional location estimate is generated from said representations of wireless signal measurements of (a2) for one of said data item collections, and wherein at least a majority of said additional location estimates are within a predetermined distance of said initial location estimate; deriving an adjusted location estimate from said initial location estimate using a second set of said geographical location representations of (al) for said data item collections whose representations of wireless signal measurements of (a2) were used to generate one of said additional location estimates of said set.
21. A method as claimed in Claim 20, wherein said step of deriving includes determining an area boundary of said adjusted location estimate as a function of said geographical locations in said second set.
22. A location system for locating mobile stations from received wireless signal measurements obtained from transmissions between said mobile stations and a network of base stations, wherein said base stations in the network are cooperatively linked for providing wireless communication, the improvement characterized by: one or more location estimators for estimating locations of said mobile stations, such that for each of said mobile stations, when said location estimators are supplied with measurements of wireless signals obtained from transmissions between: the mobile station, at a corresponding geographical location from which the mobile station is transmitting, and said network of base stations, at least one location estimate is generated; a location estimate adjuster for deriving a first adjusted location estimate from a first location estimate generated by a first of said location estimators supplied with said wireless signal measurements obtained from transmissions between: (i) a particular one of said mobile stations, at a particular location, and (ii) said base stations, wherein: (al) said first adjusted location estimate has a corresponding confidence value indicative of a likelihood of the particular geographical location being a location represented by the first adjusted location estimate, (a2) said first adjusted location estimate is determined using additional location estimates generated: (i) previously to the generation of said first initial location estimate, and (ii) by said first location estimator; a most likely estimator for determining a most likely location estimate of the particular geographical location of the particular mobile station, said most likely location estimate being derived using said first adjusted location estimate and its corresponding confidence value.
23. A location system, as claimed in Claim 22, wherein, said location estimate adjuster includes a statistical simulation module for deriving a one or more likelihood values indicative of said first location estimator generating mobile station location estimates that include their corresponding geographical locations.
24. A location system, as claimed in Claim 22, wherein, said most likely estimator includes a probability density function for fuzzifying at least said confidence value for said first adjusted location estimate over an area outside of said first adjusted location estimate.
25. A location system for locating mobile stations from received wireless signal measurements obtained from transmissions between said mobile stations and a network of fixed location transceivers, wherein said transceivers in the network are cooperatively linked for providing wireless communication with said mobile stations, the improvement characterized by: an archive for storing a plurality of data item collections, wherein for each location of a plurality geographical locations, there is one of said data item collections having (al) and (a2): (al) a representation of the geographical location, (a2) a set of said wireless signal measurements obtained from transmissions between one of said mobile stations and said fixed location transceivers, wherein the one mobile station transmits from approximately the geographical location; a plurality of trainable location estimators, each said trainable location estimator for generating a geographical location estimates for said mobile stations, wherein for each said trainable location estimator: (bl) there is a corresponding group of wireless signal measurement parameters, wherein for said trainable location estimator to generate a location estimate of an individual one of said mobile stations, at least some of said parameters must be instantiated with values obtained from transmissions between said individual mobile station and said fixed location transceivers, (b2) there is a different corresponding group of wireless signal measurement parameters for another of said trainable location estimators, and (b3) said trainable location estimator learns by associating, for each of at least some of said data item collections, said geographical location representation (al) of the data item collection with said set of said wireless signal measurements (a2) of the data item collection; a location estimator selector for selecting one or more of said plurality of trainable location estimators for generating mobile station location estimates, wherein when each of said selected location estimators has its corresponding group of wireless signal measurement parameters instantiated with values obtained from transmissions between one of said mobile stations and said fixed location transceivers, said selected location estimator generates a location estimate of the one mobile station; wherein for locating a particular one of said mobile stations, said location estimator selector selects a particular set of said trainable location estimators whose corresponding group of wireless signal measurement parameters can have at least some said parameters instantiated using wireless signal measurements obtained from transmissions between said particular mobile station and said fixed location transceivers ; a location estimator for determining a resulting location estimate of said particular mobile station, said location estimator receiving location estimates from trainable location estimators of said particular set.
26. A location system, as claimed in Claim 25, wherein at least one of said trainable location estimators includes an artificial neural network.
27. A method as claimed in Claim 25, further including a different trainable location estimator utilizing a different artificial neural network for generating a different geographical location estimate of said one mobile station.
28. A method as claimed in Claim 26, wherein said artificial neural network is one of: a multilayer perceptron, an adaptive resonance theory model, and radial basis function network.
29. A method as claimed in Claim 25, wherein said trainable location estimator utilizes an artificial neural network with an input neuron for receiving a value related to wireless transmissions between said particular mobile station and a particular one of said fixed location transceivers, wherein said value is indicative of at least one of the following conditions: (a) said particular transceiver is active for wireless communication with said particular mobile station and a pilot signal by said particular transceiver is detected by said particular mobile station; (b) said particular transceiver is active for wireless communication with said particular mobile station and said particular transceiver detects wireless transmissions by said particular mobile station ; (c) said particular transceiver is active for wireless communication with said particular mobile station and said particular transceiver does not detect wireless transmissions by said particular mobile station; (d) said particular transceiver is active for wireless communication with said particular mobile station and said particular mobile station does not detect wireless transmissions by said particular transceiver; (e) said particular transceiver is not active for wireless communication with said particular mobile station.
30. A location system for receiving wireless signal measurements of wireless signals transmitted between a plurality mobile stations and a network of base stations, wherein said base stations in the network are cooperatively linked for providing wireless communication, the improvement characterized by: a plurality of mobile station location estimators for estimating locations of said mobile stations, such that when said location estimators are supplied with said measurements of wireless signals transmitted between one of the mobile stations and said network of base stations, said location estimators output corresponding initial location estimates of a geographical location of said one mobile station, wherein at least two of said mobile station location estimators of said plurality of mobile station location estimators include a different one of the following (a) through (f): (a) a pattern recognition component for estimating a location of said one mobile station from a pattern in the wireless signal measurements of transmissions between the network and said one mobile station; (b) a trainable mobile station location estimating component for estimating a location of said one mobile station, wherein said trainable mobile station location estimating component is capable of being trained to associate: (i) each location of a plurality of geographical locations with (ii) corresponding measurements of wireless signals transmitted between a specified one of said mobile stations and the network, wherein said specified mobile station is approximately at the location; (c) a triangulation component for estimating a location of said one mobile station, wherein said triangulation component utilizes said measurements of wireless signals between said one mobile station and three of the base stations for triangulating a location estimate of said one mobile station; (d) a statistical component utilizing a statistical regression technique for estimating a location of said one mobile station; (e) a mobile base station component for estimating a location of said one mobile station, wherein said mobile base station component utilizes location information received from a mobile base station that detects said one mobile station; (f) a negative logic component for estimating an area of where said one mobile station is unlikely to be located; and a most likely estimator for determining a most likely location estimate of said one mobile station, said most likely location estimate being a function of said plurality of location estimates.
31. A location system, as claimed in Claim 30, wherein one or more of said mobile station location estimators are capable of being at least one of: added, replaced and deleted by Internet transmissions between said location system and a site remote from said location system.
32. A location system for receiving wireless signal measurements of wireless signals transmitted between a plurality mobile stations and a network of base stations, wherein said base stations in the network are cooperatively linked for providing wireless communication, the improvement characterized by: a mobile station location providing means for estimating locations of said mobile stations, such that when said providing means is supplied with said measurements of wireless signals transmitted between a particular one of the mobile stations and said network of base stations, said providing means determines a first collection of one or more location estimates for said particular mobile station; an expert system for activating expert system rules for one of: (a) modifying one of said location estimates of said first collection, and (b) obtaining additional location estimates of the particular location; a most likely estimator for determining a most likely location estimate of the particular location, said most likely location estimate being a function of one or more location estimates provided by said expert system.
33. A location system for locating wireless mobile stations that communicate with a plurality of networked base stations, comprising: a wireless transceiver means: (a) for at least detecting a direction of wireless signals transmitted from a wireless mobile station, and (b) for communicating with said networked base stations information related to a location of said wireless mobile station; a means for detecting whether a detected wireless signal from said mobile station has been one of: reflected and deflected; a means for estimating a location of said mobile station by using wireless signals transmitted from said mobile station that are not detected by said means for detecting as one of: reflected and deflected.
34. A location system as claimed in Claim 33, wherein said means for detecting includes a means for comparing: (a) a distance of said mobile station from said mobile location system using a signal strength of said wireless signals from said mobile station, and (b) a distance of said mobile station from said location system using a signal time delay measurement of wireless signal from said mobile station.
35. A location system as claimed in Claim 33, further including one or more location estimators for estimating a location of said location system, wherein said at least one of said location estimators uses wireless signals transmitted from one of: said networked base stations and a global positioning system.
36. A location system as claimed in Claim 35, further including a deadreckoning means for estimating a change in a location of said location system, wherein said deadreckoning means provides incremental updates to said one or more location estimates of said mobile location system output by said at least one location estimator.
37. A method for locating a particular wireless mobile station using measurements of particular wireless signals, wherein at least one of: said measurements and said particular wireless signals are transmitted between said wireless mobile station and at least one of a plurality of transceivers, wherein said transceivers are capable of at least wireless detection of a plurality of wireless transmitting mobile stations including said particular mobile station, comprising: providing a first and second mobile station location estimators, wherein each of said location estimators is capable of providing a location estimate for each mobile station of at least some of said mobile stations when said location estimator is supplied with corresponding data obtained from received wireless signal measurements communicated between the mobile station and one or more of said plurality of transceivers, wherein: said first location estimator performs one or more triangulation techniques, wherein each said triangulation technique determines for each of one or more of said mobile stations, and for each transceiver of a set of three or more of said transceivers, a distance between the mobile station, and said transceiver, each said distance determined from data resulting from received measurements of wireless signals communicated between the mobile station and said transceiver, and said second location estimator does not perform any said triangulation technique; first supplying said first location estimator with first corresponding data obtained from received wireless signal measurements communicated between said particular mobile station and one or more of said plurality of transceivers ; second supplying said second location estimator with second corresponding data obtained from received wireless signal measurements communicated between said particular mobile station and one or more of said plurality of transceivers; first generating, by said first location estimator, first location related information having at least a first estimate for the mobile station's location; second generating, by said second location estimator, second location related information having at least a second estimate for the mobile station's location; determining a resulting location estimate of the mobile station using: (a) a first value obtained from said first location related information, and (b) a second value obtained from said second location related information.
38. A method for locating a particular wireless mobile station using measurements of particular wireless signals, wherein at least one of: said measurements and said particular wireless signals are transmitted between said wireless mobile station and at least one of a plurality of transceivers, wherein said transceivers are capable of at least wireless detection of a plurality of wireless transmitting mobile stations including said particular mobile station, comprising: providing a first and second mobile station location estimators, wherein each of said location estimators is capable of providing a location estimate for each mobile station of at least some of said mobile stations when said location estimator is supplied with corresponding data obtained from received wireless signal measurements communicated between the mobile station and one or more of said plurality of transceivers, wherein: said first location estimator performs one or more global positioning techniques, wherein each said global positioning technique determines for each of one or more of said mobile stations, corresponding data resulting from received measurements of wireless signals from one or more global positioning satellites, said corresponding data for determining a location of the mobile station, and said second location estimator does not perform any said global positioning technique ; first supplying said first location estimator with first corresponding data obtained from wireless signal measurements communicated between said particular mobile station and one or more of said plurality of transceivers; second supplying said second location estimator with second corresponding data obtained from wireless signal measurements communicated between said particular mobile station and one or more of said plurality of transceivers ; first generating, by said first location estimator, first location related information having at least a first estimate for said particular mobile station's location; second generating, by said second location estimator, second location related information having at least a second estimate for said particular mobile station's location ; determining a resulting location estimate of said particular mobile station using: (a) a first value obtained from said first location related information, and (b) a second value obtained from said second location related information.
39. A method for locating a particular wireless mobile station using measurements of particular wireless signals, wherein at least one of: said measurements and said particular wireless signals are transmitted between said wireless mobile station and at least one of a plurality of transceivers, wherein said transceivers are capable of at least wireless detection of a plurality of wireless transmitting mobile stations including said particular mobile station, comprising: providing a first and second mobile station location estimators, wherein each of said location estimators is capable of providing a location estimate for each mobile station of at least some of said mobile stations when said location estimator is supplied with corresponding data obtained from received wireless signal measurements communicated between the mobile station and one or more of said plurality of transceivers, wherein: said first location estimator performs one or more coverage area analysis techniques, wherein each said coverage area analysis technique determines for each of one or more of said mobile stations, an area: (i) included in a corresponding coverage area for each of one or more of said transceivers that detect the mobile station, and (ii) excluded from a corresponding coverage area for each of one or more of said transceivers that can not detect the mobile station, and said second location estimator does not perform any said coverage area analysis technique; first supplying said first location estimator with first corresponding data obtained from wireless signal measurements communicated between said particular mobile station and one or more of said plurality of transceivers ; second supplying said second location estimator with second corresponding data obtained from wireless signal measurements communicated between said particular mobile station and one or more of said plurality of transceivers; generating, by said first and a second of said location estimators, respectively, first and second different initial location estimates of said particular mobile station; determining a location estimate of said particular mobile station as a function of at least one of: (a) said first and second initial location estimates, and (b) a rating of said first and second initial location estimates.
40. A method for locating a wireless mobile station capable of wireless communication with a plurality of base stations, comprising: providing a plurality of mobile station location estimators, wherein said location estimators provide different location estimates of said mobile station when said location estimators are supplied with location information derived from signal measurements that are transmitted between said mobile station and said plurality of base stations; receiving measurements of wireless signals transmitted: (a) from one or more global positioning satellites, and (b) between said wireless mobile station and said plurality of base stations; first generating, by a first of said location estimators, a first time series of one or more location estimates of said mobile station when at least a portion of said measurements are obtained for global positioning satellite signals; second generating, by a second of said location estimators, a second time series of one or more location estimates of said mobile station when at least a portion of said measurements provide measurements of wireless signals transmitted between said mobile station and at least one of base stations of said plurality of base stations; determining a resulting time series of one or more resulting location estimates of said mobile station, wherein for each time of said resulting time series when one of said resulting location estimates is derived, said derivation uses at least one location estimate: (a) that is most recently generated by said first location estimator, and (b) that is most recently generated by said second location estimator.
41. A method as claimed in Claim 40, wherein said step of determining includes: establishing a priority between said first initial location estimate and said second initial location estimate.
42. A method as claimed in Claim 41, wherein said step of establishing includes obtaining a confidence value corresponding to at least one of said first initial location estimate and said second initial location estimate, wherein each said confidence value is indicative of a likelihood of said mobile station being its said corresponding initial location estimate.
43. A method as claimed in Claim 41, wherein said step of establishing includes using a first time value associated with said first initial location estimate, and a second time value associated with said second initial location estimate.
44. A method as claimed in Claim 40, wherein said step of determining includes preferring said first initial location estimate over said second initial location estimate when both are available for substantially a same location of said mobile station.
45. A method as claimed in Claim 40, wherein said step of receiving includes receiving a first portion of said measurements in a first time period and a second portion of said measurements in a second time period different from said first time period, wherein said first portion is obtained from a global positioning satellite, and said second portion is derived from wireless signals transmitted between said mobile station and at least one of base station of said first plurality of base stations.
46. A method as claimed in Claim 40, wherein said mobile station is in a vehicle and said step of determining uses deadreckoning estimates of changes in the location of the vehicle.
47. A method as claimed in Claim 40, wherein said step of determining includes evaluating one or more constraints related to one or more of: a velocity of said mobile station, an acceleration of said mobile station, an estimated location of said mobile station in relation of a terrain of said estimated location.
Description:
LOCATION OF A MOBILE STATION

FIELD OF THE INVENTION The present invention is directed generally to a system and method for locating people or objects, and in particular, to a system and method for locating a wireless mobile station using a plurality of simultaneously activated mobile station location estimators.

BACKGROUND OF THE INVENTION

Introduction Wireless communications systems are becoming increasingly important worldwide. Wireless cellular telecommunications systems are rapidly replacing conventional wire-based telecommunications systems in many applications. Cellular radio telephone networks ("CRT"), and specialized mobile radio and mobile data radio networks are examples. The general principles of wireless cellular telephony have been described variously, for example in U. S. Patent 5,295,180 to Vendetti, et al, which is incorporated herein by reference. There is great interest in using existing infrastructures for wireless communication systems for locating people and/or objects in a cost effective manner. Such a capability would be invaluable in a variety of situations, especially in emergency or crime situations. Due to the substantial benefits of such a location system, several attempts have been made to design and implement such a system.

Systems have been proposed that rely upon signal strength and trilateralization techniques to permit location include those disclosed in U.S. Patents 4,818,998 and 4,908,629 to Apsell et al. ("the Apsell patents") and 4,891,650 to Sheffer ("the Sheffer patent"). However, these systems have drawbacks that include high expense in that special purpose electronics are required. Furthermore, the systems are generally only effective in line-of-sight conditions, such as rural settings. Radio wave surface reflections, refractions and ground clutter cause significant distortion, in determining the location of a signal source in most geographical areas that are more than sparsely populated. Moreover, these drawbacks are particularly exacerbated in dense urban canyon (city) areas, where errors and/or conflicts in location measurements can result in substantial inaccuracies.

Another example of a location system using time of arrival and trianguiation for location are satellite-based systems, such as the military and commercial versions of the Global Positioning Satellite system ("GPS"). GPS can provide accurate position determination (i.e., about 100 meters error for the commercial version of GPS) from a time-based signal received simultaneously from at least three satellites. A ground-based GPS receiver at or near the object to be located determines the difference between the time at which each satellite transmits a time signal and the time at which the signal is received and, based on the time differentials, determines the object's location. However, the GPS is impractical in many applications. The signal power levels from the satellites

are low and the GPS receiver requires a clear, line-of-sight path to at least three satellites above a horizon of about 60 degrees for effective operation. Accordingly, inclement weather conditions, such as clouds, terrain features, such as hills and trees, and buildings restrict the ability of the GPS receiver to determine its position. Furthermore, the initial GPS signal detection process for a GPS receiver is relatively long (i.e., several minutes) for determining the receiver's position. Such delays are unacceptable in many applications such as, for example, emergency response and vehicle tracking.

Differential GPS, or DGPS systems offer correction schemes to account for time synchronization drift. Such correction schemes include the transmission of correction signals over a two-way radio link or broadcast via FM radio station subcarriers. These systems have been found to be awkward and have met with limited success.

Additionally, GPS-based location systems have been attempted in which the received GPS signals are transmitted to a central data center for performing location calculations. Such systems have also met with limited success. In brief, each of the various GPS embodiments have the same fundamental problems of limited reception of the satellite signals and added expense and complexity of the electronics required for an inexpensive location mobile station or handset for detecting and receiving the GPS signals from the satellites.

Radio Propagation Background The behavior of a mobile radio signal in the general environment is unique and complicated. Efforts to perform correlations between radio signals and distance between a base station and a mobile station are similarly complex. Repeated attempts to solve this problem in the past have been met with only marginal success. Factors include terrain undulations, fixed and variable clutter, atmospheric conditions, internal radio characteristics of cellular and PCS systems, such as frequencies, antenna configurations, modulation schemes, diversity methods, and the physical geometries of direct, refracted and reflected waves between the base stations and the mobile. Noise, such as man-made externally sources (e.g., auto ignitions) and radio system co-channel and adjacent channel interference also affect radio reception and related performance measurements, such as the analog carrier-to- interference ratio (C/l), or digital eπergy-per-bit Noise density ratio (E b/No ) and are particular to various points in time and space domains.

RF Propagation in Free Space

Before discussing real world correlations between signals and distance, it is useful to review the theoretical premise, that of radio energy path loss across a pure isotropic vacuum propagation channel, and its dependencies within and among various communications channel types. Fig. I illustrates a definition of channel types arising in communications: Over the last forty years various mathematical expressions have been developed to assist the radio mobile cell designer in establishing the proper balance between base station capital investment and the quality of the radio link, typically using radio energy field- strength, usually measured in microvolts/meter, or decibels.

First consider Hata's single ray model. A simplified radio channel can be described as:

G, = L P + F + L, + L m + L b - G t + G r (Equation I)

where G, = system gain in decibels

L p = free space path loss in dB,

F = fade margin in dB,

L f = transmission line loss from coaxials used to connect radio to antenna, in dB,

L m = miscellaneous losses such as minor antenna misalignment, coaxial corrosion, increase in the receiver noise figure due to aging, in dB, L b = branching loss due to filter and circulator used to combine or split transmitter and receiver signals in a single antenna G t = gain of transmitting antenna G r = gain of receiving antenna

Free space path loss L p as discussed in Mobile Communications Design Fundamentals, William C r. Lee, 2nd, Ed across the propagation channel is a function of distanced, frequency f (for f values < I GHz, such as the 890-950 mHz cellular band):

(equation 2)

where P or rece j ve d p 0wer in free space fy = transmitting power c = speed of light,

The difference between two received signal powers in free space,

Δ, = (dB) (equation 3)

indicates that the free propagation path loss is 20 dB per decade. Frequencies between I GHz and 2GHz experience increased values in the exponent, ranging from 2 to 4, or 20 to 40 dB/decade, which would be predicted for the new PCS 1.8 - 1.9 GHz band.

This suggests that the free propagation path loss is 20 dB per decade. However, frequencies between I GHz and 2 GHz experience increased values in the exponent, ranging from 2 to 4, or 20 to 40 dB/decade, which would be prediαed for the new PCS 1.8 - 1.9 GHz band. One consequence from a location perspective is that the effective range of values for higher exponents is an increased at higher frequencies, thus providing improved granularity of ranging correlation.

Environmental Clutter and RF Propagation Effects

Actual data collected in real-world environments uncovered huge variations with respect to the free space path loss equation, giving rise to the creation of many empirical formulas for radio signal coverage prediction. Clutter, either fixed or stationary in geometric relation to the propagation of the radio signals, causes a shadow effect of blocking that perturbs the free space loss effect. Perhaps the best known model set that characterizes the average path loss is Hata's, "Empirical Formula for Propagation Loss in Land Mobile Radio", M. Hata, IEEE Transactions VT-29, pp.317-325, August 1980, three pathloss models, based on Okumura's measurements in and around Tokyo, "Field Strength and its Variability in VHF and UHF Land Mobile Service", Y. Okumura, et al, Review of the Electrical Communications laboratory, Vol 16, pp 825-873, Sept. - Oct. 1968.

The typical urban Hata model for L p was defined as l p = L hu :

L Hu = 69.55 + 26.16 log( ) - 13.82 log(A β5 ) - a{h κιs ) + ((44.9 - 6.55 log(H βΛ . ) log( d)[dB )

(Equation 4)

where Lij u = p a th loss, Ηata urban n BS — base station antenna height n MS= mobile station antenna height d = distance BS-MS in km

2 ( n MS is a correction factor for small and medium sized cities, found to be:

1 log(/ - 0.7) MS - 1.56 log( - 0.8) = a ^ )

(Equation 5)

For large cities the correction factor was found to be:

(Equation 6) assuming f is equal to or greater than 400 mHz.

The typical suburban model correction was found to be:

L u = L„ u - 5.4[dB] (Equation 7)

The typical rural model modified the urban formula differently, as seen below:

L Hrurai = L Hu " 4 78 ( lo 8 2 + 1 8 - 331oβ f " 40 94 t "dB l (Equation 8)

20

Although the Hata model was found to be useful for generalized RF wave prediction in frequencies under I GHz in certain suburban and rural settings, as either the frequency and/or clutter increased, predictability decreased. In current practice, however, field technicians often have to make a guess for dense urban an suburban areas (applying whatever model seems best), then installing a base stations and begin taking manual measurements. Coverage problems can take up to a year to resolve.

Relating Received Signal Strength to Location

Having previously established a relationship between d and P cr , reference equation 2 above: d represents the distance between the mobile station (MS) and the base station (BS); P or represents the received power in free space) for a given set of unchanging environmental conditions, it may be possible to dynamically measure P or and then determine d.

In 1991, Ui. Patent 5,055,851 to Sheffer taught that if three or more relationships have been established in a triangular space of three or more base stations (BSs) with a location database constructed having data related to possible mobile station (MS) locations, then arculatioπ calculations may be performed, which use three distinct P or measurements to determine an X,Y, two

dimensional location, which can then be projected onto an area map. The triangulation calculation is based on the fact that the approximate distance of the mobile station (MS) from any base station (BS) cell can be calculated based on the received signal strength. Sheffer acknowledges that terrain variations affect accuracy, although as noted above, Sheffer's disclosure does not account for a sufficient number of variables, such as fixed and variable location shadow fading, which are typical in dense urban areas with moving traffic.

Most field research before about 1988 has focused on characterizing (with the objective of RF coverage prediction) the RF propagation channel (i.e., electromagnetic radio waves) using a single-ray model, although standard fit errors in regressions proved dismal (e.g., 40-80 dB). Later, multi-ray models were proposed, and much later, certain behaviors were studied with radio and digital channels. In 1981, Vogler proposed that radio waves at higher frequencies could be modeled using optics principles. In 1988 Walfisch and Bertoni applied optical methods to develop a two-ray model, which when compared to certain highly specific, controlled field data, provided extremely good regression fit standard errors of within 1.2 dB.

In the Bertoni two ray model it was assumed that most cities would consist of a core of high-rise buildings surrounded by a much larger area having buildings of uniform height spread over regions comprising many square blocks, with street grids organizing buildings into rows that are nearly parallel. Rays penetrating buildings then emanating outside a building were neglected. Fig.2 provides a basis for the variables.

After a lengthy analysis it was concluded that path loss was a function of three factors: (I) the path loss between antennas in free space; (2) the reduction of rooftop wave fields due to settling; and (3) the effect of diffraction of the rooftop fields down to ground level. The last two factors were summarily termed L ex> gj ven Dv:

R L „ = 57.1 + A + log(/ ) + Λ - (( 1 8 l og(H )) - 1 8 log 1 - (Equation 9)

\ 1 H

The influence of building geometry is contained in A:

= 51og [( ^ 2 ] - 91ogd + 201og { tan [2 ( h - H MS ) ] _1 }

(Equation 10)

However, a substantial difficulty with the two-ray model in practice is that it requires a substantial amount of data regarding building dimensions, geometries, street widths, antenna gain characteristics for every possible ray path, etc. Additionally, it requires an inordinate amount of computational resources and such a model is not easily updated or maintained.

Unfortunately, in practice clutter geometries and building heights arc random. Moreover, data of sufficient detail has been extremely difficult to acquire, and regression standard fit errors are poor; i.e„ in the general case, these errors were found to be 40- 60 dB. Thus the two-ray model approach, although sometimes providing an improvement over single ray techniques, still did not predict Rf signal characteristics in the general case to level of accuracy desired (< lOdB).

Work by Greenstein has since developed from the perspective of measurement-based regression models, as opposed to the previous approach of predicting-ftrst, then performing measurement comparisons. Apparently yielding to the fact that low-power, low antenna (e.g., 12-25 feet above ground) height PCS microcell coverage was insufficient in urban buildings, Greenstein, et al, authored "Performance Evaluations for Urban Line-of-sight Microcells Using a Multi-ray Propagation Model", in IEEE Globecom Proceedings, 12/91. This paper proposed the idea of formulating regressions based on field measurements using small PCS microcells in a lineal microcell geometry (i.e., geometries in which there is always a line-of-sight (LOS) path between a subscriber's mobile and its current microsite).

Additionally, Greenstein studied the communication channels variable Bit-Error-Rate (BER) in a spatial domain, which was a departure from previous research that limited field measurements to the RF propagation channel signal strength alone. However, Greenstein based his finding on two suspicious assumptions: I) he assumed that distance correlation estimates were identical for uplink and downlink transmission paths; and 2) modulation techniques would be transparent in terms of improved distance correlation conclusions. Although some data held very correlations, other data and environments produced poor results. Accordingly, his results appear unreliable for use in general location context.

In 1993 Greenstein, et al, authored "A Measurement-Based Model for Predicting Coverage Areas of Urban Microcells", in the IEEE Journal On Seleαed Areas in Communications, Vol. 11, No.7, 9/93. Greenstein reported a generic measurement-based model of RF attenuation in terms of constant-value contours surrounding a given low-power, low antenna microcell environment in a dense, rectilinear neighborhood, such as New York City. However, these contours were for the cellular frequency band. In this case, LOS and non-LOS clutter were considered for a given microcell site. A result of this analysis was that RF propagation losses (or attenuations), when cell antenna heights were relatively low, provided attenuation contours resembling a spline plane curve depicted as an asteroid, aligned with major street grid patterns. Further, Greenstein found that convex diamond-shaped RF propagation loss contours were a common occurrence in field measurements in a rectilinear urban area. The special plane curve asteroid is represented by the formula x M + y M = r w . However, these results alone have not been sufficiently robust and general to accurately locate an MS, due to the variable nature of urban clutter spatial arrangements..

At Telesis Technology in 1994 Howard Xia, et al, authored "Microcellular Propagation Characteristics for Personal Communications in Urban and Suburban Environments", in IEEE Transaαions of Vehicular Technology, Vol.43, No.3, 8/94, which performed measurements specifically in the PCS 1.8 to 1.9 GHz frequency band. Xia found corresponding but more variable outcome results in San Francisco, Oakland (urban) and the Sunset and Mission Districts (suburban).

Summary of Factors Affecting RF Propagation

The physical radio propagation channel perturbs signal strength, frequency (causing rate changes, phase delay, signal to noise ratios (e.g., C/l for the analog case, or l , RF energy per bit, over average noise density ratio for the digital case) and Doppler-shift. Signal strength is usually characterized by: Free Space Path Loss (L p )

Slow fading loss or margin (L,| OT )

Fast fading loss or margin (L fjlI )

Loss due to slow fading includes shadowing due to clutter blockage (sometimes included in Lp). Fast fading is composed of multipath reflections which cause: I) delay spread; 2) random phase shift or Rayleigh fading; and 3) random frequency modulation due to different Doppler shifts on different paths.

Summing the path loss and the two fading margin loss components from the above yields a total path loss of:

Hotal = L + Ljlow + Hut

Referring to Fig.3, the figure illustrates key components of a typical cellular and PCS power budget design process. The cell designer increases the transmitted power P τx by the shadow fading margin L,. ow which is usually chosen to be within the I -2 percεntile of the slow fading probability density funαion (PDF) to minimize the probability of unsatisfactorily low received power level P u at the receiver. The P^ level must have enough signal to noise energy level (e.g., 10 dB) to overcome the receiver's internal noise level (e.g., -llβdBm in the case of cellular 0.9 GHz), for a minimum voice quality standard. Thus in the example P^ must never be below -108 dBm, in order to maintain the quality standard. Additionally the short term fast signal fading due to multipath propagation is taken into account by deploying fast fading margin L^,, which is typically also chosen to be a few percentiles of the fast fading distribution. The I to 2 percentiles compliment other network blockage guidelines. For example the cell base station traffic loading capacity and network transport facilities are usually designed for a I -2 percentile blockage fartor as well. However, in the worst-case scenario both fading margins are simultaneously exceeded, thus causing a fading margin overload. In Roy , Steele's, text, Mobile Radio Communications, IEEE Press, 1992, estimates for a GSM system operating in the 1.8

GHz band with a transmitter antenna height of 6.4m and an MS receiver antenna height of 2m, and assumptions regarding total path loss, transmitter power would be calculated as follows:

Table I: GSM Power Budget Example

Steele's sample size in a specific urban London area of 80,000 LOS measurements and data reduαion found a slow fading variance of

σ = 7dB

assuming lognormal slow fading PDF and allowing for a 1.4% slow fading margin overload, thus

slow 2σ = 14dB

The fast fading margin was determined to be:

Lfast = 7 dB

In contrast, Xia's measurements in urban and suburban California at 1.8 GHz uncovered flat-land shadow fades on the order of 25-30 dB when the mobile station (MS) receiver was traveling from LOS to non-LOS geometries. In hilly terrain fades of + 5 to -50 dB were experienced. Thus it is evident that attempts to correlate signal strength with MS ranging distance suggest that error ranges could not be expected to improve below 14 dB, with a high side of 25 to 50 dB. Based on 20 to 40 dB per decade. Corresponding error ranges for the distance variable would then be on the order of 900 feet to several thousand feet, depending upon the particular environmental topology and the transmitter and receiver geometries.

SUMMARY OF THE INVENTION

OBJECTS OF THE INVENTION

It is an objective of the present invention to provide a system and method for to wireless telecommunication systems for accurately locating people and/or objeαs in a cost effective manner. Additionally, it is an objective of the present invention to provide such location capabilities using the measurements from wireless signals communicated between mobile stations and a network of base stations, wherein the same communication standard or protocol is utilized for location as is used by the network of base stations for providing wireless communications with mobile stations for other purposes such as voice communication and/or visual communication (such as text paging, graphical or video communications). Related objectives for the present invention include providing a system and method that: (I.I) can be readily incorporated into existing commercial wireless telephony systems with few, if any, modifications of a typical telephony wireless infrastruαure;

(1.2) can use the native electronics of typical commercially available telephony wireless mobile stations (e.g., handsets) as location devices; (I J) can be used for effectively locating people and/or objeαs wherein there are few (if any) line-of-sight wireless receivers for receiving location signals from a mobile station (herein also denoted MS);

(1.4) can be used not only for decreasing location determining difficulties due to multipath phenomena but in faα uses such multipath for providing more accurate location estimates;

(1.5) can be used for integrating a wide variety of location techniques in a straight-forward manner; and

(1.6) can substantially automatically adapt and/or (re)train and/or ( recalibrate itself according to changes in the environment and/or terrain of a geographical area where the present invention is utilized.

Yet another objective is to provide a low cost location system and method, adaptable to wireless telephony systems, for using simultaneously a plurality of location techniques for synergistically increasing MS location accuracy and consistency. In particular, at least some of the following MS location techniques can be utilized by various embodiments of the present invention: (2.1) time-of-arrival wireless signal processing techniques; (2.2) time-difference-of-arrival wireless signal processing techniques;

(23) adaptive wireless signal processing techniques having, for example, learning capabilities and including, for instance, artificial neural net and genetic algorithm processing;

(2.4) signal processing techniques for matching MS location signals with wireless signal characteristics of known areas;

(2.5) confliα resolution techniques for resolving conflicts in hypotheses for MS location estimates; (2.6) enhancement of MS location estimates through the use of both heuristics and historical data associating MS wireless signal characteristics with known locations and/or environmental conditions.

Yet another objective is to provide location estimates in terms of time veαors, which can be used to establish motion, speed, and an extrapolated next location in cases where the MS signal subsequently becomes unavailable.

DEFINITIONS The following definitions are provided for convenience. In general, the definitions here are also defined elsewhere in this document as well.

(3.1) The term "wireless" herein is, in general, an abbreviation for "digital wireless", and in particular, "wireless" refers to digital radio signaling using one of standard digital protocols such as CDMA, NAMPS, AMPS, TDMA and GSM, as one skilled in the art will understand. (3.2) As used herein, the term "mobile station" (equivalently, MS) refers to a wireless device that is at least a transmitting device, and in most cases is also a wireless receiving device, such as a portable radio telephony handset. Note that in some contexts herein instead or in addition to MS, the following terms are also used: "personal station" (PS), and "location unit" (LU). In general, these terms may be considered synonymous. However, the later two terms may be used when referring to reduced functionality communication devices in comparison to a typical digital wireless mobile telephone. (33) The term, "infrastructure", denotes the network of telephony communication services, and more particularly, that portion of such a network that receives and processes wireless communications with wireless mobile stations. In particular, this infrastruαure includes telephony wireless base stations (BS) such as those for radio mobile communication systems based on CDMA, AMPS, NAMPS, TDMA, and GSM wherein the base stations provide a network of cooperative communication channels with an air interface with the MS, and a conventional telecommunications interface with a Mobile Switch Center (MSC). Thus, an MS user within an area serviced by the base stations may be provided with wireless communication throughout the area by user transparent communication transfers (i.e., "handoffs") between the user's MS and these base stations in order to maintain effective telephony service. The mobile switch center (MSC) provides communications and control connectivity among base stations and the public telephone network. (3.4) The phrase, "composite wireless signal characteristic values" denotes the result of aggregating and filtering a colleαion of measurements of wireless signal samples, wherein these samples are obtained from the wireless communication between an MS to be located and the base station infrastructure (e.g., a plurality of networked base stations). However, other phrases are also used herein to denote this colleαion of derived characteristic values depending on the context and the likely orientation of the reader. For example, when viewing these values from a wireless signal processing perspective of radio engineering, as in the descriptions of the subsequent Detailed Description sections concerned with the aspeαs of the present invention for receiving MS signal measurements from the base station infrastructure, the phrase typically used is: "RF signal measurements". Alternatively, from a data processing perspective, the phrases: "location signature cluster" and "location signal data" are used to describe signal charaαeristic values between the MS and the plurality of infrastruαure base stations substantially simultaneously detecting MS transmissions. Moreover, since the location communications between an MS and the base station infrastruαure typically include simultaneous communications with more than one base station, a related useful notion is that of a "location signature" which is the composite wireless signal

II

charaαeristic values for signal samples between an MS to be located and a single base station. Also, in some contexts, the phrases: "signal charaαeristic values" or "signal charaαeristic data" are used when either or both a location signature(s) and/or a location signature cluster(s) are intended.

SUMMARY DISCUSSION

The present invention relates to a wireless mobile station location system. In particular, such a wireless mobile station location system may be decomposed into: (i) a first low level wireless signal processing subsystem for receiving, organizing and conditioning low level wireless signal measurements from a network of base stations cooperatively linked for providing wireless communications with mobile stations (MSs); and (ii) a second high level signal processing subsystem for performing high level data processing for providing most likelihood location estimates for mobile stations.

More precisely, the present invention is a novel signal processor that includes at least the functionality for the high signal processing subsystem mentioned hereinabove. Accordingly, assuming an appropriate ensemble of wireless signal measurements charaαerizing the wireless signal communications between a particular MS and a networked wireless base station infrastructure have been received and appropriately filtered of noise and transitory values (such as by an embodiment of the low level signal processing subsystem disclosed in a upending PCT patent application titled, "Wireless Location Using A Plurality of Commercial Network Infrastructures," by F. W. LeBlanc, and the present applicant(s); this copending patent application being herein incorporated by reference), the present invention uses the output from such a low level signal processing system for determining a most likely location estimate of an MS.

That is, once the following steps are appropriately performed (e.g., by the LeBlanc copending application): (4.1) receiving signal data measurements corresponding to wireless communications between an MS to be located

(herein also denoted the "target MS") and a wireless telephony infrastruαure;

(4.2) organizing and processing the signal data measurements received from a given target MS and surrounding BSs so that composite wireless signal charaαeristic values may be obtained from which target MS location estimates may be subsequently derived. In particular, the signal data measurements are ensembles of samples from the wireless signals received from the target MS by the base station infrastruαure, wherein these samples are subsequently filtered using analog and digital speαral filtering, the present invention accomplishes the objectives mentioned above by the following steps:

(4.3) providing the composite signal characteristic values to one or more MS location hypothesizing computational models (also denoted herein as "first order models" and also "location estimating models"), wherein each such model subsequently determines one or more initial estimates of the location of the target MS based on, for example, the signal processing techniques 2.1 through 2.3 above. Moreover, each of the models output MS location estimates having substantially identical data struαures (each such data structure denoted a "location hypothesis"). Additionally, each location hypothesis may also includes a confidence value indicating the likelihood

or probability that the target MS whose location is desired resides in a corresponding location estimate for the target MS; (4.4) adjusting or modifying location hypotheses output by the models according to, for example, 2.4 through 2.6 above so that the adjusted location hypotheses provide better target MS location estimates. In particular, such adjustments are performed on both the target MS location estimates of the location hypotheses as well as their corresponding confidences; and (4.4) subsequently computing a "most likely" target MS location estimate for outputting to a location requesting application such as 911 emergency, the fire or police departments, taxi services, etc. Note that in computing the most likely target MS location estimate a plurality of location hypotheses may be taken into account. In faα, it is an important aspeα of the present invention that the most likely MS location estimate is determined by computationally forming a composite MS location estimate utilizing such a plurality of location hypotheses so that, for example, location estimate similarities between location hypotheses can be effectively utilized.

Referring now to (4.3) above, the filtered and aggregated wireless signal charaαeristic values are provided to a number of location hypothesizing models (denoted Fiπt Order Models, or FOMs), each of which yields a location estimate or location hypothesis related to the location of the target MS. In particular, there are location hypotheses for both providing estimates of where the target MS likely to be and where the target MS is not likely to be. Moreover, it is an aspeα of the present invention that confidence values of the location hypotheses are provided as a continuous range of real numbers from, e.g., -I to I, wherein the most unlikely areas for locating the target MS are given a confidence value of -I, and the most likely areas for locating the target MS are given a confidence value of I. That is, confidence values that are larger indicate a higher likelihood that the target MS is in the corresponding MS estimated area, wherein I indicates that the target MS is absolutely NOT in the estimated area, 0 indicates a substantially neutral or unknown likelihood of the target MS being in the corresponding estimated area, and I indicates that the target MS is absolutely within the corresponding estimated area.

Referring to (4.4) above, it is an aspeα of the present invention to provide location hypothesis enhancing and evaluation techniques that can adjust target MS location estimates according to historical MS location data and/or adjust the confidence values of location hypotheses according to how consistent the corresponding target MS location estimate is: (a) with historical MS signal charaαeristic values, (b) with various physical constraints, and (c) with various heuristics. In particular, the following capabilities are provided by the present invention:

(5.1) a capability for enhancing the accuracy of an initial location hypothesis, H, generated by a fiπt order model, FOM H , by using H as, essentially, a query or index into an historical data base (denoted herein as the location signature data base), wherein this data base includes: (a) a plurality of previously obtained location signature clusters (i.e., composite wireless signal characteristic values) such that for each such cluster there is an associated actual or verified MS locations where an MS communicated with the base station infrastruαure for locating the MS, and (b)

previous MS location hypothesis estimates from FOM H derived from each of the location signature clusters stored according to (a); (5.2) a capability for analyzing composite signal charaαeristic values of wireless communications between the target MS and the base station infrastructure, wherein such values are compared with composite signal characteristics values of known MS locations (these latter values being archived in the location signature data base). In one instance, the composite signal charaαeristic values used to generate various location hypotheses for the target MS are compared against wireless signal data of known MS locations stored in the location signature data base for determining the reliability of the location hypothesizing models for particular geographic areas and/or environmental conditions; (53) a capability for reasoning about the likeliness of a location hypothesis wherein this reasoning capability uses heuristics and constraints based on physics and physical properties of the location geography;

(5.4) an hypothesis generating capability for generating new location hypotheses from previous hypotheses. As also mentioned above in (23), the present invention utilizes adaptive signal processing techniques. One particularly important utilization of such techniques includes the automatic tuning of the present invention so that, e.g., such tuning can be applied to adjusting the values of location processing system parameteπ that affect the processing performed by the present invention. For example, such system parameters as those used for determining the size of a geographical area to be specified when retrieving location signal data of known MS locations from the historical (location signature) data base can substantially affect the location processing. In particular, a system parameter specifying a minimum size for such a geographical area may, if too large, cause unnecessary inaccuracies in locating an MS. Accordingly, to accomplish a tuning of such system parameters, an adaptation engine is included in the present invention for automatically adjusting or tuning parameteπ used by the present invention. Note that in one embodiment, the adaptation engine is based on genetic algorithm techniques.

A novel aspeα of the present invention relies on the discovery that in many areas where MS location services are desired, the wireless signal measurements obtained from communications between the target MS and the base station infrastructure are extensive enough to provide sufficiently unique or peculiar values so that the pattern of values alone may identify the location of the target MS. Further, assuming a sufficient amount of such location identifying pattern information is captured in the composite wireless signal charaαeristic values for a target MS, and that there is a technique for matching such wireless signal patterns to geographical locations, then a FOM based on this technique may generate a reasonably accurate target MS location estimate. Moreover, if the present invention (e.g., the location signature data base) has captured sufficient wireless signal data from location communications between MSs and the base station infrastructure wherein the locations of the MSs are also verified and captured, then this captured data (e.g., location signatures) can be used to train or calibrate such models to associate the location of a target MS with the distinαive signal characteristics between the target MS and one or more base stations. Accordingly, the present invention includes one or more FOMs that may be generally denoted as classification models wherein such FOMs are trained or calibrated to associate particular composite wireless signal characteristic values with a geographical location where a target MS could likely generate the wireless signal samples from which the composite wireless signal charaαeristic values are derived. Further, the present invention includes the capability for training (calibrating) and retraining (recalibrating) such classification FOMs to automatically

maintain the accuracy of these models even though substantial changes to the radio coverage area may occur, such as the construction of a new high rise building or seasonal variations (due to, for example, foliage variations).

Note that such classification FOMs that are trained or calibrated to identify target MS locations by the wireless signal patterns produced constitute a particularly novel aspect of the present invention. It is well known in the wireless telephony art that the phenomenon of signal multipath and shadow fading rendeπ most analytical location computational techniques such as time-of- arrival (TOA) or time-differeπce-of-arrival (TDOA) substantially useless in urban areas and particularly in dense urban areas. However, this same multipath phenomenon also may produce substantially distinct or peculiar signal measurement patterns, wherein such a pattern coincides with a relatively small geographical area. Thus, the present invention utilizes multipath as an advantage for increasing accuracy where for previous location systems multipath has been a source of substantial inaccuracies. Moreover, it is worthwhile to note that the utilization of classification FOMs in high multipath environments is especially advantageous in that high multipath environments are typically densely populated. Thus, since such environments are also capable of yielding a greater density of MS location signal data from MSs whose attual locations can be obtained, there can be a substantial amount of training or calibration data captured by the present invention for training or calibrating such classification FOMs and for progressively improving the MS location accuracy of such models. Moreover, since it is also a related aspeα of the present invention to include a plurality stationary, low cost, low power "location deteαion base stations" (LBS), each having both restriαed range MS deteαion capabilities and a built-in MS, a grid of such LBSs can be utilized for providing location signal data (from the built-in MS) for ( retraining or (re)calibratiπg such classification FOMs.

In one embodiment of the present invention, one or more classification FOMs may each include a learning module such as an artificial neural network (ANN) for associating target MS location signal data with a target MS location estimate. Additionally, one or more classification FOMs may be statistical prediction models based on such statistical techniques as, for example, principle decomposition, partial least squares, or other regression techniques.

It is a further aspect of the present invention that the peπonal communication system (PCS) infrastructures currently being developed by telecommunication providers offer an appropriate localized infrastructure base upon which to build various pεπonal location systems (PLS) employing the present invention and/or utilizing the techniques disclosed herein. In particular, the present invention is especially suitable for the location of people and/or objeαs using code division multiple access (CDMA) wireless infrastructures, although other wireless infrastruαures, such as, time division multiple access (TDMA) infrastructures and GSM are also contemplated. Note that CDMA personal communications systems are described in the Telephone industries Association standard IS-95, for frequencies below I GHz, and in the Wideband Spread- Spectrum Digital Cellular System Dual-Mode Mobile Station-Base Station Compatibility Standard, for frequencies in the 1.8-1.9 GHz frequency bands, both of which are incorporated herein by reference. Furthermore, CDMA general principles have also been described, for example, in U. S. Patent 5,109390, to Gilhausen, et al, and CDMA Network Engineering Handbook by Qualcomm, Inc., each of which is also incorporated herein by reference.

Notwithstanding the above mentioned CDMA references, a brief introduction of CDMA is given here. Briefly, CDMA is an electromagnetic signal modulation and multiple access scheme based on spread speαrum communication. Each CDMA signal corresponds to an unambiguous pseudorandom binary sequence for modulating the carrier signal throughout a predetermined

speαrum of bandwidth frequencies. Transmissions of individual CDMA signals are seleαed by correlation processing of a pseudonoise waveform. In particular, the CDMA signals are separately detected in a receiver by using a correlator, which accepts only signal energy from the seleαed binary sequence and despreads its speαrum. Thus, when a fiπt CDMA signal is transmitted, the transmissions of unrelated CDMA signals correspond to pseudorandom sequences that do not match the fiπt signal. Therefore, these other signals contribute only to the noise and represent a self-interference generated by the personal communications system. As mentioned in (1.7) and in the discussion of classification FOMs above, the present invention can substantially automatically retrain and/or recalibrate itself to compensate for variations in wireless signal characteristics (e.g., multipath) due to environmental and/or topographic changes to a geographic area serviced by the present invention. For example, in one embodiment, the present invention optionally includes low cost, low power base stations, denoted location base stations (LBS) above, providing, for example, CDMA pilot channels to a very limited area about each such LBS. The location base stations may provide limited voice traffic capabilities, but each is capable of gathering sufficient wireless signal characteristics from an MS within the location base station's range to facilitate locating the MS. Thus, by positioning the location base stations at known locations in a geographic region such as, for instance, on street lamp poles and road signs, additional MS location accuracy can be obtained. That is, due to the low power signal output by such location base stations, for there to be signaling control communication (e.g., pilot signaling and other control signals) between a location base station and a target MS, the MS must be relatively near the location base station. Additionally, for each location base station not in communication with the target MS, it is likely that the MS is not near to this location base station. Thus, by utilizing information received from both location base stations in communication with the target MS and those that are not in communication with the target MS, the present invention can substantially narrow the possible geographic areas within which the target MS is likely to be. Further, by providing each location base station (LBS) with a co-located stationary wireless transceiver (denoted a built-in MS above) having similar functionality to an MS, the following advantages are provided:

(6.1) assuming that the co-located base station capabilities and the stationary transceiver of an LBS are such that the base station capabilities and the stationary transceiver communicate with one another, the stationary transceiver can be signaled by another compoπent(s) of the present invention to aαivate or deactivate its associated base station capability, thereby conserving power for the LBS that operate on a restriαed power such as solar electrical power; (62) the stationary transceiver of an LBS can be used for transferring target MS location information obtained by the LBS to a conventional telephony base station;

(63) since the location of each LBS is known and can be used in location processing, the present invention is able to (re)train and/or (re)calibrate itself in geographical areas having such LBSs. That is, by activating each LBS stationary transceiver so that there is signal communication between the stationaiγ transceiver and surrounding base stations within range, wireless signal charaαeristic values for the location of the stationary transceiver are obtained for each such base station. Accordingly, such characteristic values can then be associated with the known location of the stationary transceiver for training and/or calibrating various of the location processing modules of the present invention such as the classification FOMs discussed above. In particular, such training and/or calibrating may include:

(i) (re)training and/or (re)calibrating FOMs;

(ii) adjusting the confidence value initially assigned to a location hypothesis according to how accurate the generating FOM is in estimating the location of the stationary transceiver using data obtained from wireless signal characteristics of signals between the stationary transceiver and base stations with which the stationary transceiver is capable of communicating; (iii) automatically updating the previously mentioned historical data base (i.e., the location signature data base), wherein the stored signal characteristic data for each stationary transceiver can be used for detecting environmental and/or topographical changes (e.g., a newly built high rise or other struαures capable of altering the multipath characteristics of a given geographical area); and

(iv) tuning of the location system parameters, wherein the steps of: (a) modifying various system parameteπ and (b) testing the performance of the modified location system on verified mobile station location data (including the stationary transceiver signal charaαeristic data), these steps being interleaved and repeatedly performed for obtaining better system location accuracy within useful time constraints.

It is also an aspect of the present invention to automatically ( recalibrate as in (63) above with signal characteristics from other known or verified locations. In one embodiment of the present invention, portable location verifying eleαronics are provided so that when such eleαronics are sufficiently near a located target MS, the eleαronics: (I) deteα the proximity of the target MS; (ii) determine a highly reliable measurement of the location of the target MS; (iii) provide this measurement to other location determining components of the present invention so that the location measurement can be associated and archived with related signal charaαeristic data received from the target MS at the location where the location measurement is performed. Thus, the use of such portable location verifying eleαronics allows the present invention to capture and utilize signal characteristic data from verified, substantially random locations for location system calibration as in (63) above. Moreover, it is important to note that such location verifying eleαronics can verify locations automatically wherein it is unnecessary for manual activation of a location verifying process. One embodiment of the present invention includes the location verifying eleαronics as a "mobile (location) base station" (MBS) that can be, for example, incorporated into a vehicle, such as an ambulance, police car, or taxi. Such a vehicle can travel to sites having a transmitting target MS, wherein such sites may be randomly located and the signal charaαeristic data from the transmitting target MS at such a location can consequently be archived with a verified location measurement performed at the site by the mobile location base station. Moreover, it is important to note that such a mobile location base station as its name implies also includes base station eleαronics for communicating with mobile stations, though not necessarily in the manner of a conventional infrastructure base station. In particular, a mobile location base station may only monitor signal characteristics, such as MS signal strength, from a target MS without transmitting signals to the target MS. Alternatively, a mobile location base station can periodically be in bi-directional communication with a target MS for determining a signal time-of-arrival (or time-difference-of- arrival) measurement between the mobile location base station and the target MS. Additionally, each such mobile location base station includes components for estimating the location of the mobile location base station, such mobile location base station location estimates being important when the mobile location base station is used for locating a target MS via, for example, time-of-arrival or time-difference-of-arrival measurements as one skilled in the art will appreciate. In particular, a mobile location base station can include:

(7.1) a mobile station (MS) for both communicating with other components of the present invention (such as a location processing center included in the present invention);

(12) a GPS receiver for determining a location of the mobile location base station;

(73) a gyroscope and other dead reckoning devices; and (7.4) devices for operator manual entry of a mobile location base station location.

Furthermore, a mobile location base station includes modules for integrating or reconciling distinct mobile location base station location estimates that, for example, can be obtained using the components and devices of (7.1) through (7.4) above. That is, location estimates for the mobile location base station may be obtained from: GPS satellite data, mobile location base station data provided by the location processing center, dead reckoning data obtained from the mobile location base station vehicle dead reckoning devices, and location data manually input by an operator of thε mobile location base station.

The location estimating system of the present invention offers many advantages over existing location systems. The system of the present invention, for example, is readily adaptable to existing wireless communication systems and can accurately locate people and/or objeαs in a cost effective manner. In particular, the present invention requires few, if any, modifications to commercial wireless communication systems for implementation. Thus, existing personal communication system infrastruαure base stations and other components of, for example, commercial CDMA infrastruαures are readily adapted to the present invention. The present invention can be used to locate people and/or objeαs that are not in the line-of-sight of a wireless receiver or transmitter, can reduce the detrimental effects of multipath on the accuracy of the location estimate, can potentially locate people and/or objeαs located indoors as well as outdoors, and uses a number of wireless stationary transceivers for location. The present invention employs a number of distinctly different location computational models for location which provides a greater degree of accuracy, robustness and versatility than is possible with existing systems. For instance, the location models provided include not only the radius- radius/TOA and TDOA techniques but also adaptive artificial neural net techniques. Further, the present invention is able to adapt to the topography of an area in which location service is desired. The present invention is also able to adapt to environmental changes substantially as frequently as desired. Thus, the present invention is able to take into account changes in the location topography over time without extensive manual data manipulation. Moreover, the present invention can be utilized with varying amounts of signal measurement inputs. Thus, if a location estimate is desired in a very short time interval (e.g., less than approximately one to two seconds), then thε present location estimating system can be used with only as much signal measurement data as is possible to acquire during an initial portion of this time interval. Subsequently, after a greater amount of signal measurement data has been acquired, additional more accurate location estimates may be obtained. Note that this capability can be useful in the context of 911 emergency response in that a first quick course wireless mobile station location estimate can be used to route a 911 call from the mobile station to a 911 emergency response center that has responsibility for the area containing the mobile station and the 911 caller. Subsequently, once the 911 call has been routed according to this first quick location estimate, by continuing to receive additional wireless signal measurements, more reliable and accurate location estimates of the mobile station can be obtained. Moreover, there are numerous additional advantages of the system of the present invention when applied in CDMA communication systems. The location system of the present invention readily benefits from the distinct advantages of the CDMA

spread speαrum scheme, namely, these advantages include the exploitation of radio frequency speαral efficiency and isolation by (a) monitoring voice activity, (b) management of two-way power control, (c) provisioning of advanced variable-rate modems and error correcting signal encoding, (d) inherent resistance to fading, (e) enhanced privacy, and (f) multiple "rake" digital data receivers and searcher receivers for correlation of signal multipaths. At a more general level, it is an aspect of the present invention to demonstrate the utilization of various novel computational paradigms such as:

(8.1) providing a multiple hypothesis computational architeαure (as illustrated best in Fig.8) wherein the hypotheses are: (8.1.1) generated by modular independent hypothesizing computational models;

(8.12) the models are embedded in the computational architeαure in a manner wherein thε architeαure allows for substantial amounts of application specific processing common or generic to a plurality of the models to be straightforwardly incorporated into the computational architeαure;

(8.13) the computational architeαure enhances the hypotheses generated by the models both according to past performance of the models and according to application specific constraints and heuristics without requiring feedback loops for adjusting the models; (8.1.4) the models are relatively easily integrated into, modified and extraαεd from thε computational architecture;

(82) providing a computational paradigm for enhancing an initial estimated solution to a problem by using this initial estimated solution as, effectively, a query or index into an historical data base of previous solution estimates and corresponding aαual solutions for deriving an enhanced solution estimatε based on past performance of the module that generated the initial estimated solution. Note that the multiple hypothesis architeαure provided herein is useful in implementing solutions in a wide range of applications. For example, the following additional applications are within the scope of the present invention: (9.1) document scanning applications for transforming physical documents in to electronic forms of the documents. Note that in many cases the scanning of certain documents (books, publications, etc.) may have a 20% charaαer recognition error rate. Thus, the novel computation architeαure of the presεπt invention can be utilized by (I) providing a plurality of document scanning models as the first order models, (ii) building a charaαer recognition data base for archiving a correspondence between charaαeristics of aαual printed charaαer variations and the intended characters (according to, for example, font types), and additionally archiving a correspondence of performance of each of the models on previously encountered aαual printed charaαer variations (note, this is analogous to the Signature Data Base of thε MS location application described herein), and (iii) determining any generic constraints and/or heuristics that are desirable to be satisfied by a plurality of the models. Accordingly, by comparing outputs from the first order document scanning models, a determination can be made as to whether further processing is desirable due to, for example, discrepancies between the output of the models. If further processing is desirable, then an embodiment of the multiple hypothesis architecture provided herein may be utilized to correα such discrepancies. Note that in comparing outputs from the first order document scanning models, these outputs may be compared at various granularities; e.g., charaαer, sentence, paragraph or page;

(92) diagnosis and monitoring applications such as medical diagnosis/monitoring, communication network diagnosis/monitoring;

(93) robotics applications such as scene and/or objeα recognition;

(9.4) seismic and/or geologic signal processing applications such as for locating oil and gas deposits; (9.5) Additionally, note that this architeαure need not have all modules co-located. In particular, it is an additional aspeα of the present invention that various modules can bε remotely located from one another and communicate with one another via telecommunication transmissions such as telephony technologies and/or the Internet. Accordingly, the present invention is particularly adaptable to such distributed computing environments. For example, some number of the first order models may reside in remote locations and communicate their generated hypotheses via the internet. For instance, in weather predittion applications it is not uncommon for computational models to require large amounts of computational resources. Thus, such models running at various remote computational facilities can transfer weather prediαion hypotheses (e.g., the likely path of a hurricane) to a site that performs hypothesis adjustments according to: (i) past performance of the each model; (ii) particular constraints and/or heuristics, and subsequently outputs a most likely estimate for a particular weather condition. In an alternative embodiment of the present invention, the processing following the generation of location hypotheses

(each having an initial location estimate) by the first order models may be such that this processing can be provided on Internet user nodes and the first order models may reside at Internet server sites. In this configuration, an internet user may request hypothesεs from such remote first order models and perform the remaining processing at his/her node.

In other embodiments of the present invention, a fast, abeit less accurate location estimate may be initially performed for very time critical location applications where approximate location information may be required. For example, less than I second response for a mobile station location embodiment of the present invention may be desired for 911 emergency response location requests. Subsequεntly, once a relatively course location estimate has beεn provided, a more accurate most likely location estimate can be performed by repeating the location estimation processing a second time with, e.g., additional with measurements of wireless signals transmitted between a mobile station to be located and a network of base stations with which the mobile station is communicating, thus providing a second, more accurate location estimate of the mobile station.

Additionally, note that it is within the scope of the present invention to provide one or more central location development sites that may be networked to, for example, geographically dispersed location centεrs providing location services according to the present invention, wherein the FOMs may be accessed, substituted, enhanced or removed dynamically via network conneαions (via, e.g., the Internet) with a central location devεlopment site. Thus, a small but rapidly growing municipality in substantially flat low density area might initially be provided with access to, for example, two or three FOMs for generating location hypotheses in the municipality's relatively uncluttered radio signaling environment. However, as the population density increases and the radio signaling environment becomes cluttered by, for example, thermal noise and multipath, additional or alternative FOMs may be transferred via the network to the location center for the municipality.

Notε that in some embodiments of the present invention, since there a lack of sequencing between the FOMs and subsequent processing of location hypothesεs, the FOMs can be incorporated into an expert system, if desired. For example, each FOM may be aαivated from an antecεdent of an expert system rule. Thus, the antecedent for such a rule can evaluate to TRUE if the FOM outputs a location hypothesis, and the consequent portion of such a rule may put the output location hypothesis on a list of location hypotheses occurring in a particular time window for subsequent processing by the location centεr. Alternatively, aαivation of the FOMs may be in the consequents of such expert system rules. That is, thε antecedent of such an expert system rule may determine if the conditions are appropriate for invoking the FOM(s) in the rule's consequent.

Of couπe, other software architeαures may also to used in implementing the processing of the location center without departing from scope of the present invention. In particular, object-oriented architeαures are also within the scope of the present invention. For example, the FOMs may be objeα methods on an MS location estimator objeα, wherein the estimator object receives substantially ail target MS location signal data output by the signal filtering subsystem. Alternatively, software bus architeαures are contemplated by the present invention, as one skilled in the art will undeπtand, wherein the software architeαure may be modular and facilitate parallel processing. Further features and advantages of thε present invεntion are provided by the figures and detailed description accompanying this invention summary.

BRIEF DESCRIPTION OF THE DRAWINGS

Fig. I illustrates various perspectives of radio propagation opportunities which may bε considered in addressing correlation with mobile to base station ranging.

Fig.2 shows aspeαs of the two-ray radio propagation model and the effects of urban clutter. Fig.3 provides a typical examplε of how the statistical power budgεt is calculated in design of a Commercial Mobile Radio

Service Provider network- Fig.4 illustrates an overall view of a wireless radio location network architecture, based on AIN principlεs. Fig.5 is a high lεvεl block diagram of an εmbodiment of the present invention for locating a mobile station (MS) within a radio coverage area for the present invention. Fig.6 is a high level block diagram of the location ceπtεr 142.

Fig.7 is a high level block diagram of the hypothesis evaluator for the location center. Fig.8 is a substantially comprehensive high level block diagram illustrating data and control flows between the components of the location centεr, as well thε functionality of the components.

Fig.9 is a high level data struαure diagram describing the fields of a location hypothesis objeα generated by the first order modεls 1224 of the location center.

Fig. 10 is a graphical illustration of the computation performed by the most likelihood estimator 1344 of the hypothesis evaluator.

Fig. 11 is a high level block diagram of the mobile base station (MBS).

Fig. 12 is a high level state transition diagram describing computational states the Mobile Base station enters during operation.

Fig. 13 is a high level diagram illustrating the data structural organization of the Mobile Base station capability for autonomously determining a most likely MBS location from a plurality of potentially confliαing MBS location estimating sources.

Fig. 14 shows one method of modεliπg CDMA delay spread measuremεnt ensemblεs and interfacing such signals to a typical artificial neural network based FOM. Fig. 15 illustrates the nature of RF "Dead Zones" , notch area, and the importance of including location data signatures from the back side of radiating elements.

Figs. 16a through 16c present a table providing a brief description of the attributes of the location signature data type stored in the location signature data base 1320.

Figs. 17a through 17c present a high level flowchart of the steps performed by function, "UPDATE LOC SIG DB," for updating location signatures in thε location signature data base 1320; note, this flowchart corresponds to the description of this funαion in APPENDIX C.

Figs. 18a through 18b present a high level flowchart of the steps performεd by funαion, "REDUCEJJAD DB LOC SIGS," for updating location signatures in the location signature data base 1320; notε, this flowchart corresponds to the description of this fuπαion in APPENDIX C.

Figs. 19a through 19b present a high level flowchart of the steps performed by funαion, "INCREASE CONFIDENCE OF GOOD DBJOC SIGS," for updating location signatures in the location signature data base 1320; note, this flowchart corresponds to thε description of this funαion in APPENDIX C.

Figs.20a through 20d present a high level flowchart of the steps performed by funαion, "DETERMINE LOCATION SIGNATURE FIT RRORS," for updating location signatures in thε location signature data base 1320; note, this flowchart corresponds to thε description of this funαion in APPENDIX C. Fig.21 presents a high levεl flowchart of thε stεps performed by funαion, "ESTIMATE_L0C_5IG_FR0M_DB," for updating location signatures in the location signature data base 1320; note, this flowchart corresponds to the description of this funαion in APPENDIX C.

Figs.22a through 22b present a high level flowchart of the stεps performed by funαion, "GET_AREA_TO_SEARCH," for updating location signatures in the location signature data base 1320; note, this flowchart corresponds to the description of this funαioπ in APPENDIX C.

Figs.23a through 23b present a high levεl flowchart of thε stεps performed by funαion, "GET_DIFFERENCE_MEASUREMENT," for updating location signatures in thε location signature data base 1320; note, this flowchart corresponds to the description of this funαion in APPENDIX C.

Fig.24 is a high levεl illustration of context adjuster data struαures and thεir relationship to the radio coverage area for the present invention;

Figs.25a through 25b present a high level flowchart of the steps performed by the funαion, "CONTEXT ADJUSTER," used in the context adjuster 1326 for adjusting mobile station esti atεs provided by the first order models 1224; this flowchart corresponds to the description of this function in APPENDIX D.

Figs.26a through 26c present a high levεl flowchart of the steps performed by the funαion, "GET_ADJUSTED_LOC_HYP_LIST_F0R," used in the context adjuster 1326 for adjusting mobile station estimates provided by the first order models 1224; this flowchart corresponds to the description of this funαion in APPENDIX D.

Figs.27a through 27b present a high level flowchart of the steps performed by the funαion, "CONFIDENCE ADJUSTER," used in thε context adjuster 1326 for adjusting mobile station estimatεs providεd by the first order models 1224; this flowchart corresponds to the description of this function in APPENDIX D. Fig.28a and 28b presents a high level flowchart of the steps performed by the function,

"GET_C0MPOSITE_PREDICTION IAPPED_CLUSTER_DENS.TY," used in the context adjuster 1326 for adjusting mobile station estimatεs providεd by thε first order models 1224; this flowchart corresponds to the description of this funαion in APPENDIX D.

Figs.29a through 29h present a high level flowchart of the steps performed by the funαion, "GET_PRED!CTION_MAPPED_CLUSTER_DENSITY_FOR," used in the context adjuster 1326 for adjusting mobile station estimates provided by thε fiπt ordεr models 1224; this flowchart corresponds to the description of this funαion in APPENDIX D.

Fig.30 illustrates the primary components of thε signal processing subsystem.

Fig.31 illustrates how automatic provisioning of mobile station information from multiple CMRS occuπ.

DETAILED DESCRIPTION

Detailed Description Introduction

Various digital wireless communication standards have beεn introducεd such as Advanced Mobile Phone Service (AMPS), Narrowband Advanced Mobile Phonε Service (NAMPS), code division multiple access (CDMA) and Time Division Multiple Access (TDMA) (e.g., Global Systems Mobile (GSM). These standards provide numerous enhancements for advancing the quality and communication capacity for wireless applications. Referring to CDMA, this standard is described in the Telephone Industries Association standard IS- 95, for frequencies below I GHz, and in J-STD-008, the Wideband Spread-Speαrum Digital Cellular System Dual-Mode Mobile Station-Base station Compatibility Standard, for frequencies in the 1.8 - 1.9 GHz frequency bands. Additionally, CDMA general principlεs havε been described, for example, in U.S. Patent 5,109390, Diversity Receiver in a CDMA Cellular Telephone System by Gilhousen. There are numerous advantages of such digital wireless technologies such as CDMA radio technology. For examplε, the CDMA spread speαrum scheme exploits radio frequency speαral efficiency and isolation by monitoring voice activity, managing two- way power control, provision of advanced variable-rate modems and error correcting signal design, and includes inherent resistance to fading, enhanced privacy, and provides for multiple "rake" digital data receivers and searcher receivers for correlation of multiple physical propagation paths, resεmbling maximum likelihood deteαion, as well as support for multiple base station communication with a mobile station, i.e., soft or softer hand-off capability. When coupled with a location center as described herein, substantial improvements in radio location can bε achieved. For example, the CDMA spread speαrum schεmε εxploits radio frequency speαral efficiency and isolation by monitoring voice aαivity, managing two-way power control, provision of advanced variable-rate modems and error correcting signal dεsign, and includεs inherent resistance to fading, enhanced privacy, and provides for multiple "rake" digital data receivers and searcher receivers for correlation of multiple physical propagation paths, resεmbling maximum likelihood deteαion, as well as support for multiple base station communication with a mobile station, i.e., soft hand-off capability. Moreover, this same advanced radio communication infrastruαure can also be used forenhancεd radio location. As a further example, thε capabilities of IS-41 and AIN already provide a broad-granularity of wireless location, as is necessary to, for examplε, properly direct a terminating call to an MS. Such information, originally intended for call processing usage, can be re-usεd in conjuπαion with thε location center described herein to provide wireless location in the large (i.e., to determine which country, state and city a particular MS is located) and wirelεss location in the small (i.e., which location, plus or minus a few hundred feet within one or more base stations a given MS is located).

Fig.4 is a high level diagram of a wireless digital radiolocation intelligent network architeαure for the present invention. Accordingly, this figure illustratεs the interconnections between the components, for example, of a typical PCS network configuration and various components that are specific to the present invention. In particular, as one skilled in the art will understand, a typical wireless (PCS) network includes:

(a) a (large) plurality of conventional wireless mobile stations (MSs) 140 for at least one of voice related communication, visual (e.g., text) related communication, and according to present invention, location related communication;

(b) a mobile switching center (MSC) 112;

(c) a plurality of wireless cell sites in a radio coverage area 120, wherein each cell site includes an infrastruαure base station such as those labeled 122 (or variations thereof such as I22A - I22D). In particular, the base stations 122 denote the standard high traffic, fixed location base stations used for voice and data communication with a plurality of MSs 140, and, according to the present invention, also used for communication of information related to locating such MSs 140. Additionally, note that the base stations labeled 152 are more directly related to wireless location enablement. For example, as described in greater detail hereinbelow, the base stations 152 may be low cost, low functionality transponders that are used primarily in communicating MS location related information to the location center 142 (via base stations 122 and the MSC 112). Note that unless stated otherwise, the base stations 152 will be referred to hereinafter as "location base statioπ(s) 152" or simply "LBS(s) 152"); (d) a public switched tεlεphone network (PSTN) 124 (which may include signaling system links 106 having network control components such as: a service control point (SCP) 104 , one or more signaling transfer points (STPs) 110.

Added to this wireless network, the present invention provides the following additional components: (10.1) a location center 142 which is required for determining a location of a target MS 140 using signal charaαeristic values for this target MS;

(102) one or more mobile base stations 148 (MBS) which are optional, for physically traveling toward the target MS 140 or tracking the target MS;

(103) a plurality of location base stations 152 (LBS) which are optional, distributed within the radio coverage areas 120, each LBS 152 having a relatively small MS 140 detection area 154; Since location base stations can be located on potentially each floor of a multi-story building, the wireless location technology described herein can be used to perform location in terms of height as well as by latitude and longitude.

In operation, the MS 140 may utilize one of the wireless technologies, CDMA, TDMA, AMPS, NAMPS or GSM techniques for radio communication with: (a) one or more infrastruαure basε stations 122, (b) mobilε base statioπ(s) 148 , (c) an LBS 152.

Referring to Fig.4 again, additional detail is provided of typical base station coverage areas, sectorizatioπ, and high level components within a radio coverage area 120, including the MSC 112. Although base stations may be placed in any configuration, a typical deployment configuration is approximately in a cellular honeycomb pattern, although many practical tradeoffs exist, such as site availability, versus the requirement for maximal terrain coverage area. To illustrate, three such exemplary base stations (BSs) are I22A, I22B and I22C, each of which radiate referencing signals within their area of coverage 169 to facilitate mobile station (MS) 140 radio frequency connectivity, and various timing and synchronization functions. Note that some base stations may contain no setters 130 (ε.g. I22E), thus radiating and receiving signals in a 360 degree omnidirectional coverage area pattern, or the base station may contain "smart antennas" which have specialized coverage area patterns. However, the generally most frequent base stations 122 have threε seαor 130 coverage area patterns. For example, base station I22A includes sectors 130, additionally labeled a, b and c. Accordingly, each of thε sectors 130 radiate and receive signals in an approximate 120 degree arc, from an overhead view. As one skilled in the art will understand, aαual base station coverage areas 169 (stylistically represented by hexagons about the basε

stations 122) generally are designed to overlap to some extent, thus ensuring seamless coverage in a geographical area. Control electronics within each base station 122 are used to communicate with a mobile stations 140. Information regarding thε coverage area for each sector 1 0, such as its range, area, and "holes" or areas of no coverage (within the radio coverage area 120), may be known and used by the location center 142 to facilitate location determination. Further, during communication with a mobile station 140, the identification of each base station 122 communicating with the MS 140 as well, as any seαor identification information, may be known and provided to the location center 142.

In the case of the base station types 122, 148, and 152 communication of location information, a base station or mobility controller 174 (BSC) controls, processes and provides an interface between originating and terminating telεphone calls from/to mobile station (MS) 140, and the mobilε switch center (MSC) 112. The MSC 122, on-the-othεr-hand, performs various administration funαions such as mobilε station 140 registration, authentication and the relaying of various system parametεrs, as oπε skilled in the art will undeπtand.

Thε base stations 122 may be coupled by various transport facilities 176 such as leased lines, frame relay, T-Carriεr links, optical fiber links or by microwave communication links.

When a mobile station 140 (such as a CDMA, AMPS, NAMPS mobile telephone) is powered on and in the idle state, it constantly monitors the pilot signal transmissions from each of the base stations 122 located at nearby cell sites. Since base station/sector coverage areas may often overlap, such ovεrlapping επables mobile stations 140 to deteα, and, in the case of certain wireless technologies, communicate simultaneously along both the forward and reverse paths, with multiple base stations 122 and/or seαors 130. In Fig.4 the constantly radiating pilot signals from base station seαors 130, such as seαors a, b and c of BS I22A, are detectable by mobile stations 140 within the coverage area 169 for BS I22A. That is, the mobile stations 140 scan for pilot channels, corresponding to a given base station/sεαor identifieπ (IDs) , for determining which coverage area 169 (i.e., cell) it is contained. This is performed by comparing signals strengths of pilot signals transmitted from these particular cell-sites.

The mobile station 140 then initiates a registration request with the MSC 112, via the base station controller 174. The MSC 112 determines whether or not the mobile station 140 is allowed to proceed with the registration procεss (εxcept in thε case of a 911 call, wherein no registration process is required). At this point calls may be originated from the mobile station 140 or calls or short message service messages can be received from the network. The MSC 112 communicatεs as appropriate, with a class 4Λ wireline telephony circuit switch or other central offices, connεαed to thε PSTN 124 network. Such central offices conneα to wireline terminals, such as telephonεs, or any communication device compatible with the line. The PSTN 124 may also provide conπeαions to long distance networks and other networks.

The MSC 112 may also utilize IS/41 data circuits or trunks connecting to signal transfer point 110, which in turn conneαs to a service control point 104, via Signaling System #7 (SS7) signaling links (e.g., trunks) for intelligent call processing, as one skilled in the art will understand. In the case of wireless AIN services such links are used for call routing instructions of calls interacting with the MSC 112 or any switch capable of providing service switching point functions, and the public switched telephone network (PSTN) 124, with possible termination back to the wireless network.

Referring to Fig.4 again, the location center (LC) 142 interfaces with the MSC 112 either via dedicated transport facilities 178, using for example, any number of LAN/WAN technologies, such as Ethernet, fast Ethernet, frame relay, virtual privatε networks, etc., or via the PSTN 124. The LC 142 receives autonomous (e.g., unsolicited) command/rεsponsε mεssages regarding, for εxamplε: (a) thε statε of the wireless network of each service provider, (b) MS 140 and BS 122 radio frequency (RF) measurements, (c) any MBSs 148, (d) location applications requesting MS locations using the location center. Conversely, the LC 142 provides data and control information to each of the above components in (a) - (d). Additionally, the LC 142 may provide location information to an MS 140, via a BS 122. Moreover, in the case of the use of a mobile base station (MBS) 148, several communications paths may exist with the LC 142.

The MBS 148 aαs as a low cost, partially-funαioπal, moving base station, and is, in one embodimεnt, situated in a vehicle where an operator may engage in MS 140 searching and tracking aαivities. In providing these aαivities using CDMA, the MBS 148 provides a forward link pilot channel fora target MS 140, and subsequently receives unique BS pilot strength measurements from thε MS 140. The MBS 148 also includes a mobile station for data communication with the LC 142, via a BS 122. In particular, such data communication includes telemetering the geographic position of the MBS 148 as well as various RF measurements related to signals received from the target MS 140. In some embodiments, the MBS 148 may also utilize multiple-beam fixed antenna array elεmεnts and/or a movεable narrow beam antenna , such as a microwave dish 182. The antennas for such embodiments may have a known orientation in order to further deduce a radio location of the target MS 140 with respect to an estimated current location of the MBS 148. As will be describεd in more detail herein below, the MBS 148 may further contain a global positioning system (GPS), distance sensors, dead-reckoning eleαronics, as well as an on-board computing system and display devices for locating both the MBS 148 of itself as well as tracking and locating thε target MS 140. Thε computing and display provides a means for communicating the position of the target MS 140 on a map display to an operator of the MBS 148.

Each location base station (LBS) 152 is a low cost location device. Each such LBS 152 communicates with one or more of the infrastruαure base stations 122 using one or more wireless technology interface standards. In some embodiments, to provide such LBS's cost effectively, εach LBS 152 only partially or minimally supports thε air-interface standards of the one or more wireless technologiεs usεd in communicating with both the BSs 122 and the MSs 140. Each LBS 152, when put in service, is placed at a fixed location, such as at a traffic signal, lamp post, etc., and wherein the location of the LBS may be determined as accurately as, for example, the accuracy of the locations of the infrastruαure BSs 122. Assuming the wireless technology CDMA is used, each BS 122 uses a time offset of the pilot PN sequencε to identify a forward CDMA pilot channel. In one embodiment, each LBS 152 emits a unique, time-offset pilot PN sequence channel in accordance with the CDMA standard in the RF spectrum designated for BSs 122, such that the channel does not interfere with neighboring BSs 122 cell site channels, nor would it interfere with neighboring LBSs 152. However, as one skilled in the art will understand, time offsets, in CDMA chip sizes, may be re-used within a PCS system, thus providing efficient use of pilot time offset chips, thereby achieving speαrum efficiency. Each LBS 152 may also contain multiple wireless receivers in order to monitor transmissions from a target MS 140. Additionally, each LBS 152 contains mobile station 140 electronics, thereby allowing the LBS to both be controlled by the LC 142, and to transmit information to the LC 142, via at least one neighboring BS 122.

As mεntionεd above, when the location of a particular target MS 140 is desired, thε LC 142 can request location information about the target MS 140 from, for instance, one or more aαivated LBSs 1 2 in a geographical area of interest. Accordingly, whenever the target MS 140 is in such an area, or is suspected of being in the area, either upon command from the LC 142, or in a substantially continuous fashion, the LBS's pilot channel appeaπ to the target MS 140 as a potential neighboring base station channel, and consequently, is placed, for example, in the CDMA neighboring set, or the CDMA remaining set, of the target MS 140 (as one familiar with the CDMA standards will uπdeπtand).

During the normal CDMA pilot search sequence of the mobile station initialization state (in the target MS), the target MS 140 will, if within range of such an aαivated LBS 152, deteα the LBS pilot presence during the CDMA pilot channel acquisition substate. Consequently, the target MS 140 performs RF measurements on the signal from εach dεteαεd LBS 152. Similarly, an aαivated LBS 152 can perform RF measurements on the wireless signals from the target MS 140. Accordingly, εach LBS 152 dεtεαing the target MS 140 may subsequently tεlεmεtεr back to the LC 142 measurement results related to signals from/to the target MS 140. Moreover, upon command, the target MS 140 will telemeter back to the LC 142 its own measurements of the deteαed LBSs 152, and consequently, this new location information, in conjunction with location related information received from the BSs 122, can be used to locate the target MS 140. it should be noted that an LBS 152 will normally deny hand-off requεsts, sincε typically the LBS does not require thε added complexity of handling voice or traffic bearer channels, although economics and peak traffic load conditions would dictate preference here. GPS timing information, needed by any CDMA base station, is εithεr achiεved via a thε inclusion of a local GPS receiver or via a telemetry process from a neighboring conventional BS 1 2, which contains a GPS receiver and timing information. Since energy requirements are minimal in such an LBS 152, (rechargεablε) batteries or solar cells may bε usεd to power the LBS. No expensive terrestrial transport link is typically required since two-way communication is provided by the included MS 140 (or an elεctronic variation thereof). Thus, LBSs 152 may be placed in numerous locations, such as:

(a) in dense urban canyon areas (e.g., where signal reception may be poor and/or very noisy);

(b) in remote areas (e.g., hiking, camping and skiing areas);

(c) along highways (e.g., for emergency as well as monitoring traffic flow), and their rest stations; or (d) in general, wherevεr more location precision is required than is obtainable using other wireless infrastruαion network components.

Location Center - Network Elements API Description

A location application programming interface 136 (Fig.4), or L-API, is required between the location center 142 (LC) and the mobile switch centεr (MSC) network elεmεnt type, in order to send and receivε various control, signals and data messages. The L- API should be implemented using a preferably high-capacity physical layer communications interface, such as IEEE standard 8023 (10 baseT Ethernet), although other physical layer interfaces could be used, such as fiber optic ATM, frame relay, etc. Two forms of API implementation are possible. In the first case the signals control and data messages are realized using the MSC 112 vendor's

native operations messagεs inherent in the produα offering, without any special modifications. In the second casε thε L-API includes a full suite of commands and messaging content specifically optimized for wireless location purposes, which may require some, although minor development on the part of the MSC vendor.

Signal Processor Description

Referring to Fig.30, the signal processing subsystem receives control messages and signal measurements and transmits appropriate control messages to the wireless network via the location applications programming interface referenced earlier, for wireless location purposes. The signal processing subsystem additionally provides various signal idiπtification, conditioning and pre¬ processing fuπαions, including buffering, signal type classification, signal filtering, message control and routing funαions to the location estimate modules.

There can be several combinations of Delay SpreadΛignal Strength sets of measurements made available to the signal processing subsystem 20. In some cases the mobile station 140 (Fig. I) may be able to detεα up to three or four Pilot Channels representing three to four Base Stations, or as few as onε Pilot Channel, depending upon thε environment. Similarly, possibly more than one BS 122 can detect a mobilε station 140 transmitter signal, as evidεnced by the provision of cell diversity or soft hand-off in the CDMA standards, and the faα that multiplε CMRS' basε station equipment commonly will overlap coverage areas. For each mobile station 140 or BS 122 transmitted signal detected by a receiver group at a station, multiple delayed signals, or "fingers" may be detected and tracked resulting from multipath radio propagation conditions, from a given transmitter.

In typical spread speαrum diversity CDMA receiver dεsign, the "first" finger represents the most direct, or least delayed multipath signal. Sεcoπd or possibly third or fourth fingers may also be detected and tracked, assuming the mobile station contains a sufficient numbεr of data receivers. Although traditional TOA and TDOA methods would discard subsequent fingers related to the same transmitted finger, collection and use of thεsε additional values can prove useful to reduce location ambiguity, and are thus collected by the Signal Processing subsystem in the Location Centεr 142.

From the mobile receiver's peπpεαivε, a numbεr of combinations of measurements could be made available to the Location Center. Due to the disperse and near-random nature of CDMA radio signals and propagation characteristics, traditional TOA FDOA location methods have failed in the past, because thε number of signals received in different locations area different. In a particularly small urban area, say lεss than 500 square feet, the number of RF signals and there multipath components may vary by over 100 percent.

Due to the large capital outlay costs associated with providing three or more overlapping base station coveragε signals in every possible location, most practical digital PCS deployments result in fewer than three base station pilot channels being reportable in the majority of location areas, thus resulting in a larger, more amorphous location estimate. This consequεncε requires a family of location estimate location modules, each firing whenevεr suitable data has been presεπted to a model, thus providing a location estimate to a backeπd subsystem which resolves ambiguities.

In one embodiment of this invention using backend hypothesis resolution, by utilizing existing knowledge concerning base station coverage area boundaries (such as via the compilation a RF coveragε database - either via RF coverage area simulations or

field tests), the location error space is decreased. Nεgativε logic Vεnn diagrams can be generated which deductively rule out certain location estimate hypothεsεs.

Although thε forward link mobilε station's received relative signal strength (RRSS BS ) of detected nearby base station transmitter signals can be used directly by thε location εstimate modules, the CDMA base station's reverse link received relative signal strength (RRSS MS ) of the deteαed mobile station transmitter signal must be modified prior to location estimate model use, since the mobile station transmitter power lεvεl changes nεarly continuously, and would thus render relative signal strength useless for location purposes.

One adjustment variable and one factor value are required by the signal processing subsystem in the CDMA air interface casε: I.) instantaneous relative power levεl in dBm (IRPL) of thε mobilε station transmitter, and 2.) thε mobile station Power Class. By adding the IRPL to the RRSS HS , a synthetic relative signal strength (SRSS ) of thε mobile station 140 signal deteαed at the BS 122 is derivεd, which can bε used by location estimate model analysis, as shown below:

SRSS = RRSS MS + IRPL (in dBm)

SRSS MSj a correαed indication of the effεαivε path loss in the revεπe direαion (mobile station to BS), is now comparable with RRSS B5 and can be used to provide a correlation with either distance or shadow fading because it now accounts for the chaπgε of thε mobile station transmitter's power level. The two signals RRSS BS and SRSS m can now be processεd in a variety of ways to achieve a more robust correlation with distance or shadow fading.

Although Rayleigh fading appears as a generally random noisε generator, essentially destroying the correlation value of either RRSS BS or SRSS measurements with distance individually, several mathematical operations or signal processing functions can bε performed on each measurement to derive a more robust relative signal strength value, overcoming the adverse Rayleigh fading effects. Examples include averaging, taking the strongest valuε and weighting the strongest value with a greater coefficient than the weaker value, then averaging the results. This signal processing technique takes advantage of the faα that although a Rayleigh fade may often exist in either the forward or reverse path, it is much less probable that a Rayleigh fade also exists in the reverse or forward path, respectively. A shadow fade howevεr, similiarly affεαs the signal strength in both paths.

At this point a CDMA radio signal direction-independent "net relative signal strength measurement" is derived which is used to establish a correlation with εithεr distance or shadow fading, or both. Although the ambiguity of either shadow fading or distance cannot be determined, other means can be used in conjunction, such as the fingers of the CDMA delay spread measurement, and any other TOA IDOA calculations from other geographical points. In the case of a mobile station with a certain amount of shadow fading between its BS 122 (Fig.2), the first finger of a CDMA delay spread signal is most likely to be a relatively shorter duration than the case where the mobilε station 140 and BS 122 are separated by a greater distance, since shadow fading does not materially affeα the arrival time delay of thε radio signal.

By performing a small modification in the control eleαronics of the CDMA base station and mobile station receiver circuitry, it is possible to provide the signal processing subsystem 20 (reference Fig.30) within the Location scenter 142 (Fig. I) with

data that excεεd the one-to-onε CDMA delay-spread fingers to data receiver correspondence. Such additional information, in the form of additional CDMA fingers (additional multipath) and all associated detεαablε pilot channels, provides new information which is used to εnhance to accuracy of the Location Center's location estimate location εsti ate modules.

This enhancεd capability is provided via a control message, sent from the Location center 142 to the mobilε switch center 12, and then to the base station(s) in communication with, or in close proximity with, mobile stations 140 to be located. Two types of location measurement requεst control mεssagεs are needed: one to instruct a target mobile station 140 (i.e., the mobile station to be located) to telemeter its BS pilot channel measurements back to the primary BS 122 and from there to the mobile switch center 112 and then to the location system 42. The second control message is sent from the location system 42 to the mobile switch center 112, then to first the primary BS, instructing the primary BS' searcher receiver to output (i.e., return to thε initiating request mεssage source) the deteαed targεt mobilε station 140 transmitter CDMA pilot channel offset signal and their corresponding delay spread finger (peak) values and related relative signal strengths.

The control messages are implεmεnted in standard mobile station 140 and BS 122 CDMA receivers such that all data results from the search receiver and multiplexed results from the associated data receivers are available for transmission back to the Location Center 142. Appropriate value ranges are required regarding mobilε station 140 paramεters T_ADD„ T_DROP„ and the ranges and values for the Aαive, Neighboring and Remaining Pilot sets registεrs, held within the mobile station 140 memory. Further mobile station 140 receiver details have been discussed above.

In the normal case without any specific multiplexing means to provide location measurements, exactly how many CDMA pilot channεls and delay spread fiπgeπ can or should be measured vary according to the number of data receivers contained in each mobile station 140. As a guide, it is preferred that whenever RF charaαeristics permit, at least three pilot channels and the strongest fiπt three fingers, are collected and processed. From the BS 122 perspeαivε, it is preferred that the strongεst first four CDMA delay spread fingers and the mobile station power level be collected and sent to thε location systεm 42, for each of preferably three BSs 122 which can deteα the mobile station 140. A much larger combination of measurements is potentially feasible using the extended data collection capability of the CDMA receivers.

Fig.30 illustrates the components of the Signal Processing Subsystem. The main components consist of the input queuε(s) 7, signal classifier/filter 9, digital signaling processor 17, imaging filters 19, output queue(s) 21 , router/distributor 23, a signal processor database 26 and a signal processing controller 15.

Input quεuεs 7 are required in order to stage the rapid acceptancε of a significant amount of RF signal measurement data, used for either location estimate purposes or to accept autonomous location data. Each location request using fixed base stations may, in one embodiment, contain from I to 128 radio frequency measurements from the mobile station, which translates to approximately 61.44 kilobytes of signal measurement data to be collected within 10 seconds and 128 measurements from each of possibly four base stations, or 245.76 kilobytes for all base stations, for a total of approximately 640 signal measurements from the five sources, or 307.2 kilobytes to arrive per mobile station location request in 10 seconds. An input queue storage space is assigned at the moment a location request begins, in order to establish a formatted data structure in persistent store. Depending upon the

urgency of the time required to render a location estimate, fewer or more signal measurement samples can be taken and stored in thε input queue(s) 7 accordingly.

The signal processing subsystem supports a variety of wireless network signaling measurement capabilities by deteαing thε capabilities of thε mobile and base station through messaging struαures provided bt thε location application programming interface. Detection is accomplished in the signal classifier 9 (Fig.30) by referencing a mobilε station database table within the signal processor database 26, which provides, given a mobile station identification numbεr, mobilε station revision code, other mobile station charaαersitics. Similiarly, a mobile switch center table 31 provides MSC charaαeristics and identifications to the signal classifier/filter 9. The signal classifier/filter adds additional message header information that further classifies the measurement data which allows the digital signal processor and image filter components to select the proper internal processing subcomponents to perform operations on the signal measurement data, for use by the location estimatε modules.

Rεgarding service control point messagεs autonomously receivεd from thε input quεue 7, the signal classifier/filter 9 detεmines via a signal processing database 26 query that the message is to be associated with a home base station module. Thus appropriate headεr information is added to the messagε, thus εnabling thε mεssage to pass through the digital signal processor 17 unaffected to the output queu 21, and then to the router/distributor 23. Thε router/distributor 23 then routes the message to the HBS fiπt order model. Those skilled in the art will understand that associating location requests from Home Base Station configurations require substantially less data: the mobile identification number and the associated wireline telephonε number transmission from the home location register are on the ordεr of lεss than 32 bytes. Consequentially the home base station message type could be routed without any digital signal processing. Output queue(s) 21 are required for similar reasons as input queues 7: relatively large amounts of data must be held in a specific format for further location processing by the location estimatε modulεs.

The router and distributor component 23 is responsible to direαing specific signal measurement data types and struαures to their appropriate modules. For example, thε HBS FOM has no use for digital filtering struαures, whereas the TDOA module would not be able to process an HBS response messagε. Thε controller 15 is responsible for staging thε movεmεnt of data among the signal processing subsystem 20 components input queue 7, digital signal processor 17, router/distributor 23 and the output quεue 21, and to initiate signal measurments within the wireless network, in response from an internet 168 location request message in Fig. I, via the location application programming interface.

In addition the controller 15 receives autonomous messages from the MSC , via the location applications programming interface (Fig. I) or L-API and the input queue 7, whenεvεra 9-1-1 wireless call is originated. The mobile switch center provides this autonomous notification to the location system as follows: By specifiying the appropriate mobile switch center opεrations and maintenance commands to surveil calls based on certain digits dialed such as 9-1-1, the location applications programming interface, in communications with the MSCs, receives an autonomous notification whenever a mobile station user dials 9-1-1. Specifically, a bi- dirεαional authorized communications port is configured, usually at the operations and maintenance subsystem of the MSCs, or with their associated network element manager system(s), with a data circuit, such as a DS-I, with the location applications programming

interface in Fig. I . Next, the "call trace" capability of the mobile switch center is aαivated for the respeα ' rve communications port. The exaα implementation of the vendor-specific man-machine or Open Systεms Interface (OSi) commands(s) and their associated data struαures generally vary among MSC vendors, howevεr thε trace funαion is generally available in various forms, and is required in ordεr to comply with Federal Bureau of Investigation authorities for wire tap purposes. After the appropriate surveillance commands are establishεd on thε MSC, such 9-1-1 call notifications mεssages containing thε mobilε station identification number (MIN) and, in phase I E9-I-I implementations, a psεudo-automatic number ideπtication (a.k.a. pANI) which provides an association with the primary base station in which the 9-1-1 caller is in communicaiton. In cases where the pANI is known from the onset, the signal processing subsystem avoids querying the MSC in question to determine the primary base station identification associated with the 9-1-1 mobile station caller.

After the signal processing controller 15 receives the fiπt mεssagε type, the autonomous notification message from the mobile switch center 112 to the location system 42, containing the mobile identification number and optionally the primary base station identification, the controller 15 quεries the base station table 13 in the signal processor database 26 to determine the status and availability of any neighboring base stations, including those base stations of other CMRS in the area. The definition of neighboring basε stations include not only thosε within a provisionable "hop" based on the cell design reuse fattor, but also includes, in the case of CDMA, results from remaining set information autonomously queried to mobile stations, with results stored in thε basε station tablε. Remaining set information indicates that mobile stations can deteα other base station (seαor) pilot channels which may exceεd thε "hop" distance, yet are nevertheless candidatε base stations (or seαors) for wireless location purposes. Although cellular and digital cell design may vary, "hop" distance is usually one or two cell coverage areas away from the primary base station's cell coverage area.

Having determined a likely set of base stations which may both deteα the mobile station's transmitter signal, as well as to determine the set of likely pilot channels (i.e., base stations and their associated physical antenna seαoπ) detectable by the mobile station in the area surrounding the primary base station (sector), the controller 15 initiates messages to both the mobile station and appropriate base stations (sectors) to perform signal measurements and to return the results of such measurements to the signal processing system regarding the mobile station to be located. This step may be accomplished via several interface means. In a fiπt case the controller 15 utilizes, for a given MSC, predetermined storage information in the MSC table 31 to determine which type of commands, such as man-machine or OSI commands are needed to request such signal measurements for a given MSC. The controller generates the mobile and base station signal measurement commands appropriate for the MSC and passes the commands via the input queue 7 and the locations application programming interface in Fig.l, to thε appropriatε MSC, using the authorizεd communications port mεntioned earliεr. In a second case the controller 15 communicates directly with base stations within having to interface directly with the MSC for signal measurement extraction.

Upon recεipt of the signal mεasurements, the signal classifier 9 in Fig.30 examines location application programming interface-provided message header information from the source of the location measurement (for example, from a fixed BS 122, a

mobile station 140, a distributed antenna system 168 in Fig. I or messagε location data related to a home base station), providεd by the location applications programming interface (L-API) via the input queue 7 in Fig.30 and detεrminεs whεthεr or not dεvicε filters 17 or imagε filters 19 are needεd, and assesses a relative priority in processing, such as an emergency veπus a background location task, in terms of grouping like data associated with a given location request. In the case where multiple signal measurement requests are outstanding for various base stations, some of which may be associated with a different CMRS network, and additional signal classifier funαion includes sorting and associating the appropriate incoming signal measurements togethεr such that thε digital signal processor 17 processes related measurements in order to build ensemble data sets. Such ensembles allow for a variety of funαions such as averaging, outlier removal over a timeperiod, and related filtering funαions, and further prevent association errors from occuriπg in location εstimate processing. Another funαion of the signal classifier/low pass filter component 9 is to filter information that is not useable, or information that could introduce noise or the effeα of noise in the location estimatε modulεs. Consequently low pass matching filters are usεd to match the in-common signal processing components to the charaαeristics of the incoming signals. Low pass filters match: Mobile Station, basε station, CMRS and MSC charaαeristics, as wall as to classify Home Basε Station messages.

The signal processing subsystemcontains a basε station databasε table 13 (Fig.30) which captures the maximum number of CDMA delay spread fingers for a given base station.

The base station identification code, or CLLI or common language levεl identification code is useful in identifying or relating a human-labeled name descriptor to the Base Station. Latitude, Longitude and elεvation values are usεd by other subsystems in the location system for calibration and estimation purposes. As base stations and/or receiver charaαeristics are added, dεlεtεd, or changεd with respect to the network usεd for location purposes, this database table must be modified to reflett the current network configuration.

Just as an upgraded base station may detect additional CDMA delay spread signals, newer or modified mobile stations may deteα additional pilot channels or CDMA delay spread fingers. Additionally different makes and models of mobile stations may acquire improved receiver sensitivities, suggesting a greater coverage capability. The tablε below establishes the relationships among various mobile station equipmεnt suppliers and certain technical data relevant to this location invention. Although not strictly nεcεssary, The MIN can be populated in this table from the PCS Service Provider's Customer Care system during subscriber aαivation and fulfillment, and could be changed at deaαivation, or anytime the εnd-usεr changes mobile stations. Alternatively, since the MIN, manufaαurer, model number, and software revision levεl information is available during a telephone call, this information could extracted during the call, and the remaining fiεlds populated dynamically, based on manufacturer's' specifications information previously stored in the signal processing subsystem 20. Default values are used in cases where the MIN is not found, or where certain information must be estimated.

A low pass mobile station filter, contained within the signal classifier/low pass filter 9 of the signal processing subsystem 20, uses the above table data to perform the following functions: I) act as a low pass filter to adjust the nominal assumptions related to the maximum number of CDMA fingers, pilots detectable; and 2) to determine the transmit power class and the receiver thermal noise floor. Given the deteαed reverse path signal strength, the required value of SRSS MS a corrected indication of the effective path

loss in thε reverse direαion (mobile station to BS), can be calculated based data contained within the mobile station table 11, stored in the signal processing database 26.

The effects of the maximum Number of CDMA fingers allowed and the maximum number of pilot channels allowed essentially form a low pass filter effeα, wherein the least common denominator of characteristics are used to filter the incoming RF signal measurements such that a one for one matching occurs. The effeα of the transmit power class and receivεr thεrmal πoisε floor valuεs is to normalize the charaαeristics of the incoming RF signals with respeα to those RF signals used.

The signal classifier/filter 20 is in communication with both the input queue 7 and the signal processing database 26. In the early stage of a location request the signal processing subsystem 142 in Fig.4, will receive the initiating location request from either an autonomous 9-1-1 notification messagε from a given MSC, or from a location application (for examplε, sεε Fig.36), for which mobilε station charaαeristics about the target mobile station 140 (Fig. I) is required. Referring to Fig. 30, a query is made from the signal processing controller 15 to the signal processning database 26, specifically the mobile station table 11, to determine if the mobile station charaαeristics associated with the MIN to be located is available in table 11, if the data exists then there is no need for the controller 15 to query the wireless network in order to determiπε thε mobile station charaαeristics, thus avoiding additional real-time processing which would otherwise be required across the air interface, in order to determine the mobile station MIN charaαeristics. The resulting mobile station information my be provided either via the signal processing database 26 or alternatively a query may be performed directly from the signal processing subsystem 20 to the MSC in order to determine the mobile station charaαeristics.

Referring now to Fig.31, a location application programming interface, L-API-CCS 139 to the appropriate CMRS customer care system provides thε mechanism to populate and update the mobile station table 11 within the database 26. The L-API-CCS 139 contains its own set of separate input and output queues or similar implementations and security controls to ensure that provisioning data is not sent to the incorrect CMRS, and that a given CMRS cannot access any other CMRS' data. The interface 1155a to the customer care system for CMRS-A 1150a provides an autonomous or periodic notification and response application layer protocol type, consisting of add, delete, change and verify message funαions in order to update the mobile station table 11 within the signal processing database 26, via the controller 15. A similar interface 1155b is used to εnablε provisioning updates to be received from CMRS-B customer care system 1150b.

Although the L-API-CCS application message set may be any protocol type which supports thε autonomous notification message with positive acknowledgment type, the Tl Ml .5 group within the American National Standards Institute has defined a good starting point in which the L-API-CCS could be implemεnted, using the robust OSI TMN X-interface at thε service management layer. The objeα model defined in Standards proposal number TIMI.5/96-22R9, Operations Administration, Maintenance, and Provisioning (OAM&P) - Model for Interface Across Jurisdiαional Boundaries to Support Eleαronic Accεss Service Ordering: Inquiry Funαion, can be extended to support thε L-API-CCS information elements as required and further discussed below. Other choices in which the L- API-CCS application message set may be implemented include ASCII, binary, or any encrypted message set encoding using the Internet protocols, such as TCP/IP, simple network management protocol, http, https, and email protocols.

Referring to the digital signal processor (DSP) 17, in communication with thε signal classifier/LP filter 9, the DSP 17 provides a time series expansion method to convert non-HBS data from a format of an signal measure data ensemble of time-series based radio frequency data measurements, collected as discrete time-slice samples, to a threε dimεnsional matrix location data valuε image representation. Other techniques further filter the resultant imagε in ordεr to furnish a lεss noisy training and aαual data samplε to the location estimate modules.

After 128 samples (in one embodiment) of data are collected of the delay spread-relative signal strength RF data measurement sample: mobile station RX for BS-I and grouped into a quantization matrix, where rows constitutε relative signal strength intervals and columns define delay intervals. As each measurement row, column pair (which could be represented as a complex number or Cartesian point pair) is addεd to thεir rεspeαive values to generate a Z direαion of frequency of recurring measurement value pairs or a density recurrence funαion. By next applying a grid funαion to each x, y, and z value, a three- dimensional surface grid is generated, which represents a location data value or unique print of that 128-sample measurement. In the general case where a mobile station is located in an environment with varied clutter patterns, such as terrain undulations, unique man-made struαure geometries (thus creating varied multipath signal behaviors), such as a city or suburb, although the first CDMA delay spread finger may be the same value for a fixed distance between the mobile station and BS antennas, as the mobile station moves across such an arc, different finger-data are measured. In the right image for the defined BS antenna seαor, location classεs, or squares numbered one through sevεn, are shown across a particular range of line of position (LOP).

A traditional TOA/FDOA ranging method between a given BS and mobile station only provides a range along the arc, thus introducing ambiguity error. However a unique three dimensional image can be used in this method to specifically identify, with recurring probability, a particular unique location class along the same Line Of Position, as long as the multipath is unique by position but generally repeatable, thus establishing a method of not only ranging, but also of complete latitude, longitude location estimation in a Cartesian space. In other words, the unique shapε of the "mountain image" enables a correspondence to a given unique location class along a line of position, thereby eliminating traditional ambiguity error.

Although man-made external sources of interference, Rayleigh fades, adjacent and co-channel interference, and variable clutter, such as moving traffic introduce unprediαability (thus no "mountain image" would ever be exaαly alike), threε basic types of filtering methods can be used to reducε matching/comparison εrror from a training casε to a location request case: I.) select only the strongest signals from the forward path (BS to mobile station) and reverse path (mobile station to BS), 2.) Convolute the forward path 128 sample image with the reverse path 128 sample image, and 3.) process ail image samples through various digital image filters to discard noise components.

In one embodiment, convolution of forward and reverse images is performed to drive out noise. This is one embodiment that essentially nulls noise completely, even if strong and recurring, as long as that same noise charaαeristic does not occur in the opposite path.

The third embodiment or technique of processing CDMA delay spread profile images through various digital image filters, provides a resultant "image enhancement" in the sense of providing a more stable pattern recognition paradigm to the neural net

location estimate model. For example, image histogram equalization can be usεd to rearrange thε images' intensity values, or density recurrence values, so that the image's cumulative histogram is approximately linear.

Other mεthods which can be used to compensate for a concentrated histogram include: I) Input Cropping, 2) Output Cropping and 3) Gamma Correction. Equalization and input cropping can provide particularly striking benefits to a CDMA delay spread profile image. Input cropping removes a large percentage of random signal charaαeristics that are non-recurring.

Other filters and/or filter combinations can be used to help distinguish between stationary and variable clutter affecting multipath signals. For example, it is desirable to reject multipath fingers associated with variable clutter, since over a period of a few minutes such fingers would not likely recur. Further filtering can bε used to remove recurring (at least during the sample period), and possibly strong but narrow "pencils" of RF energy. A narrow pencil image component could be represented by a near perfeα reflective surface, such as a nεarby metal panel truck stoppεd at a traffic light.

On thε othεr hand, stationary clutter objeαs, such as concrete and glass building surfaces, adsorb some radiation bεforε continuing with a reflected ray at some dεlay. Such stationary clutter-affected CDMA fingers are more likely to pass a 4X4 neighbor Median filter as well as a 40 to 50 percent Input Crop filter, and are thus more suited to neural net pattern recognition.. However when subjected to a 4X4 neighbor Median filter and 40 percent clipping, pencil-shaped fingers are deletεd. Othεr combinations inciudε, for εxa ple, a 50 percent cropping and 4X4 neighbor median filtering. Other filtering methods include custom linear filtering, adaptive (Weiner) filtering, and custom nonlinear filtering.

The DSP 17 may provide data emsemble results, such as extracting the shortest time delay with a detectable relative signal strength, to the router/distributor 23, or alternatively results may bε procεssed via one or more image filters 19, with subsequent transmission to thε router/distributor 23. The router/distributor 23 examines the processed message data from the DSP 17 and stores routing and distribution information in the message header. The router/distributor 23 then forwards the data messages to the output queue 21, for subsequent queuing then transmission to the appropriate location εstimator FOMs.

LOCATION CENTER HIGH LEVEL FUNCTIONALITY

At a very high level the location center 142 computes location estimates for a wireless Mobile Station 140 (denoted the "target MS" or "MS") by performing the following steps:

(23.1) receiving signal transmission charaαeristics of communications communicated between the target MS 140 and onε or more wireless infrastruαure basε stations 122;

(23.2) filtering the received signal transmission characteristics (by a signal processing subsystem 1220 illustrated in Fig.5) as needed so that target MS location data can be generated that is uniform and consistent with location data generated from other target MSs 140. In particular, such uniformity and consistency is both in terms of data structures and interpretation of signal charaαeristic values provided by thε MS location data;

(233) inputting thε generated target MS location data to one or more MS location estimating models (denoted First order models or FOMs, and labeled collectively as 1224 in Fig.5), so that each such model may use the input target MS location data for generating a "location hypothesis" providing an estimatε of thε location of the target MS 140;

(23.4) providing the generated location hypothesεs to an hypothesis evaluation module (denoted the hypothesis evaluator 1228 in Fig.5):

(a) for adjusting at least one of the target MS location estimatεs of the generated location hypothesεs and related confidence values indicating the confidence given to each location estimate, wherein such adjusting uses archival information related to the accuracy of previously generated location hypothesεs,

(b) for εvaluating thε location hypothεses according to various heuristics related to, for example, the radio coveragε area 120 terrain, the laws of physics, charaαeristics of likely movemεnt of thε targεt MS 140; and

(c) for dεtεrmining a most likely location area for the target MS 140, wherein the measurement of confidencε associated with each input MS location area estimate is used for determining a "most likely location area"; and

(23.5) outputting a most likely target MS location estimatε to one or more applications 1232 (Fig.2.0) requesting an estimatε of the location of the target MS 140.

Location Hypothesis Data Representation

In ordεr to describe how the steps (23.1) through (23.5) are performed in the sections below, some introductory remarks related to the data denotεd abovε as location hypotheses will be helpful. Additionally, it will also be helpful to provide introductory remarks related to historical location data and the data base management programs associated therewith.

Foreach target MS location estimatε generated and utilized by the present invention, the location estimate is provided in a data struαure (or objeα class) denotεd as a "location hypothesis" (illustrated in Table LH-I). Although brief descriptions of the data fields for a location hypothesis is provided in the Table LH-I, many fields require additional explanation. Accordingly, location hypothesis data fields are further described as noted below.

Table LH-I

area est Location Area Estimate of the target MS 140 provided by thε FOM. This area εstimatε will bε used whenevεr "image area" below is NULL.

valid area Boolean indicating thε validity of "area_est" (one of "pt est" and "area est" must be valid).

adjust Boolean (true if adjustments to the fields of this location hypothesis are to be performed in the Context adjuster Modulε).

pt_covεring Rεference to a substantially minimal area (e.g., mesh cell) covering of "pt_est". Note, since this MS 140 may be substantially on a cell boundary, this covεring may, in somε cases, include more than one cell.

image area Rεference to a substantially minimal area (e.g., mesh cell) covering of "pt_covering" (seε detailed description of the funαion, "coπfidencε adjustεr"). Note that if this field is not NULL, then this is the target MS location estimate used by the location center 142 instead of area est

extrapolatioπ_area Refεrεncε to (if non-NULL) an extrapolated MS target estimate area provided by the location extrapolator submodule 1432 of the hypothesis analyzer 1332. That is, this field, if non-NULL, is an extrapolation of the "image area" field if it εxists, otherwise this field is an extrapolation of the "area est" field. Note other extrapolation fields may also bε provided depending on the embodiment of the present invention, such as an extrapolation of the "pt covεring".

confidence A real value in the range [-1.0, 4- 1.0] indicating a likelihood that the target MS 140 is in (or out) of a particular area. If positive: if "image_arεa" εxists, then this is a measure of the likelihood that the target MS 140 is within the area represented by "image area", or if "image area" has not bεen computed (ε.g., "adjust" is FALSE), thεn "arεa st" must be valid and this is a measure of the likelihood that the target MS 140 is within thε area represented by "area est". If negative, then "area est" must be valid and this is a measure of the likelihood that the targεt MS 140 is NOT in the area represented by "area est". If it is zero (near zero), then the likelihood is unknown.

OrigiπaNϊmestamp Date and time that the location signature cluster (defined hereinbelow) for this location hypothesis was received by the signal processing subsystem 1220.

Active Timestamp Run-time field providing the time to which this location hypothesis has had its MS location

As can be seen in the Table LH-I , each location hypothesis data struαure includes at least one measurement, denoted hereinafter as a confidence value (or simply confidence), that is a measurement of the percεivεd likelihood that an MS location estimate in the location hypothesis is an accurate location estimate of the target MS 140. Since such confidence values are an important aspeα of the present invention, much of the description and use of such confidence values are dεscribεd below; however, a brief description is provided here. Each such confidence value is in the range -1.0 to 1.0, wherein the larger the value, the greater the perceived likelihood that the target MS 140 is in (or at) a corresponding MS location estimate of the location hypothesis to which the confidencε valuε applies. As an aside, note that a location hypothesis may have more than onε MS location estimate (as will be discussed in detail below) and the confidence value will typically only correspond or apply to one of the MS location estimates in the location hypothesis. Further, values for the confidence value field may be interpreted as: (a) -1.0 may be interpreted to mean that the target MS 140 is NOT in such a corresponding MS area estimatε of thε location hypothesis area, (b) 0 may be interpreted to mean that it is unknown as to the likelihood of whether the MS 140 in the corresponding MS area estimatε, and (c) + 1.0 may bε interpreted to mean that the MS 140 is perceived to positively be in the corresponding MS area estimatε.

Additionally, πotε that it is within the scope of the present invention that the location hypothesis data struαure may also include other related "pεrcεption" mεasurements related to a likelihood of the target MS 140 bεing in a particular MS location area estimate. For example, it is within the scope of the present invention to also utilize measurements such as, (a) "sufficiency factors" for indicating the likelihood that an MS location estimate of a location hypothesis is sufficient for locating the target MS 140; (b) "necessity factors" for indicating the necessity that the target MS be in an particular area estimate. However, to more easily describe the present invention, a single confidencε field is used having the interpretation given above.

Additionally, in utilizing location hypotheses in, for example, thε location evaluator 1228 as in (23.4) above, it is important to keεp in mind that each location hypothesis confidence value is a relative measurement. That is, for confidences, cf, and cf 2 , if cf t < = cf 2 , then for a location hypotheses H, and H? having cf, and cf 2 , respectively, the target MS 140 is expεαεd to more likely reside in a target MS estimate of H 2 than a target MS estimate of H.. Moreover, if an area, A, is such that it is included in a plurality of location hypothesis target MS estimates, then a confidence score, CS , can be assigned to A, wherein the confidence score for such an area is a funαion of the confidences (both positivε and nεgative) for all the location hypotheses whose (most pertinent) target MS location εstimates contain A. That is, in ordεr to determine a most likely target MS location area estimate for outputting from the location cεnter 1 2, a confidence score is det rminεd for areas within the location centεr service area. More particularly, if a funαion, T, is a funαion of the confidence(s) of location hypotheses, and f is a monotonic funαion in its parameteπ and f(cf,, cf 2 , cf 3 , ... , cf N ) = CS 4 for confidences cf| of location hypotheses H ; i= l,2,...,N, with CS contained in the area estimate for H„ then is denoted a confidence score funαion. Accordingly, thεre are many εmbodiments for a confidencε score funαion f that may be utilized in computing confidencε scores with thε present invention; e.g.,

(a) f(cf„cf } cf N ) = S cf, = CS Λ ;

(b) f(cf„ cf 2 cf N ) = S cf; = CS A , n = 1, 3, 5, ...; (c) f(cf|, cfj, ... , cf N ) = S (K, * cf,) — CS A , wherein K„ i - 1, 2, ... are positive system (tunable) constants (possibly dependent on environmental charaαeristics such as topography, time, date, traffic, weather, and/or the type of base station(s) 122 from which location signatures with the target MS 140 are being generated, etc.).

For the present description of the invention, the funαioπ f as defined in (c) immediately above is utilized. However, for obtaining a general understanding of thε present invention, the simpler confidence score funαion of (a) may be more useful. It is important to note, though, that it is within the scope of the present invention to use other functions for the confidence score funαion.

Coveragε Area: Area Types And Their Determination

The notion of "area type" as related to wireless signal transmission characteristics has been used in many investigations of radio signal transmission charaαeristics. Some invεstigators, whεn investigating such signal charaαeristics of areas have used somewhat naive area classifications such as urban, suburban, rural, εtc. However, it is desirable for the purposes of thε present invention to have a more operational definition of area types that is more closely associated with wireless signal transmission behaviors.

To describe embodiments of thε an area type scheme used in the present invention, some introductory remarks are first provided. Note that the wireless signal transmission behavior for an area depεnds on at least the following critεria:

(23.8.1) substantially invariant terrain characteristics (both natural and man-made) of the area; e.g., mountains, buildings, lakes, highways, bridges, building density;

(23.8.2) time varying environmental characteristics (both natural and man-made) of the area; e.g., foliage, traffic, weather, special events such as baseball games;

(23.8.3) wireless communication components or infrastruαure in the area; e.g., the arrangement and signal communication characteristics of the base stations 122 in the area. Further, thε antenna charaαeristics at the base stations 122 may be important criteria. Accordingly, a description of wireless signal characteristics for determining area types could potentially include a charaαerization of wireless signaling attributes as they relate to each of the above criteria. Thus, an area type might be: hilly, treed, suburban, having no buildings above 50 feet, with base stations spaced apart by two miles. However, a categorization of area types is desired that is both more closely tied to the wireless signaling characteristics of the area, and is capable of bεing computed substantially automatically and repeatedly over time. Moreover, for a wireless location system, the primary wireless signaling charaαeristics for categorizing areas into at least minimally similar area types are: thεrmal noise and, more importantly, multipath characteristics (e.g., multipath fade and time delay).

Focusing for the moment on the multipath characteristics, it is believed that (23.8.1 ) and (23.8.3) immediately above are, in general, more important criteria for accurately locating an MS 140 than (23.8.2). That is, regarding (23.8.1), multipath tends to increase as the density of nearby vertical area changes increases. For example, multipath is particularly problematic where there is a high density of high rise buildings and/or where there are closely spaced geographic undulations. In both cases, the amount of change in vertical area per unit of area in a horizontal planε (for somε horizontal reference plane) may be high. Regarding (23.83), the greater the density of base stations 122, the less problematic multipath may become in locating an MS 140. Moreover, the arrangement of the base stations 122 in the radio coverage area 120 in Fig.4 may affeα the amount and severity of multipath.

Accordingly, it would be desirable to have a method and system for straightforwardly determining area type classifications related to multipath, and in particular, multipath due to (23.8.1) and (23.83). Thε prεsεπt invεntion provides such a determination by utilizing a novel notion of area typε, hereinafter denoted "transmission area type" (or, "(transmission) area type" when both a generic area type classification scheme and the transmission area type discussed hereinafter are intended) for classifying "similar" areas, wherein each transmission area type class or category is intended to describe an area having at lεast minimally similar wireless signal transmission charaαeristics. That is, the novel transmission area type scheme of the present invention is based on: (a) the terrain area classifications; e.g., the terrain of an area surrounding a target MS 140, (b) the configuration of base stations 122 in the radio coverage area 120, and (c) characterizations of the wireless signal transmission paths between a targεt MS 140 location and thε base stations 122.

In one embodimεnt of a method and system for dεtermining such (transmission) area type approximations, a partition (denoted hεreinafter as P 0 ) is imposed upon the radio coverage area 120 for partitioning for radio coveragε area into subareas, wherein each subarea is an estimate of an area having included MS 140 locations that are likely to have is at least a minimal amount of similarity in their wireless signaling characteristics. To obtain the partition P 0 of the radio coveragε area 120, thε following steps are performed:

(23.8.4.1) Partition the radio coveragε area 120 into subareas, wherein in each subarea is: (a) connected, (b) variations in the lengths of chords sectioning the subarea through the centroid of thε subarea are below a predetermined threshold, (c) the subarea has an area below a predetermined value, and (d) for most locations (e.g., within a first

or second deviation) within the subarea whosε wireless signaling charaαeristics have been verified, it is likely (e.g., within a fiπt or sεcond deviation ) that an MS 140 at one of thesε locations will deteα (forward transmission path) and/or will be deteαed (reverse transmission path) by a same colleαion of base stations 122. For example, in a CDMA context, a first such colleαion may be (for the forward transmission path) the aαive set of base stations 122, or, thε union of thε aαive and candidate sεts, or, thε union of thε aαive, candidate and/or remaining sets of base stations 122 deteαed by "most" MSs 140 in . Additionally (or alternatively), a second such colleαion may be the base stations 122 that are expeαed to deteα MSs 140 at locations within the subarea. Of couπe, the union or intersection of the first and second colleαions is also within the scope of the present invention for partitioning the radio coverage area 120 according to (d) above. It is worth noting that it is believed that base station 122 power levels will be substantially constant. Howevεr, εvεn if this is not thε casε, one or more colleαions for (d) above may be determined empirically and/or by computationally simulating the power output of each basε station 122 at a predetermined levεl. Moreover, it is also worth mentioning that this step is relatively straightforward to implement using the data stored in the location signature data base 1320 (i.e., the verified location signature clusters discussed in detail hereinbεlow). Denote the resulting partition here as P t . (23.8.42) Partition the radio coverage area 120 into subareas, wherein each subarea appears to have substantially homogeneous terrain charaαeristics. Note, this may be performed periodically substantially automatically by scanning radio coverage area images obtained from aerial or satellite imaging. For examplε, EarthWatch Inc. of Longmont, CO can provide geographic with 3 meter resolution from satellite imaging data. Denote the resulting partition here as P 2 . (23.8.43) Overlay both of the above partitions of the radio coverage area 120 to obtain new subareas that are intεπεαions of thε subareas from εach of thε above partitions. This new partition is P 0 (i.e., P 0 = P, intersεct P j ), and the subareas of it are denotεd as "P 0 subareas". Now assuming P 0 has bεεn obtained, the subareas of P 0 are provided with a first classification or categorization as follows: (23.8.4.4) Determine an area type categorization scheme for the subareas of P,. For example, a subarea, A, of P,, may be categorizεd or labeled according to the number of base stations 122 in each of the collections used in (23.8.4.1 )(d) above for determining subareas of P,. Thus, in one such categorization schemε, εach category may correspond to a single number x (such as 3), wherein for a subarea, A, of this category, there is a group of x (e.g., three) base stations 122 that are expected to be detected by a most target MSs 140 in the area A. Other embodiments are also possible, such as a categorization scheme wherein each category may correspond to a triple: of numbers such as (5, 2, 1), wherein for a subarea A of this category, there is a common group of 5 base stations 122 with two-way signal detection expected with most locations (e.g., within a first or second deviation) within A, there are 2 base stations that are expected to be detected by a target MS 140 in A but these base stations can not detect the target MS, and there is one base station 122 that is expeαed to be able to deteα a target MS in A but not be deteαed.

(23.8.4.5) Dεtεrmine an area type categorization scheme for the subareas of P 2 . Note that thε subareas of P 2 may bε categorized according to their similarities. In one embodiment, such categories may be somewhat similar to thε naive area types mentioned above (e.g., dense urban, urban, suburban, rural, mountain, etc.). However, it is also an aspeα of the present invention that more precise categorizations may be used, such as a category for all areas having between 20,000 and 30,000 square feet of vertical area changε per 11,000 square feεt of horizontal area and also having a high traffic volume (such a category likely corresponding to a "moderately densε urban" area type).

(23.8.4.6) Categorize subareas of P 0 with a categorization schemε dεnotεd the "P 0 categorization," wherein for εach P 0 subarea, A, of P 0 a "P„ area type" is determined for A according to the following substep(s): (a) Categorize A by the two categories from (23.8.4.4) and (23.8.5) with which it is identified. Thus, A is categorized (in a corresponding P 0 area type) both according to its terrain and the base station infrastructure configuration in the radio coverage area 120.

(23.8.4.7) For each P 0 subarea, A, of P 0 perform the following step(s):

(a) Determine a centroid, C(A), for A; (b) Determine an approximation to a wireless transmission path between C(A) and εach basε station 122 of a predetermined group of base stations expeαed to be in (one and/or two-way) signal communication with most target MS 140 locations in A. For example, one such approximation is a straight line between C(A) and each of thε basε stations 122 in the group. However, other such approximations are within the scope of the present invention, such as, a generally triangular shaped area as the transmission path, wherein a first vertex of this area is at the corresponding base station for thε transmission path, and thε sidεs of thε generally triangular shaped defining the first vertex have a smallest angle between them that allows A to be completely between thεse sides.

(c) For each base station 122, BS„ in the group entionεd in (b) above, create an empty list, BS,-list, and put on this list at least the P 0 area types for the "significant" P 0 subareas crossed by the transmission path betweεn C(A) and BS,. Note that "significant" P 0 subareas may be definεd as, for example, the P 0 subareas through which at least a minimal length of thε transmission path traverses. Alternatively, such "significant" P 0 subareas may be defined as those P α subareas that additionally are know or expeαed to generate substantial multipath.

(d) Assign as the transmission area typε for A as thε collection of BS r lists. Thus, any other P 0 subarea having the same (or substantially similar) colleαion of lists of P 0 area types will be viewed as having approximately thε samε radio transmission charaαeristics. Note that other transmission signal characteristics may be incorporated into the transmission area types. For example, thermal noise charaαeristics may be included by providing a third radio coveragε area 120 partition, P 3 , in addition to the partitions of P, and P 2 generated in (23.8.4.1) and (23.8.42) respeαively. Moreover, the time varying charaαeristics of (23.82) may be

incorporated in the transmission area type frame work by generating multiple veπions of the transmission area types such that the transmission area type for a given subarea of P 0 may change depending on the combination of time varying environmental charaαeristics to bε considered in the transmission area types. For instance, to account for seasonality, four veπions of the partitions Pi and P 2 may be generated, one for each of the seasons, and subsequently generate a (potentially) different partition P 0 for each season. Further, the type and/or charaαeristics of base station 122 antennas may also be included in an εmbodiment of the transmission area type.

Accordingly, in onε embodiment of the present invention, whenever the term "area type" is used hereinbelow, transmission area types as described her inabovε are intended.

Location Information Data Bases And Data

Location Data Basεs Introduction

It is an aspeα of the present invention that MS location processing performed by the location center 142 should become increasingly better at locating a target MS 140 both by (a) building an increasingly more detailed model of the signal charaαeristics of locations in the serv e area for the present invention, and also (b) by providing capabilities for the location center processing to adapt to environmental changes. One way these aspects of the present invention are realized is by providing one or more data base anagemεnt systems and data bases for:

(a) storing and associating wireless MS signal characteristics with known locations of MSs 140 used in providing the signal characteristics. Such stored associations may not only provide an increasingly better model of the signal charaαeristics of the geography of the service area, but also provide an increasingly better model of more changeable signal charaαeristic affecting environmental factors such as wεather, seasons, and/or traffic patterns;

(b) adaptive!/ updating the signal characteristic data stored so that it reflects changes in the environment of the service area such as, for example, a new high rise building or a new highway.

Referring again to Fig.5 of the colleαive representation of these data bases is the location information data bases 1232. Included among these data bases is a data base for providing training and/or calibration data to one or more trainable/calibratable FOMs 1224, as well as an archival data base for archiving historical MS location information related to the performance of the FOMs. These data bases will be discussed as necessary hereinbelow. However, a further brief introduction to the archival data base is provided here. Accordingly, the term, "location signature data base" is usεd hereinafter to denote the archival data base and/or data base management system depending on the context of thε discussion. The location signature data base (shown in, for example, Fig.6 and labeled 1320) is a repository for wireless signal charaαeristic data derived from wireless signal communications between an MS 140 and one or more base stations 1 2, wherein the corresponding location of the MS 140 is known and also stored in the location signature data base 1320. More particularly, the location signature data base 1320 associates εach such known MS location with the wireless signal charaαeristic data derived from wireless signal communications between the MS 140 and one or more base stations 122 at this MS location. Accordingly, it is an aspeα of thε present invention

to utilize such historical MS signal location data for enhancing the corrεαness and/or confidence of certain location hypotheses as will be described in detail in other sections below.

Data Representations for the Location Signature Data Base

There are four fundamental entity types (or objeα classes in an objeα oriented programming paradigm) utilized in the location signature data base 1320. Briefly, these data entities are described in the items (24.1) through (24.4) that follow:

(241) (verified) location signatures: Each such (verified) location signature describes the wireless signal characteristic measurements between a given base station (e.g., BS 122 or LBS 152) and an MS 140 at a (verified or known) location associated with the (verified) location signature. That is, a verified location signature corresponds to a location whose coordinates such as latitude-longitude coordinates are known, whilε simply a location signature may have a known or unknown location corresponding with it. Note that the term (verified) location signature is also denoted by the abbreviation, "(verified) loc sig" hereinbεlow;

(242) (verified) location signature clusters: Each such (verifiεd) location signature cluster includes a colleαion of (verified) location signatures corresponding to ali the location signatures between a target MS 140 at a (possibly verified) presumed substantially stationary location and each BS (e.g., 1 2 or 152) from which thε targεt MS 140 can deteα the BS's pilot channel gardless of thε classification of the BS in the target MS (i.e., for CDMA, regardless of whether a BS is in the MS's aαive, candidate or remaining basε station sets, as one skilled in the art will understand). Note that for simplicity here, it is presumed that each location signature cluster has a single fixed primary base station to which the target MS 140 synchronizes or obtains its timing;

(243) "composite location objects (or entities)": Each such entity is a more general entity than the verifiεd location signature cluster. An objeα of this type is a collection of (verified) location signatures that are associated with thε same MS 140 at substantially the same location at the same time and each such loc sig is associated with a different base station. Howevεr, there is no requirement that a loc sig from each BS 122 for which the MS 140 can deteα the BS's pilot channel is included in the "composite location objeα (or entity)"; and

(24.4) MS location estimation data that includes MS location estimates output by one or more MS location estimating fiπt order models 1224, such MS location estimate data is described in detail hereinbelow.

It is important to note that a loc sig is, in one embodiment, an instance of the data structure containing the signal characteristic measurements output by the signal filtering and normalizing subsystem also denoted as the signal processing subs/stem 1220 describing the signals between: (i) a specific base station 122 (BS) and (n) a mobile station 140 (MS), wherein the BS's location is known and the MS's location is assumed to be substantially constant (during a 2-5 second interval in one embodiment of the present invention), during communication with the MS 140 (or obtaining a single instance of loc sig data, although the MS location may or may not be known, further, for notational purposes, the BS 122 and the MS 140 for a loc sig hereinafter will be denoted the "BS associated with the loc sig", and the "MS associated with the loc sig" respectively. Moreover, the location of the MS 140 at the time the loc sig data is obtained will be denoted the "location associated with the loc sig" (this location possibly being unknown). In particular, for each (verified) loc sig includes the following:

(25.1) MS type: the make and model of the target MS 140 associated with a location signature instantiation; note that the type of MS 140 can also be derived from this entry; e.g., whether MS 140 is a handset MS, car-set MS, or an MS for location only. Notε as an aside, for at least CDMA, the type of MS 140 provides information as to the number of fingers that may be measured by the MS, as one skilled in the will appreciate.

(252) BS id: an identification of the base station 122 (or, location base station 152) communicating with the target MS;

(253) MS Joe: a representation of a geographic location (e.g., latitude-longitude) or area representing a verifrcd/known MS location whεre signal charaαeristics between the associated (location) base station and MS 140 were received. That is, if the "verified Jlag" attribute (discussed below) is TRUE, then this attribute includes an estimated location of the target MS. If verified Jlag is FALSE, then this attribute has a value indicating "location unknown".

Note "MS Joe" may include the following two subfields: an area within which thε targεt MS is presumed to be, and a point location (e.g., a latitudε and longitude pair) whεre the target MS is presumed to be (in onε embodiment this is the centroid of the area);

(25.4) verified Jlag: a flag for determining whether the loc sig has been verified; i.e., thε valuε here is TRUE iff a location of MS Joe has beεn verified, FALSE otherwise. Note, if this field is TRUE (i.e., the loc sig is verified), then the basε station identified by

BS id is the current primary base station for thε target MS;

(25.5) confidence: a value indicating how consistent this loc sig is with othεr loc sigs in thε location signature data basε 1320; the value for this entry is in the range [0, 1] with 0 corresponding to the lowest (i.e., no) confidence and I corresponding to the highest confidencε. That is, the confidence faαor is used for determining how consistent the loc sig is with other "similar" verified loc sigs in thε location signature data basε 1320, wherein the greater the confidence value, the better the consistency with other loc sigs in the data base. Note that similarity in this context may be operationaiized by at least designating a geographic proximity of a loc sig in which to determine if it is similar to other loc sigs in this designated geographic proximity and/or area type (e.g, transmission area typε as elsewhere herein). Thus, environmental characteristics may also be used in determining similarities such as: similar time of occurrence (e.g., of day, and/or of month), similar wεathεr (ε.g., snowing, raining, εtc). Notε, these latter characteristics are different from the notion of geographic proximity since proximity may be only a distance measurement about a location. Notε also that a loc sig having a confidence faαor value below a predetermined threshold may not be used in evaluating MS location hypotheses generated by the FOMs 1224.

(25.6) timestamp: the time and date the loc sig was received by the associated base station of BS id;

(25.7) signal topography charaαeristics: In one embodimεnt, the signal topography charaαeristics retained can be represented as charaαeristics of at least a two-dimensional generated surface. That is, such a surface is generated by the signal processing subsystem 1220 from signal charaαeristics accumulated over (a relatively short) time interval. For example, in the two-dimensional surface case, the dimensions for the generated surface may be, for example, signal strength and time delay. That is, the accumulations over a brief time interval of signal charaαeristic measurements between the BS 122 and the MS 140 (associated with the loc sig) may be classified according to the two signal charaαeristic dimensions (e.g., signal strength and corresponding time delay). That is, by sampling thε signal charaαeristiα and classifying the samples according to a mesh of discrete cells or bins, wherein each cell correspondi to a different range of signal strengths and time delays a tally of the number of samples falling in the range of each cell can be maintained. Accordingly, for each cell, its corresponding tally may be interpreted as height of the cell, so that when the heights of all cells are considered, an undulating or mountainous surface is provided. In particular, for a cell mesh of appropriate fineness, the "mountainous surface", is believed to, under most circumstances, provide a contour that is substantially

unique to the location of the target MS 140. Note that in one embodiment, thε signal samples are typically obtained throughout a predetermined signal sampling time interval of 2-5 seconds as is discussed elsewhere in this specification. In particular, the signal topography charaαeristics retained for a loc sig include certain topographical charaαeristiα of such a generated mountainous surface. For example, each loc sig may include: for each local maximum (of the loc sig surface) above a predetermined noise ceiling threshold, the (signal strength, time delay) coordinates of the cell of the local maximum and the corresponding height of thε local maximum. Additionally, certain gradients may also be included for charaαerizing the "steepness" of the surface mountains. Moreover, note that in some embodiments, a frequency may also be associated with each local maximum. Thus, thε data retained for each selected local maximum can include a quadruple of signal strength, time delay, height and frequency. Further note that the data types here may vary. However, for simplicity, in parts of thε description of loc sig processing related to the signal charaαeristiα here, it is assumed that the signal charaαeristic topography data struαure here is a vettoπ

(25.8) quality_obj: signal quality (or error) measurements, e.g., Eb/No values, as one skilled in the art will understand;

(25.9) πoise_ceiling: noise ceiling values used in the initial filtering of noise from the signal topography charaαeristiα as provided by the signal processing subsystem 1220;

(25.10) powerjevel: power levels of the base station (e.g 122 or 152) and MS 140 for the signal measurements; (25.11) timing error: an estimated (or maximum) timing error between the present (associated) BS (e.g., an infrastruαure base station 122 or a location base station 152) detecting the target MS 140 and the current primary BS 122 for the target MS 140. Note that if the BS 122 associated with the loc sig is the primary basε station, thεn the value here will be zero;

(25.12) cluster_ptπ a pointer to the location signature composite entity to which this loc sig belongs.

(25.13) repeatable: TRUE iff the loc sig is "repeatable" (as described hereinafter), FALSE otherwise. Note that each verified loc sig is designated as either "repeatable" or "random". A loc sig is repeatable if thε (vεrifiεd/known) location associated with the loc sig is such that signal charaαeristic measurements between the associated BS 122 and this MS can be either replaced at periodic time intervals, or updated substantially on dεmand by most recent signal characteristic measurements between the associated base station and the associated MS 140 (or a comparable MS) at the verified/known location. Repeatable loc sigs may be, for examplε, provided by stationary or fixed location MSs 140 (e.g., fixed location transceivers) distributed within certain areas of a geographical region serviced by the location center 142 for providing MS location estimates. That is, it is an aspeα of the present invention that each such stationary MS 140 can be contacted by the location center 142 (via the base stations of the wireless infrastruαure) at substantially any time for providing a new colleαion (Lε., cluster ) of wireless signal charaαeristics to be associated with the verified location for the transceiver. Alternatively, repeatable loc sigs may be obtained by, for example, obtaining location signal measurements manually from workεrs who regularly traverse a predetermined route through some portion of the radio coverage area; i.e, postal workers (as will be described in more detail hereinbelow).

A loc sig is random if the loc sig is not repeatable. Random loc sigs are obtained, for examplε, from verifying a previously unknown target MS location once the MS 140 has been located. Such verifications may be accomplished by, for example, a vehicle having one or more location vεrifying devices such as a GPS receiver and/or a manual location input capability becoming sufficiently close to the located targεt MS 140 so that the location of the vehicle may be associated with the wireless signal charaαeristics of the MS 140.

Vehicles having such location deteαion devices may include: (a) vehicles that travel to locations that are primarily for another purpose than to verify loc sigs, e.g., police cars, a bulancεs, fire trucks, rescue units, couriεr services and taxis; and/or (b) vehidεs whose primary purpose is to verify loc sigs; e.g., location signal calibration vehicles. Additionally, vehicles having both wireless transceivers and location verifying devices may provide the location center 142 with random loc sigs. Note, a repeatable loc sig may become a random loc sig if an MS 140 at the location associated with the loc sig becomes undetectable such as, for examplε, whεn the

MS 140 is removed from its verifiεd location and therefore the loc sig forthe location can not be readily updated.

Additionally, note that at least in one embodiment of the signal topography charaαeristics (25.7) above, such a first surface may be generated for the (forward) signals from the base station 122 to the targεt MS 140 and a second such surface may be generated for (or alternatively, the first surface may be enhancεd by increasing its dimensionality with) the signals from the MS 140 to the base station 122 (denoted the reverse signals).

Additionally, in some embodiments the location hypothesis may include an estimated error as a measurement of perceived accuracy in addition to or as a substitute for the confidence field discussed hereinabove. Moreover, location hypotheses may also include a text field for providing a reason for the values of one or more of the location hypothesis fields. For example, this text field may provide a reason as to why thε confidence value is low, or provide an indication that the wireless signal measurements used had a low signal to noise ratio. Loc sigs have the following funαions or objeα methods associated therewith: (26.1) A "normalization" method for normalizing loc sig data according to the associated MS 140 and/or BS 122 signal processing and generating charaαeristics. That is, the signal processing subsystem 1220, one embodimεnt bεing described in the PCT patent application titled, "Wireless Location Using A Plurality of Commercial Network Infrastruαures," by F. W. LeBlanc and the present iπventor(s), providεs (mεthods for loc sig objects) for "normalizing" each toe sig so that variations in signal charaαeristiα resulting from variations in (for example) MS signal processing and generating characteristi of different types of MS's may be reduced. In particular, since wireless network designers are typically designing networks for effεαivε use of hand set MS's 140 having a substantially common minimum set of performance charaαeristics, the normalization methods provided here transform the loc sig data so that it appears as though the loc sig was provided by a common hand set MS 140. However, other methods may also be provided to "normalize" a loc sig so that it may be compared with loc sigs obtained from othεr types of MS's as well. Note that such normalization techniques include, for example, interpolating and extrapolating according to power levels so that loc sigs may bε nor alizεd to thε same power level for, c.g., comparison purposes.

Normalization for the BS 122 associated with a loc sig is similar to the normalization for MS signal processing and generating charaαeristics. Just as with the MS normalization, the signal processing subsystem 1220 provides a loc sig method for "normalizing" loc sigs according to base station signal processing and generating characteristics.

Note, however, loc sigs stored in the location signature data base 1320 are NOT "normalized" according to either MS or BS signal processing and generating charaαeristics. That is, "raw" values of the wireless signal charaαeristics are stored with each loc sig in the location signature data base 1320.

(262) A εthod for determining the "area type" corresponding to the signal transmission charaαeristiα of the area(s) between thε associated

BS 122 and thε associated MS 140 location for thε loc sig. Notε, such an area type may be designated by, for examplε, the techniques for determining transmission area types as described hereinabove.

(263) Other methods are contemplated for determining additional environmental characteristics of the geographical area between the associated BS 122 and the associated MS 1 0 loαtion for the be sig; e.g., a noise value indicating the amount of noise likely in such an area.

Referring now to the composite location objects and verifiεd location signature clusters of (243) and (242) respectively, the following information is contained in these aggregation objects: (27.1.1) an identification of the BS 122 designated as the primary base station for communicating with the target MS 140;

(27.12) a reference to each loc sig in thε location signature data basε 1320 that is for the same MS loαtion at substantially the same time with the primary BS as identified in (27.1);

(27.13) an identification of each base station (e.g., 122 and 152) that an be detected by the MS 140 at the time the loαtion signal measurements are obtained. Note that in one embodiment, each composite ioαtion objeα includes a bit string having a corresponding bit for each base station, wherein a "I" for such a bit indiαtεs that the corresponding base station was identified by the MS, and a "0" indicates that the base station was not identified. In an alternative embodiment, additional loαtion signal mεasurements may also be included from other non-primary base stations. For example, the target MS 140 may communicate with other base stations than it's primary base station. However, since the timing for the MS 140 is typically derived from it's primary base station and since timing synchronization between basε stations is not exaα (e.g., in the casε of CDMA, timing variations may be plus or minus I microsecond)at least some of the loαtion signal measurements may be less reliable that the measurements from the primary base station, unless a forced hand-off technique is used to eliminate system timing errors among relevant base stations; (27.1.4) a completeness designation that indicates whether any loc sigs for the composite loαtion objeα have beεn removεd from (or invalidated in) the location signature data basε 1320.

Note, a verified composite location objeα is designated as "incomplete" if a loc sig initially referenced by the verifiεd composite loαtion objeα is deleted from the loαtion signature data base 1320 (ε.g., beαuse of a confidence that is too low). Further note that if ail loc sigs for a composite loαtion objeα are dεleted, then the composite objeα is also deleted from the loαtion signature data base 1320. Also notε that common fields between loc sigs referenced by the same composite loαtioπ objeα may be provided in the composite location objeα only (e.g., timesta p, etc.). Accordingly, a composite ioαtion objeα that is complete (i.e., not incomplete) is a verified loαtion signature cluster as described in

(242).

Location Center Architeαure

Overview of Location Center Functional Components

Fig.5 presents a high level diagram of the loαtioπ center 142 and the loαtion engine 139 in the context of the infrastruαure for the entire ioαtion system of thε present invention.

It is important to note that the architeαure for the loαtion center 142 and the loαtion engine 139 provided by the present invention is designed for extensibility and flexibility so that MS 140 loαtion accuracy and reliability may bε εnhaπced as further loαtion data become available and as enhanced MS loαtion techniques become available. In addressing thε design goals of extensibility and flexibility, thε high level architeαure for generating and processing MS loαtioπ estimates may be considered as divided into the following high levεl functional groups described hereinbelow.

Low Level Wireless Signal Processing Subsystem for Receiving and Conditioning Wireless Signal Measurements

A first funαional group of loαtion engine 139 modules is for performing signal processing and filtering of MS loαtion signal data received from a conventional wireless (e.g., CDMA) infrastruαure, as discussed in the steps (23.1) and (232) above. This group is denotεd the signal processing subsystem 1220 herein. One embodiment of such a subsystem is described in the PQ patent appliαtion titled, "Wireless Loαtion Using A Plurality of Commercial Network Infrastruαures," by F. W. LeBlanc and the present iπventor(s)..

Initial Location Estimators: First Ordεr Models

A second functional group of loαtion engine 139 modules is for generating various target MS 140 loαtion initial estimates, as described in step (233). Accordingly, the modules here use input provided by the signal processing subsystem 1220. This second funαional group includes one or more signal analysis modules or models, each hereinafter denoted as a first order model 1224 (FOM), for generating loαtion hypotheses fora target MS 140 to be loαted. Note that it is intεndεd that each such FOM 1224 use a different technique for determining a loαtion area estimate for the target MS 140. A brief description of some types of first order models is provided immediately below. Note that Fig.8 illustrates another, more detail view of the loαtion system for the present invention. In particular, this figure illustrates some of the FOMs 1224 contemplated by the present invention, and additionally illustrates the primary communiαtions with other modules of the loαtion system for the present invention. However, it is important to note that the present invention is not limited to the FOMs 1224 shown and discussed herein. That is, it is a primary aspeα of the present invention to easily incorporate FOMs using othεr signal processing and/or computational loαtion estimating techniques than those presented herein. Further, note that each FOM type may have a plurality of its models incorporated into an embodiment of the present invention.

For example, (as will be described in further detail below), one such typε of model or FOM 1224 (hereinafter models of this type are referred to as "distance models") may be based on a range or distance computation and/or on a base station signal reception angle determination between the target MS 1 0 from each of one or more base stations. Basically, such distance models 1224 determine a loαtion εstimate of the target MS 140 by determining a distance offset from each of one or more base stations 122, possibly in a particular direαion from each (some of) the base stations, so that an interseαion of each area locus defined by the base station offsets may provide an estimate of the loαtion of the target MS. Distance model FOMs 1224 may compute such offsets based on:

(a) signal timing measurements between the target mobile station 140 and one or more base stations 122; e.g.., timing measurements such as time difference of arrival (TDOA), or time of arrival (TOA). Note that both forward and reverse signal path timing measurements may be utilized;

(b) signal strength mεasurements (e.g., relative to power control settings of the MS 140 and/or one or more BS 122); and/or (c) signal anglε of arrival measurements, or ranges thereof, at one or more base stations 122 (such angles and/or angular ranges provided by, e.g., base station antenna seαors having angular ranges of 120° or 60°, or, so called "SMART antennas" with variable angular transmission ranges of 2° to 120°). Accordingly, a distance model may utilize trianguiation or trilateration to compute a loαtioπ hypothεsis having either an area loαtion or a point loαtion for an estimatε of the target MS 140. Additionally, in some embodiments loαtion hypothesis may include an estimated error Another typε of FOM 1224 is a statistically basεd first order model 1224, wherein a statistical technique, such as regression techniques (e.g., least squares, partial least squares, principle decomposition), or e.g., Bollenger Bands (e.g., for computing minimum and maximum base station offsets). In general, models of this type output location hypotheses determined by performing one or more statistical techniques or comparisons between the verified ioαtion signatures in ioαtion signature data base 1320, and the wireless signal measurements from a target MS. Models of this type are also referred to hereinafter as a "stochastic signal (first order) model" or a "stochastic FOM" or a "statistical model."

Still another type of FOM 1224 is an adaptive learning model, such as an artificial neural net or a genetic algorithm, wherein the FOM may be trained to recognize or associate εach of a plurality of locations with a corresponding set of signal charaαeristics for communiαtions between the target MS 140 (at the loαtion) and the base stations 122. Moreover, typically such a FOM is expeαed to accurately interpolate/extrapolate targεt MS 140 loαtion estimatεs from a set of signal charaαeristiα from an unknown target MS 1 0 loαtion. Models of this typε are also referred to hereinafter variously as "artificial nεural net modεls" or "nεural net models" or "trainable modεls" or "learning models." Note that a related type of FOM 1224 is based on pattern recognition. These FOMs an recognize patterns in the signal charaαeristiα of communiαtions betwεen the target MS 140 (at the loαtion) and the base stations 122 and thereby estimate a loαtioπ area of the target MS. However, such FOMs may not be trainable.

Yet another type of FOM 1224 an be based on a colleαion of dispersed low power, low cost fixed loαtion wireless transceivers (also denoted "loαtion base stations 152" hereinabove) that are provided for detecting a target MS 140 in areas where, e.g., there is insufficient base station 122 infrastruαure coverage for providing a desired level of MS 140 loαtion accuracy. For examplε, it may uneconomical to provide high traffic wireless voice coverage of a typical wireless base station 122 in a nature preserve or at a fair ground that is only populated a fεw days out of the year. However, if such low cost loαtion base stations 152 an be directed to activate and deactivate via the direαion of a FOM 1224 of the present type, then these location base stations n be used to both location a target MS 140 and also provide indications of where thε target MS is not. For example, if there are loαtion base stations 152 populating an area where the target MS 140 is presumed to be, then by aα ' ivating these loαtion base stations 152, evidence may be obtained as to whether or not the target MS is aαually in the area; e.g., if the target MS 140 is deteαed by a location base station 152, then a corresponding loαtion hypothesis having a loαtion estimate corresponding to the coverage area of the loαtion base station may have a very high confidence value. Alternatively, if the target MS 140 is not detected by a loαtion base station

152, then a corresponding loαtion hypothesis having a loαtion estimate corresponding to the coverage area of the loαtion base station may have a very low confidence value. Models of this type are referred to hereinafter as "loαtion base station models."

Yet another type of FOM 1224 n be based on input from a mobile base station 148, wherein loαtioπ hypotheses may be generated from target MS 140 loαtion data received from the mobile base station 148. Still other types of FOM 1224 n be based on various techniques for recognizing wireless signal measurement patterns and associating particular patterns with loαtioπs in the coverage area 120. For example, artificial nεural networks or othεr learning models n used as the basis for various FOMs.

Note that the FOM types mentioned here as well as other FOM types are discussεd in detail hereinbelow. Moreover, it is important to keep in mind that a novel aspeα of the present invention is the simultaneous use or aαivation of a potentially large number of such first order models 1224, wherein such FOMs are not limited to those described herein. Thus, the present invention provides a framework for incorporating MS loαtioπ estimators to be subsequently provided as new FOMs in a straightforward manner. For example, a FOM 1224 based on wireless signal time delay measurements from a distributed antenna system for wireless communication may bε incorporated into thε present invention for bating a target MS 140 in an enclosed area serviced by the distributed antenna system. Accordingly, by using such a distributed antenna FOM, the present invention may determine the floor of a multi-story building from which a targεt MS is transmitting. Thus, MSs 140 an bε bated in three dimensions using such a distributed antenna FOM. Additionally, FOMs for detecting certain registration changes within, for example, a public switched telephone network n also bε used for bating a target MS 140. For example, for some MSs 140 there may be an associated or dediαted device for each such MS that allows the MS to funαion as a cordless phone to a line based telephone network when thε device deteαs that the MS is within signaling range. In onε usε of such a dεvicε (also denoted herein as a "home base station"), the device registers with a home location register of the public switched telephone network when there is a status change such as from not deteαing the corresponding MS to detεαiπg thε MS, or visa versa, as one skilled in the an will understand. Accordingly, by providing a FOM that accesses the MS status in the home loαtion register, the location engine 139 an determine whether the MS is within signaling range of the home base station or not, and generate loαtion hypotheses accordingly. Moreover, other FOMs based on, for example, chaos theory and/or fractal theory are also within the scope of the present invention.

It is important to notε the folbwing aspects of the present invention relating to FOMs 1224: (28.1) Each such first ordεr modεl 1224 may bε relativεly εasily incorporatεd into and/or removed from the present invention. For example, assuming that the signal processing subsystem 1220 provides uniform input to the FOMs, and there is a uniform FOM output interface, it is believed that a large majority (if not substantially all) viable MS loαtioπ estimation strategies may be accommodated. Thus, it is straightforward to add or delete such FOMs 1224. (282) Each such first order model 1224 may be relatively simple and still provide significant MS 140 bating functionality and predictability. For example, much of what is believed to be common or generic MS loαt n processing has been coalescεd into, for εxample: a loαtion hypothesis evaluation subsystem, denoted the hypotheses evaluator 1228 and described immediately betow. Thus, the present invention is modular and extensible such that, for example, (and importantly) different first order models 1224 may be utilized depending on the signal transmission charaαeristics of the geographic region serviced by an e bodimεnt of the present invention. Thus, a simple configuration of the present invention may have a small number of FOMs 1224 for a simple wireless signal environment (e.g., flat terrain,

no urban αnyons and low population density). Alternatively, for complex wireless signal environments such as in cities like San Francisco, Tokyo or New York, a large number of FOMs 1224 may be simultaneously utilized for generating MS loαtbπ hypotheses.

An Iπtroduαioπ to an Evaluator for Location Hypotheses: Hypothesis Evaluator

A third funαional group of bαtion engine 139 modules evaluates location hypothesεs output by the first order modεls 1224 and thereby provides a "most likely" target MS loαtion estimatε. The modules for this funαional group are colleαirety denoted thε hypothεsis evaluator 1228.

Hypothesis Evaluator Introduction

A primary purpose of the hypothesis evaluator 1228 is to mitigate conflicts and ambiguities related to loαtion hypotheses output by thε first order models 1224 and thereby output a "most likely" estimate of an MS for which thεre is a request for it to bε bated. In providing this capability, there are various related embodiments of the hypothesis evaluator that are within thε scopε of thε presεnt invεntion. Sincε each loαtion hypothesis includεs both an MS loαtioπ area estimate and a corresponding confidence value indicating a perceived confidence or likelihood of the target MS being within the corresponding loαtion area estimate, there is a monoton relationship between MS loαtioπ area estimates and confidence values. That is, by increasing an MS loαtioπ area estimate, the corresponding confidence value may also be increased (in an extreme case, the loαtion area estimate could be the entire coveragε area 120 and thus the confidencε value may likely correspond to the highεst lεvel of certainty; i.e., + 1.0). Accordingly, given a target MS loαtion area estimate (of a loαtion hypothesis), an adjustment to its accuracy may be performed by adjusting the MS loαtion area estimatε and/or the corresponding confidence value. Thus, if the confidence value is, for examplε, excessively low then the area estimate may be increased as a technique for increasing the confidencε valuε. Alternatively, if the estimated area is excessively large, and there is flexibility in the corresponding confidence value, then the estimated area may be decreased and the confidence value also decreased. Thus, if at some point in the processing of a loαtion hypothesis, if the location hypothesis is judged to be more (less) accurate than initially determined, then (i) the confidence value of thε loαtbπ hypothεsis n be increased (decreased), and/or (ii) the MS loαtioπ area estimate an be decreased (increased).

In a first class of embodiments, the hypothesis evaluator 1228 evaluates loαtbn hypotheses and adjusts or modifies only their confidence values for MS loαtion area estimates and subsequently uses these MS loαtion estimatεs with the adjusted confidence values for determining a "most likely" MS bαtion estimate for outputting. Accordingly, the MS bαtion area estimates are not substantially modified. Alternatively, in a second class of embodimεnts for thε hypothesis evaluator 1228, MS bαtion area εstimates an bε adjustεd whilε confidεncε values remain substantially fixed. Of course, hybrids between the first two embodiments n also be provided. Note that the present embodiment provided herein adjusts both the areas and the confidence values.

More particularly, the hypothesis evaluator 1228 may perform any or most of the folbwing tasks: (30.1) it utilizes environmental information to improve and reconcile loαtion hypotheses supplied by the first order models 1224. A basic premise in this context is that the accuracy of the individual first order models may be affeαed by various environmental faαors such as, for example, the season of the year, the time of day, the weather conditions, the presence of buildings, base station failures, etc;

(302) it enhances the accuracy of an initial loαtion hypothesis generated by an FOM by using the initial loαtion hypothesis as, essentially, a query or index into the location signature data base 1320 for obtaining a corresponding enhanced location hypothesis, wherein the enhanced location hypothesis has both an adjustεd target MS location area estimate and an adjusted confidence based on past performance of the FOM in the loαtioπ service surrounding the target MS location estimatε of the initial location hypothesis;

(303) it determines how well the associated signal charaαeristiα used for bating a target MS compare with particular vεrified be sigs stored in the loαtbn signature data base 1320 (see the location signature data base seαion for further discussion regarding this aspeα of the invention). That is, for a given bαtion hypothesis, verified be sigs (which were previously obtained from one or more verified locations of one or more MS's) are retrieved for an area corresponding to the bαtion area estimate of the bαtion hypothesis, and the signal charaαeristiα of these verifiεd be sigs are compared with the signal charaαeristiα used to generate the bαtion hypothesis for determining their similarities and subsequently an adjustment to the confidence of the loαtion hypothesis (and/or the size of the loαtion area estimate);

(30.4) the hypothesis evaluator 1228 determines if (or how well) such bαtbn hypotheses are consistent with well known physiαl constraints such as the laws of physics. For example, if the difference between a previous (most likely) loαtion estimate of a target MS and a locatbn estimate by a current bαtbn hypothesis requires the MS to:

(al ) move at an unreasonably high rate of speεd (e.g., 200 mph), or

(bl ) move at an unreasonably high rate of speed for an area (e.g., 80 mph in a corn patch), or

(cl) make unreasonably sharp velocity changes (e.g., from 60 mph in onε direction to 60 mph in the opposite direαion in 4 sεc), then the confidence in the current Loαtioπ Hypothesis is likely to be reduced.

Alternatively, if for εxa plε, thε difference between a previous loαtion estimate of a target MS and a current loαtion hypothesis indicates that the MS is:

(a2) moving at an appropriate velocity for the area being traversed, or (b2) moving along an established path (e.g., a freeway), then the confidence in the current loαtbn hypothesis may be increased.

(30.5) the hypothesis evaluator 1228 determines consistencies and inconsistencies between bαtion hypotheses obtained from different first order models. For example, if two such loαtion hypotheses, for substantially the same ti estamp, have estimated loαtbn areas where the targεt MS is likely to bε and thεsε areas substantially overlap, then the confidence in both such loαtion hypotheses may be increased. Additionally, note that a velocity of an MS may bε determined (via dεltas of successive bαtion hypotheses from one or more first order models) even when thεre is low confidence in the location estimates for the MS, since such deltas may, in some cases, be more reliable than the aαual target MS loαtion estimates;

(30.6) the hypothesis evaluator 1228 determines new (more accurate) location hypotheses from other locatbn hypotheses. For example, this module may generate new hypotheses from currently aαive ones by decomposing a bcation hypothesis having a target MS

location estimatε intersecting two radically different area types. Additionally, this module may generate location hypothesεs indiαting areas of poor rεcεption; and (30.7) thε hypothesis evaluator 1228 determines and outputs a most likely loαtion hypothεsis for a targεt MS. Note that the hypothesis evaluator may aαomplish thε abovε tasks, (30.1 ) - (30.7), by empbying various data processing tools including, but not limited to, fuzzy mathe atiα, genetic algorithms, neural networks, expert systems and/or blackboard systems.

Notε that, as n be seen in Figs.6 and 7, the hypothesis evaluator 1228 includes the following four high lεvel modules for processing output loαtion hypotheses from the first order models 1224: a context adjuster 1326, a hypothesis analyzer 1332, an MS status repository 1338 and a most likelihood estimator 1334. These four modules are briefly described hereinbelow.

Context Adjuster Introduction. The context adjuster 1326 module εnhancεs both thε comparability and predictability of thε loαtbn hypotheses output by the first order models 1224. In particular, this module modifies loαtion hypotheses received from the FOMs 1224 so that thε resulting loαtioπ hypothesεs output by the context adjuster 1326 may be further processed uniformly and substantially without concern as to differences in accuracy between the first order models from which loαtion hypotheses originate. In providing this capability, the context adjuster 1326 may adjust or modify various fields of the input bαtion hypotheses. In particular, fields giving target MS 140 loαtbn estimates and/or confidence values for such estimates may be modified by the context adjuster 1326. Further, this module may determine those faαors that are perceived to impaα the perceived accuracy (ε.g., confidence) of the bαtbn hypotheses: (a) differently between FOMs, and/or (b) with substantial effect For instance, environmental charaαeristiα may be taken into account here, such as time of day, season, month, weather, geographiαl area αtεgorizations (e.g., dense urban, urban, suburban, rural, mountain, etc.), area subαtegorizatbns (e.g., heavily treed, hilly, high traffic area, etc). A detailed description of one embodiment of this module is provided in APPENDIX D hereinbelow. Note that, thε embodiment described herein is simplified for illustration purposes such that only the geographiαl area categorizations are utilized in adjusting (i.e., modifying) loαtion hypotheses. But, it is an important aspeα of the presεnt invention that various categorizations, such as those mentioned immediately above, may be usεd for adjusting the bαtion hypotheses. That is, categories such as, for example:

(a) urban, hilly, high traffic at 5pm, or

(b) rural, flat, heavy tree foliage density in summer may bε utilizεd as onε skilled in the art will understand from the descriptions contained hereinbelow.

Accordingly, the present invention is not limited to the faαors explicitly mentioned here. That is, it is an aspεα of the present invention to be extensible so that other environmental faαors of the coverage area 120 affecting the accuracy of loαtion hypotheses may also be incorporated into the context adjuster 1326.

It is also an important and novel aspeα of the context adjuster 1326 that the methods for adjusting bαtion hypotheses provided in this module may be generalized and thereby also utilized with multiple hypothesis computational architeαures related to various applications wherein a terrain, surface, volume or other "geometric" interpretation (e.g., a metric space of statistical samples) may be placed on a large body of stored application data for relating hypothesized data to verifiεd data. Moreover, it is important to note that varbus techniques for "visualizing data" may provide such a geometric interpretation. Thus, the methods herein may be utilized in applications such as:

(a) sonar, radar, x-ray or infrared identification of objects such as occurs in robotic navigation, medial image analysis, geobgiαl, and radar imaging. More generally, the novel computational paradigm of the context adjuster 1326 may be utilized in a number of applications wherein there is a large body of archived information providing verifiεd or aαual appliαtion process data related to the past performance of the application process.

It is worth mentioning that the computational paradigm used in the context adjuster 1326 is a hybrid of a hypothesis adjuster and a data base query mechanism. For example, the context adjuster 1326 usεs an input (loαtbn) hypothεsis both as an hypothesis and as a data base query or index into the loαtbn signature data base 1320 for construαing a related but more accurate loαtion hypothesis. Accordingly, substantial advantages are provided by this hybrid architeαure, such as the following two advantages.

As a first advantage, the context adjuster 1326 reduces the likelihood that a feedback mechanism is necessary to the initial hypothesis generators (i.e., FOMs 1224) for periodically adjusting default evaluations of the goodness or confidence in the hypotheses generated. That is, since εach hypothεsis gεnεratεd is, in effect, an index into a data base or archive of vεrified appliαtion (ε.g., loαtion) data, thε context adjuster 1326, in turn, generates new corresponding hypotheses based on the aαual or verified data retrieved from an archival data base. Thus, as a result, this architeαure tends to separate the computations of the initial hypothεsis generators (e.g., the FOMs 1224 in the present MS bαtion appliαtion) from any further processing and thereby provide a more modular, maintainable and flexible computational system.

As a second advantage, the context adjuster 1326 tends to create hypotheses that are more accurate than the hypotheses generated by the initial hypotheses generators. That is, for each hypothεsis, H, providεd by onε of the initial hypothesis generators, G (e.g., a FOM 1224), a corresponding enhancεd hypothesis, provided by the context adjuster 1326, is generated by mapping the past performance of G into the archived verifiεd appliαtion data (as will bε discussεd in detail hereinbelow). In particular, the context adjuster hypothesis generation is based on the archived verifiεd (or known) performance application data that is related to both G and H. For εxamplε, in the present wireless loαtioπ appliαtbn, if a FOM 1224, G, substantially consistently generates, in a particular geographical area, location hypotheses that are biased approximately 1000 feet north of the aαual verified MS 140 loαtion, then the context adjuster 1326 n generate corresponding hypotheses without this bias. Thus, the context adjuster 1326 tends to filter out inaccuracies in the initially generated hypotheses. Therefore in a multiple hypothesis architeαure where typiαlly the generated hypothesεs may be evaluated and/or combined for providing a "most likely" result, it is beliεved that a plurality of relatively simple (and possibly inexaα) initial hypothesis generators may be used in conjunαioπ with the hybrid computational paradigm represented by the context adjuster 1326 for providing enhanced hypotheses with substantially greater accuracy.

Additionally, note that this hybrid paradigm appliεs to othεr domains that are not geographically based. For instance, this hybrid paradigm applies to many prediαion and/or diagnostic applications for which:

(a) the application data and the appliαtion are dependent on a number of parameters whose values charaαerize the range of outputs for the appliαtion. That is, there is a set of parameters, p,, p j , p 3 , ... , p N from which a parameter space p. x p 2 x p 3 x ... x p N is derived whose points charaαerize the aαual and estimated (or prediαed) outcomes. As examples, in the MS location system, p, = latitude and j = longitude;

(b) there is historical data from whkh points for the parameter space, , x ft x p 3 x ~ x p N n be obtained, wherein this data relates to (or indicates) the performance of the appliαtion, and the points obtained from this data are relatively dense in the space (at least around the likely future aαual outcomes that the appliαtion is expected to prediα or diagnose). For example, such historical data may associate the prediαed outcomes of the application with corresponding aαual outcomes; (c) there is a metric or distance-like evaluation f unαbn that an be applied to thε parameter spacε for indicating relative closeness or accuracy of points in the parameter space, wherein the evaluation funαion provides a measurement of closeness that is related to the actual performance of the appliαtion.

Notε that there are numerous appliαtioπs for which the above criteria are applicable. For instance, computer aided control of chemical processing plants are likely to satisfy the above criteria. Certain robotic applications may also satisfy this criteria. In faα, it is believed that a wide range of signal processing applications satisfy this criteria.

MS Status Repository Introduction

The MS status repository 1338 is a run-time storage manager for storing bαtbn hypothesεs from previous aαivations of thε bαtion εnginε 139 (as wεll as for storing thε output "most likely" targεt MS loαtbn estimate(s)) so that a targεt MS 140 may be tracked using target MS loαtion hypothesεs from prevbus loαtioπ επginε 139 aαivations to determine, for examplε, a movement of the target MS 140 between evaluations of the target MS loαtion.

Location Hypothesis Analyzer Introduction.

The bαtion hypothesis analyzer 1332, adjusts confidence values of the loαtion hypotheses, according to: (a) heuristics and/or statistical methods related to how well the signal charaαeristics for the generated target MS bαtioπ hypothesis matches with previously obtained signal charaαeristiα for verified MS locations. (b) heuristics related to how consistent thε bαtion hypothesis is with physiαl laws, and/or highly probable reasonableness conditions relating to the bαtion of the target MS and its movement charaαeristics. for example, such heuristics may utilize knowledge of the geographical terrain in which the MS is estimated to be, and/or, for instance, the MS velocity, acceleration or extrapolation of an MS position, velocity, or acceleration, (c) generation of additional loαtbn hypotheses whose MS locations are consistent with, for examplε, previous estimated bαtions for the target MS.

As shown in Figs.6 and 7, the hypothesis analyzer 1332 module receives (potentially) modified bαtion hypothesεs from thε context adjuster 1326 and performs additional loαtion hypothesis processing that is likely to be common and generic in analyzing most loαtbn hypotheses. More specifically, the hypothesis analyzer 1332 may adjust eithεr or both of the target MS 140 estimated bαtion and/or the confidence of a loαtion hypothesis. In brief, the hypothesis analyzer 1332 recεives target MS 140 bcation hypothesεs from the context analyzer 1336, and depending on the time stamps of newly received loαtbn hypotheses and any previous (i.e., oldεr) target MS locatbn hypotheses that may still be currently available to the hypothesis analyzer 1332, the hypothesis analyzer may: (a) update some of the older hypotheses by an extrapolation module,

(b) utilize some of the old hypotheses as prevbus target MS estimates for usε in tracking the target MS 140, and/or

(c) if sufficiently old, then delete the older loαtion hypothesεs.

Note that both thε newly received bαtion hypothesεs and thε prevbus loαtion hypothesεs that are updated (i.e., extrapolated) and still remain in the hypothesis analyzer 1332 will be denotεd as "current bαtion hypotheses" or "currently aαive loαtion hypotheses". The modules within the location hypothesis analyzer 1332 usε varbus types of appliαtion specific knowledge likely substantially independent from the computations by the FOMs 1224 when providing the corresponding original loαtioπ hypotheses. That is, since it is aspeα of at least onε embodiment of the present inventbn that the FOMs 1224 bε relatively straightforward so that they may be εasily to modified as well as added or deleted, thε processing, for example, in thε hypothεsis analyzer 1332 (as with the context adjuster 1326) is intended to compensate, when necessary, for this straightforwardness by providing substantially generic MS bαtion processing αpabilities that an require a greater breadth of appliαtbn understanding related to wireless signal charaαeristiα of the coverage area 120.

Accordingly, the hypothesis analyzer 1332 may apply varbus heuristics that, for example, change the confidence in a loαtion hypothesis depending on how wεll the loαtion hypothesis (and/or a series of loαtion hypotheses from e.g., the same FOM 1224): (a) conforms with the laws of physics, (b) conforms with known charaαeristiα of location signature clusters in an area of the bcation hypothesis MS 140 estimatε, and (c) conforms with highly likely heuristic constraint knowledge, in particular, as illustrated best in Fig.7, the bαtion hypothesis analyzer 1332 may utilize at least one of a blackboard system and/or an expert system for applying various appliαtion specific heuristiα to the loαtion hypotheses output by the context adjuster 1326. More precisely, the loαtion hypothesis analyzer 1332 includes, in one embodiment, a blackboard manager for managing processes and data of a blackboard system. Additionally, note that in a second embodiment, where an expert system is utilized instead of a blackboard system, the location hypothεsis analyzer provides an expert system inference engine for the expert system. Note that additional detail on these aspens of the inventbn are provided hereinbelow. Additionally, note that the hypothesis analyzer 1332 may aαivate one or more extrapolation procedures to extrapolate target MS

140 loαtioπ hypotheses already processed. Thus, when one or more new bcation hypothesεs are suppliεd (by the context adjuster 1224) having a substantially more recent timestamp, the hypothesis analyzer may invoke an extrapolation module (i.e., loαtion extrapolator 1432, Fig.7) for adjusting any previous bcation hypotheses for the same target MS 140 that are still being used by the loαtbπ hypothesis analyzer so that all target MS bαtion hypotheses (for the same target MS) being concurrently analyzed are presumed to be for substantially the same time. Accordingly, such a prevbus bcation hypothesis that is, for example, 15 seconds older than a newfy supplied loαtbn hypothesis (from perhaps a different FOM 1224) may have both: (a) an MS bαtion estimate changed (e.g, to account for a movemεnt of the target MS), and (b) its confidence changed (e.g., to refleα a reduced confidence in the accuracy of the loαtbn hypothesis).

It is important to note that the architeαure of the present inventbn is such that the hypothesis analyzer 1332 has an extεnsiblε architecture. That is, additional loαtion hypothεsis analysis modules may bε εasily integrated into the hypothesis analyzer 1332 as further understanding regarding the behavior of wireless signals within the service area 120 becomes available. Conversely, some analysis modules may not be required in areas having relatively predictable signal patterns. Thus, in such service areas, such unnecessary modules may be εasily removed or not even developed..

Most Likelihood Estimator Introduction

The most likelihood estimator 1344 is a module for determining a "most likely" loαtion estimatε for a targεt MS being bated by the loation eπginε 139. The most likelihood estimator 1344 receives a colleαion of aαive or relevant bαtion hypotheses from the hypothesis analyzer 1332 and uses thesε bαtion hypotheses to determine one or more most likely estimates for the target MS 140. Still referring to the hypothεsis evaluator 1228, it is important to note that not all the above mentioned modulεs are required in all embodiments of the present inventbn. In particular, for some coveragε areas 120, thε hypothεsis analyzer 1332 may be unnecessary. Accordingly, in such an embodiment, the enhanced loαtion hypothesis output by the context adjuster 1326 are providεd directly to the most likelihood estimator 1344.

Control and Output Gating Modules

A fourth funαional group of loαtioπ εnginε 139 modules is thε control and output gating modulεs which includes the bαtbn center control subsystem 1350, and the output gateway 1356. The loαtion control subsystem 1350 provides the highest lεvεl of control and monitoring of the data processing performed by the bαtion center 142. In particular, this subsystem performs the folbwing f unαbns:

(a) controls and monitors bαtion estimating processing for each target MS 140. Note that this includes high lεvel exception or error handling functions;

(b) receives and routes external information as necessary. For instance, this subsystem may receive (via, e.g, thε public telephone switching network and Internet 1362) such environmental information as increased signal noise in a particular service are due to increase traffic, a change in weather conditions, a basε station 122 (or othεr infrastruαure provisioning), chaπgε in operation status (e.g., operational to inaαive);

(c) receives and directs loαtion processing requests from othεr loαtion centers 142 (via, e.g., the Internet);

(d) performs accounting and billing procedures;

(e) interacts with loαtion center operators by, for example, receiving operator commands and providing output indicative of processing resources being utilized and malfunctions;

(f) provides access to output requirements for varbus applications requesting bαtion estimates. For examplε, an Internet loαtioπ request from a trucking company in Los Angelεs to a bαtion cεnter 142 in Denver may only want to know if a particular truck or driver is within thε Denver area. Alternatively, a bαl medial rescue unit is likely to request a precise a bαtion estimate as possible. Note that in Fig.6 (a) - (d) abovε are, at least at a high levεl, performed by utilizing the operator interface 1374.

Referring now to the output gateway 1356, this module routes target MS 140 bαtion estimates to the appropriate loαtbn application(s). For instance, upon receiving a loαtion estimatε from the most likelihood estimator 1344, the output gateway 1356 may determine that thε loαtion estimate is for an automobile being tracked by the police and therefore must be provided must be provided according to the particular protocol.

System Tuning and Adaptation: The Adaptation Enginε

A fifth fuπαional group of loαtion engine 139 modules provides the ability to enhance the MS bating reliability and/or accuracy of the present invention by providing it with the capability to adapt to particular operating configurations, operating conditions and wireless signaling environments without performing intensive manual analysis of the performance of various embodimεnts of thε loαtion engine 139. That is, this f unαbnal group automatiαlly enhances the performance of the loαtion engine for bating MSs 140 within a particular coverage area 120 using at least one wireless network infrastruαure therein. More precisely, this funαional group allows the present invention to adapt by tuning or optimizing certain system parametεrs according to loαtioπ engine 1 9 bαtion estimate accuracy and reliability.

Thεre are a numbεr loαtion engine 139 system parameters whose values affeα bαtioπ estimation, and it is an aspeα of the present inventbn that the MS loαtion processing performed should become increasingly better at bating a target MS 140 not only through building an increasingly more detailed model of thε signal charaαeristiα of loαtion in the coverage area 120 such as discussed above regarding the loαtioπ signature data base 1320, but also by providing automated capabilities for the loαtion center processing to adapt by adjusting or "tuning" the values of such loαtion center system parameters.

Accordingly, the present invention includes a module, denoted herein as an "adaptation engine" 1382, that performs an optimization procedure on the loαtion center 142 system paramεters either periodically or concurrently with thε operation of the ioαtion center in estimating MS locations. That is, the adaptation enginε 1382 direαs the modifications of the system parameters so that the loαtbn engine 139 increases in overall accuracy in bating target MSs 140. In one embodiment, the adaptation engine 1382 includes an embodiment of a genetic algorithm as the mechanism for modifying the system paramεters. Genetic algorithms are basically search algorithms based on the mechanics of natural gεnεtiα. Thε genetic algorithm utilized herein is included in the form of pseudo code in APPENDIX B. Note that to apply this genεtic algorithm in thε context of the loαtion enginε 139 architeαure only a "coding scheme" and a "fitness funαion" are required as one skilled in thε art will appreciate. Moreover, it is also within the scopε of thε presεnt invention to use modified or different adaptive and/or tuning mechanisms. For further information regarding such adaptive mechanisms, the folbwing references are incorporated herein by reference: Goldberg, D. E. (1989). Genεtic algorithms for search, optimization, and machine learning. Reading, MA: Addison-Wesley Publishing Company; and Holland, j. H. (1975) Adaptation in natural and artificial systems. Ann Arbor, Ml: The University of Michigan Press.

Implementations of First Order Models Further descriptions of various first order models 1224 are provided in this sεction.

Distancε First Ordεr Models (TOA/TDOA)

As discussed in the Location Centεr Architecture Overview settion hεrεiπ above, distancε modεls determine a presumed direαion and/or distance that a target MS 140 is from one or more base stations 122. In some embodiments of distance models, the target MS bcation estimate(s) generated are obtained using radio signal analysis techniques that are quite general and therefore are not capable of taking into account the peculiarities of the topography of a particular radio coverage area. For example, substantially

ail radio signal analysis techniques using conventional procedures (or formulas) are based on "signal characteristic measurements" such as:

(a) signal timing mεasurements (e.g., TOA and TDOA),

(b) signal strength measurements, and/or (c) signal angle of arrival measurements.

Furthermore, such signal analysis techni ues are likely predicated on certain very general assumptions that can not fully account for signal attenuation and multipath duε to a particular radio coverage area topography.

Taking CDMA or TDMA base station network as an example, each base station (BS) 122 is required to εmit a constant signal-strength pilot channel pseudo-noisε (PN) sequence on the forward linkchaπnεl identifiεd uniquely in the network by a pilot sequeπcε offsεt and frequεncy assignment. It is possiblε to usε thε pilot channεls of thε aαivε, candidate, neighboring and remaining sets, maintained in the target MS, for obtaining signal charaαeristic measurements (e.g., TOA and/or TDOA measurements) between the target MS 140 and the base stations in one or more of these sets.

Based on such signal charaαeristic measurements and the speεd of signal propagation, signal charaαeristic ranges or range differences related to the loαtioπ of the targεt MS 140 π be calculated. Using TOA and/or TDOA ranges as exemplary, thesε ranges can then be input to either the radius-radius multilateration or the time difference multilateration algorithms aiong with the known positions of the corresponding base stations 122 to thereby obtain one or more location estimatεs of thε targεt MS 140. For εxa ple, if there are, four base stations 122 in the active sεt, the target MS 140 may cooperate with each of the base stations in this set to provide signal arrival time measurements. Accordingly, each of the resulting four sets of three of thesε basε stations 122 may bε usεd to providε an εsti ate of the target MS 140 as one skilled in the art will understand. Thus, potentially (assuming the measurements for each set of threε basε stations yiεids a fεasibiε bcation solution) there are four estimates for the location of the target MS 140. Further, since such measurements and BS 122 positions can be sent eithεr to the network or the target MS 140, locatbn can be determined in eithεr entity.

Sincε many of the signal measurements utilized by embodiments of distance models are subject to signal attenuation and multipath due to a particular area topography. Many of thε sεts of basε stations from which targεt MS bcation estimates are desired may result in either no location estimate, or an inaccurate bcation εstimate.

Accordingly, some embodimεnts of distancε FOMs may attempt to mitigate such ambiguity or inaccuracies by, e.g., identifying discrepancies (or consistencies) between arrival time measurements and other measuremεπts (ε.g., signal strength), these discrepancies (or consistencies) may be used to filter out at least those signal mεasurements and/or generated location estimates that appear less accurate. In particular, such identifying may filtering can be performed by, for example, an expert system residing in the distance FOM.

A second approach for mitigating such ambiguity or confliαing MS location estimates is particularly novel in that each of the target MS location estimatεs is used to generate a location hypothesis regardless of its apparent accuracy. Accordingly, thesε bcation hypotheses are input to an alternative embodiment of the context adjuster 1326 that is substantially (but not identical to) the context adjuster as described in detail in APPENDIX D so that each location hypothesis may be adjusted to enhancε its accuracy.

In contradistinction to the embodiment of the context adjuster 1326 of APPENDIX D, where each bcation hypothesis is adjusted according to past performance of its generating FOM 1224 in an area of the initial location estimate of the location hypothesis (the area, e.g., determined as a funαion of distance from this initial locatbn estimatε), this alternative embodiment adjusts each of the location hypotheses generated by a distance first order model according to a past performance of the model as applied to signal charaαeristic measurements from the same set of base stations 122 as were used in generating the bcation hypothesis. That is, instead of only using only an identification of the distance model (i.e., its FOMJD) to, for example, retriεvε archived location estimates generated by the model in an area of the location hypothesis' estimatε (whεn determining the model's past performance), the retrieval retrieves only the archived bcation estimatεs that are, in addition, derived from the signal characteristics measurεmεnt obtained from the same colleαion of base stations 122 as was used in generating the location hypothesis. Thus, the adjustment performed by this embodiment of the context adjuster 1326 adjusts according to the past performance of the distance model and the collection of base stations 122 used.

Coverage Area First Order Model

Radio coverage area of individual base stations 1 2 may be used to generate location εstimates of the target MS 140. Although a first order model 1224 based on this notion may be less accurate than other techniques, if a reasonably accurate RF coveragε area is known for each (or most) of the base stations 122, then such a FOM (denoted hereinafter as a "coverage area first order model" or simply "coverage area model") may be very reliable. To determine approximate maximum radio frequency (RF) location coverage areas, with respect to BSs 122, antennas and/or sector coveragε areas, for a given class (or classes) of (ε.g., CDMA or TDMA) mobiiε statbπ(s) 140, bcation covεrage should be based on an MS's ability to adequately detect the pilot channel, as opposed to adequate signal quality for purposes of carrying user-acceptable traffic in the voice channel. Note that more energy is necessary for traffic channel aαivity (typically on the order of at least -94 to -104 dBm recεived signal strength) to support voice, than energy needed to simply detect a pilot channel's presence for location purposes (typically a maximum weakest signal strength range of between -104 to -110 dBm), thus the "Location Coverage Area" will generally be a larger area than that of a typical "Voice Coveragε Area", although industry studiεs havε found some occurrences of "no-coverage" areas within a larger covered area. An example of a covεragε area including both a "dead zone", i.e., area of no coveragε, and a "notch" (of also no coverage) is shown in Fig. 15.

The approximate maximum RF coverage area for a given seαor of (more generally angular range about) a base station 122 may be represented as a set of points represεπting a polygonal area (potentially with, e.g., holes therein to account for dead zones and/or notchεs). Notε that if such polygonal RF covεragε area representations can be reliably determined and maintained over time (for one or more BS signal power level settings), then such representations can be used in providing a sεt theoretic or Venn diagram approach to estimating the location of a target MS 140. Coverage area first order models utilize such an approach.

One e bodimεπt, a covεragε area modεl utilizεs both the dεteαioπ and non-detεαioπ of basε stations 122 by thε targεt MS 140 (conversely, of the MS by one or more base stations 122) to define an area whεre thε targεt MS 140 may likεly bε. A relatively straightforward application of this technique is to:

(a) find all areas of iπtεrseαion for base station RF coverage area representations, wherein: (i) the corresponding base stations are on-line for communicating with MSs 140; (ii) the Rf coverage area representations are deemed reliable for the power levels of the on-line base stations; (iii) the on-line base stations having reliable coveragε area representations can be deteαed by thε targεt MS; and (iv) εach interseαion must include a predetermined number of the reliable RF coverage area representations (e.g., 2 or 3); and

(b) obtain new locatbn estimatεs by subtracting from εach of thε areas of interseαion any of the reliable RF coverage area representations for base stations 122 that can not be deteαεd by thε target MS.

Accordingly, the new areas may be used to generate bcation hypotheses.

Location Base Station First Order Model

In the location base station (LBS) model (FOM 1224), a database is accessεd which contains εlettrical, radio propagation and coverage area charaαeristics of each of the bcation base stations in the radio coveragε area. The LBS model is an aαive model, in that it can probε or εxcitε one or more particular LBSs 152 in an area for which thε targεt MS 140 to bε located is suspeαed to be placed. Accordingly, the LBS model may recεive as input a most likely targεt MS 140 location estimate previously output by the loαtion engiπε 139 of thε present invεntion, and use this loαtion εstimatε to determine which (if any) LBSs 152 to activate and/or deaαivate for enhancing a subsequent location estimatε of the target MS. Moreover, the feedback from the activated LBSs 152 may be provided to other FOMs 1224, as appropriate, as well as to the LBS model. However, it is an important aspeα of the LBS model that when it receives such feedback, it may output loαtioπ hypotheses having relatively small target MS 140 location area estimates about thε active LBSs 152 and each such location hypothesis also has a high confidencε value indicative of the target MS 140 positively being in the corresponding bcation area estimate (e.g., a confidence value of .9 to + 1), or having a high confidence value indicative of the target MS 140 not being in the corresponding bcation area εstimate (i.e., a confidence value of -0.9 to -I). Note that in some embodiments of the LBS model, thεsε εmbodimεnts may havε functionality similar to that of the coveragε area first order model describεd above. Further note that for LBSs within a neighborhood of the target MS wherein there is a reasonable chance that with movement of the target MS may be detected by thεsε LBSs, such LBSs may be requested to periodically aαivate. (Note, that it is not assumed that such LBSs have an on-line external power source; e.g., some may be solar powered). Moreover, in the case where an LBS 152 includes sufficient elεttronics to carry voicε communication with thε target MS 140 and is the primary BS for the target MS (or alternatively, in the aαive or candidate set), then the LBS model will not deaαivate this particular LBS during its procedure of aαivating and deactivating various LBSs 152.

Stochastic First Order Model

The stochastic first order models may use statistical prediαion techniques such as principle decomposition, partial least squares, partial least squares, or other regression techniques for predicting, for example, expeαed minimum and maximum distances of the target MS from one or more base stations 122, e.g, Bollεngεr Bands. Additionally, some embodiments may use Markov processes and Random Walks (prediαed incremental MS movement) for determining an expeαed area within which the target MS 140 is likely to be. That is, such a process measures the incremental time differences of each pilot as the MS moves for predicting a sizε of a location area estimate using past MS estimates such as the verifiεd location signatures in thε bcation signature data basε 1320.

Pattern Recognition and Adaptive First Order Models

It is a particularly important aspεα of thε presεnt invεntion to provide: (a) onε or more FOMs 1224 that generate target MS 140 location estimatεs by using pattern recognition or associativity techniques, and/or (b) one or more FOMs 1224 that are adaptivε or trainable so that such FOMs may generate increasingly more accurate target MS location estimatεs from additional training.

Statistically Basεd Pattern Recognition First Order Models

Regarding FOMs 1224 using pattern recognition or associativity techniques, thεre are many such techniques available. For examplε, there are statistically basεd systems such as "CART" (anacronym for Classification and Regression Trees) by ANGOSS Software International Limited of Toronto, Canada that may be usεd for automatiαlly for dεteαing or recognizing patterns in data that were uπprovidεd (and likely previously unknown). Accordingly, by imposing a relatively fine mesh or grid of cells of the radio coverage area, wherein each cell is entirely within a particular area type categorization such as the transmission area types (discussed in the section, "Coverage Area: Area Types And Their Determination" above), the verified location signature clusters within the cells of each area type may be analyzed for signal charaαeristic patterns. If such patterns are found, then they can be used to identify at least a likely area type in which a target MS is likely to be bated. That is, onε or more bcation hypotheses may be generated having target MS 140 location estimatεs that covεr an area having the likely area typε wherein the target MS 140 is located. Further note that such statistically based pattern recognition systems as "CART" iπcludε software code generators for generating expert system software embodiments for recognizing the patterns deteαed within a training set (ε.g., the verified location signature clusters).

Accordingly, although an embodimεnt of a FOM as dεscribεd here may not be excεεdiπgly accurate, it may be very reliable. Thus, since a fundamental aspect of the present invention is to use a plurality MS location techniques for generating location estimates and to analyze the generated estimates (likely after being adjusted) to deteα patterns of convergence or clustering among the estimates, even large MS location area estimates are useful. For example, it can be the case that four different and relatively large MS location estimatεs, εach having very high reliability, have an area of interseαion that is acceptably precise and inherits the very high reliability from each of the large MS location estimates from which the intersection area was derived.

A similar statistically based FOM 1224 to the one abovε may be provided wherein the radio coverage area is dεcomposed substantially as above, but addition to using the signal charaαeristics for deteαing useful signal patterns, the specific identifications of the base station 122 providing the signal charaαeristics may also be used. Thus, assuming there is a sufficient density of verified location signature clusters in some of the mesh cells so that thε statistical pattern recognizer can detect patterns in the signal characteristic measurements, an expert system may be genεrated that outputs a targεt MS 140 bcation εstimate that may provide both a reliable and accurate location estimatε of a targεt MS 140.

Adaptive/Trainable First Order Models

Adaptive ! rainable First Ordεr Modεls

Thε tεr adaptivε is used to describε a data procεssing component that can modify its data processing behavior in rεsponsε to certain inputs that are used to change how subsequent inputs are processεd by the component. Accordingly, a data processing component may be "explicitly adaptive" by modifying its behavior according to the input of explicit instructions or control data that is input for changing the component's subsequent behavior in ways that are predictable and expεcted. That is, the input encodes explicit instructions that are known by a usεr of the component. Alternatively, a data processing component may be "implicitly adaptive" in that its behavior is modified by other than instructions or control data whose meaning is known by a user of the component. For example, such implicitly adaptive data processors may learn by training on εxamplεs, by substantially uπguidεd exploration of a solution space, or other data driven adaptive strategies such as statistically generated decision treεs. Accordingly, it is an aspeα of the present invention to utilize not only explicitly adaptive MS bcation estimators within FOMs 1224, but also implicitly adaptive MS location estimators. In particular, artificial neural networks (also denoted neural nets and ANNs herein) are usεd in some embodiments as implicitly adaptive MS location estimators within FOMs. Thus, in the seαions below, neural net architeαures and their application to locating an MS is described.

Artificial Neural Networks For MS Location

Artificial neural networks may bε particularly usεful in developing one or more first order models 1224 for bating an MS 140, siπcε, for example, ANNs can be trained for classifying and/or associativeiy pattern matching of various RF signal measurements such as the bcation signatures. That is, by training one or more artificial neural nets using RF signal measurements from verified loαtions so that RF signal transmissions charaαeristics indicative of particular locations are associated with their corresponding loαtions, such trained artificial nεural nets can be used to provide additional target MS 140 location hypotheses. Moreover, it is an aspeα of the present invention that the training of such artificial neural net based FOMs (ANN FOMs) is provided without manual intervention as will be discussed hereinbelow.

Artificial Neural Networks That Converge on Near Optimal Solutions

It is as an aspect of the present invention to use an adaptive neural network architecture which has the ability to εxplore the parameter or matrix weight space corresponding to a ANN for determining new configurations of weights that reduce an objective or error function indicating the error in the output of the ANN over some aggregate set of input data ensembles. Accordingly, in one embodimεnt, a gεnetic algorithm is used to provide such an adaptation αpability. However, it is also within the scope of the present invention to use other adaptive techniques such as, for examplε, simulated aπnεaling, casαdε correlation with multistarts, gradient descent with multistarts, and trunαted Newton's method with multistarts, as one skilled in the art of neural network computing will understand.

Artificial Neural Networks as MS Location Estimators for First Ordεr Modεls Although there have bεεn substantial advances in artificial neural net computing in both hardware and software, it can be difficult to choose a particular ANN architeαure and appropriate training data for yielding high quality results. In choosing a ANN architeαure at least the following three criteria are chosen (either implicitly or explicitly):

(a) a learning paradigm: i.e., does the ANN require supervised training (i.e., being provided with indications of corrett and incorreα performance), unsupervised training, or a hybrid of both (sometimes referred to as reinforcement); (b) a colleαion of learning rules for indicating how to update the ANN;

(c) a learning algorithm for using the learning rules for adjusting the ANN weights. Furthermore, there are other implementation issues such as:

(d) how many layers a artificial neural net should have to effectively capture thε patterns embedded within thε training data. For examplε, thε benefits of using small ANN are many, less costly to implement, faster, and tend to generalize better because they avoid overfitting weights to training patterns. That is, in general, more unknown parameteπ

(weights) induce more local and global minima in thε error surface or space. However, the error surface of smaller nets can be very rugged and have few good solutions, making it difficult for a local minimization algorithm to find a good solution from a random starting point as one skilled in the art will understand;

(e) how many units or neurons to provide per layεr; (f) how largε should the training set be presented to provide effective generalization to non-training data

(g) what type of transfer funαions should be used.

However, the architecture of the present invention allows substantial flexibility in the implemεntation of ANN for FOMs 1224. In particular, thεrε is no nεεd to choose only one artificial neural net architeαure and/or implementation in that a plurality of ANNs may be accommodated by the architeαure of the location engine 139. Furthermore, it is important to keep in mind that it may not be necessary to train a ANN for a FOM as rigorously as is done in typical ANN applications since the accuracy and reliability in estimating the location of a targεt MS 140 with the present invention comes from synergistically utilizing a plurality of different MS location estimators, each of which may be undesirable in terms of accuracy and/or reliability in some areas, but when their estimates

are synεrgistically usεd as in the locatbn engine 139, accurate and reliable location estimates π be attained. Accordingly, one embodiment of the present invention may have a plurality of moderately well trained ANNs having different neural net architeαures such as: multilayer perceptions, adaptive resonance theory models, and radial basis funαion networks.

Additionally, many of the above mentioned ANN architeαure and implemεntation dεcisioπs can be addressed substantially automatically by various commercial artificial neural net devebpmεnt systems such as: "NEUROGENETIC OPTIMIZER" by BioComp Systems, wherein genεtic algorithms are used to optimize and configure ANNs, and artificial nεural network hardware and software produtts by Accurate Automation Corporation of Chattanooga, Tεnnεssee, such as "ACCURATE AUTOMATION NEURAL NETWORK TOOLS.

Artificial Neural Network Input and Output

It is worthwhile to discuss the data representatbns for the inputs and outputs of a ANN used for generating MS location estimates. Regarding ANN input representations, recall that the signal procεssing subsystem 1220 may provide various RF signal mεasurements as input to an ANN (such as the RF signal measurements derived from verified bcation signatures in thε bcation signature data basε 1320). For εxample, a representation of a histogram of the frequency of occurrence of CDMA fingers in a time delay vs. signal strength 2-dimensional domain may be provided as input to such an ANN. In particular, a 2-dimensional grid of signal strength versus time delay bins may be provided so that received signal measuremεnts are slotted into an appropriate bin of the grid. In one embodiment, such a grid is a six by six array of bins such as illustrated in the left portion of Fig. 1 . That is, each of the signal strength and timε dεlay axises are partitioned into six ranges so that both thε signal strength and the time delay of RF signal measurements can be slotted into an appropriate range, thus determining the bin.

Notε that RF signal measurement data (i.e., location signatures) slotted into a grid of bins provides a convenient mechanism for classifying RF measurements recεived over timε so that when each new RF measurement data is assigned to its bin, a counter for the bin can be incremented. Thus in one embodimεnt, the RF measurements for each bin can be represented piαorially as a histogram. In any case, once the RF measurements have bεen slotted into a grid, various filters may be applied for filtering outliers and noise prior to inputting bin values to an ANN. Further, varbus amounts of data from such a grid may be provided to an ANN. In one embodimεnt, thε tally from εach bin is providεd to an ANN. Thus, as many as 108 valuεs could bε input to the ANN (two values defining each bin, and a tally for the bin). However, other representations are also possible. For instance, by ordering the bin tallies linearly, only 36 neεd bε providεd as ANN input. Alternatively, only representations of bins having the highεst tallies may be provided as ANN input. Thus, for example, if the highest 10 bins and their tallies were provided as ANN input, then only 20 inputs neεd be provided (i.e., 10 input pairs, each having a single bin identifier and a corresponding tally). in addition, note that the signal processing subsystem 1220 may also obtain thε identifications of othεr basε statbns 122 (152) for which their pilot channels can be dεtεαεd by thε target MS 140 (i.e., the forward path), or for which the base stations can deteα a signal from the target MS (i.e., the revεrse path). Thus, in order to effectively utilize substantially all pertinent bcation RF signal measurements (i.e., from location signature data derived from communications between the target MS 140 and the base station

infrastruαure), a technique is provided wherein a plurality of ANNs may be aαivated using various portions of an εnse ble of loαtion signature data obtained. Howεvεr, before describing this tεchniquε, it is worthwhile to note that a naive strategy of providing input to a single ANN for locating target MSs throughout an area having a large number of base stations (e.g., 300) is likely to be undesirable. That is, given that εach base station (antenna sector) nearby the target MS is potentially able to provide the ANN with location signature data, thε ANN would have to be extremely large and therefore may require inordinate training and retraining. For examplε, sincε thεre may be approximately 30 to 60 ANN inputs per bcation signature, an ANN for an area having even twenty base stations 122 can require at least 600 input neurons, and potentially as many as 1,420 (i.e., 20 base stations with 70 inputs per base station and one input for every one of possibly 20 additional surrounding base stations in the radio coverage area 120 that might be able to deteα, or be detetted by, a target MS 140 in the area corresponding to the ANN). Accordingly, the technique described herein limits the numbεr of input neurons in each ANN construαed and generates a larger number of these smaller ANNs. That is, εach ANN is trainεd on loαtion signature data (or, more precisely, portions of locatbn signature clusters) in an area A ANN (hereinafter also denoted the "net area"), whεrein each input neuron receives a unique input from either:

(Al) location signature data (e.g., signal strength/time delay bin tallies) corresponding to transmissions between an MS 140 and a relativεly small number of basε stations 122 in thε area A ANN For instance, bcation signature data obtained from, for example, four base stations 122 (or antenna seαors) in thε area A NN ., Notε, εach bcation signature data cluster includes fields describing the wireless communication devicεs used; e.g., (i) the make and model of the target MS; (ii) the current and maximum transmission power; (iii) the MS battery power (instantaneous or current); (iv) the base station (seαor) current powεr level; (v) the base station make and model and revision level; (vi) the air interface type and revision level (of, e.g., CDMA, TDMA or AMPS).

(A2) a discrete input corresponding to each base station 122 (or antenna sector 130) in a larger area containing A ANN , wherein each such input hεr indicates whether the corresponding base station (seαor): (i) is on-line (i.e., capable of wireless communication with MSs) and at least its pilot channel signal is detected by the target MS 140, but the base station (sector) does not deteα the target MS; (ii) is on-line and the base station (seαor) detεαs a wireless transmission from the target MS, but the target MS does not deteα the base station (sector) pilot channel signal; (iii) is on-line and the base station (seαor) detects the target MS and the base station (seαor) is deteαed by the target MS; (iv) is on-line and the base station (seαor) does not deteα the target MS, the base station is not deteαed by the target MS; or (v) is off-line (i.e., incapable of wireless co muniαtion with one or more MSs). Notε that (i)-(v) are hereinafter refεrrεd to as the "deteαion states."

Thus, by generating an ANN for each of a plurality of net areas (potentially overlapping), a local environmental change in the wireless signal charaαeristics of one net area is unlikely to affeα more than a small number of adjacent or overlapping net areas. Accordingly, such local environmental changes can be reflected in that only the ANNs having net areas affected by the local change need to be retrained. Additionally, note that in cases where RF measurements from a target MS 140 are received across multiple net

areas, multiple ANNs may be aαivated, thus providing multiple MS location estimatεs. Further, multiple ANNs may be aαivated when a location signature cluster is recεived for a target MS 140 and location signature cluster includes location signature data corresponding to wireless transmissions between the MS and, e.g., more base statbns (antenna seαors) than needed for the colleαion B described in the previous sεαion. That is, if εach collection B identifies four base stations 122 (antenna sectors), and a received bcation signature cluster includes location signature data corresponding to five base statbns (antenna sectors), then there may be up to five ANNs aαivated to each generate a loαtion estimate.

Moreover, for each of the smaller ANNs, it is likely that the πumbεr of input nεurons is on thε order of 330; (i.e., 70 inputs per each of four bcation signatures ( i.e., 35 inputs for the forward wireless communications and 35 for the reverse wireless communications), plus 40 additional discrete inputs for an appropriate area surrounding m , plus 10 inputs related typε of MS, power levels, etc. However, it is important to note that the number of base stations (or antenna seαors 130) having corresponding location signature data to be provided to such an ANN may vary. Thus, in some subareas of the coverage area 120, location signature data from five or more base stations (antenna sectors) may be used, whereas in other subareas three (or less) may be used. , Regarding the output from ANNs used in genεrating MS bcation εsti atεs, thεre are also numerous options. In one embodiment, two values corresponding to the latitude and longitude of the target MS are estimated. Alternatively, by applying a mesh to the coverage area 120, such ANN output may be in the form of a row value and a column value of a particular mesh cell (and its corresponding area) whεre the target MS is estimated to be. Note that the cell sizes of the mesh need not be of a particular shape nor of uniform size. However, simple non-oblong shapes are desirable. Moreover, such cells should be sized so that each cell has an area approximately the size of the maximum degree of locatbn precision desired. Thus, assuming square mesh cells, 250 to 350 feεt pεr cell side in an urban/suburban area, and 500 to 700 feεt per cell side in a rural area may be desirable.

Artificial Neural Network Training

The following are steps provide one embodimεnt for training a location estimating ANN according to the presεnt invεntion.

(a) Determine a collection, C, of clusters of RF signal measurements (i.e., locatbn signatures) such that each cluster is for RF transmissions between an MS 140 and a common sεt, B, of basε stations 122 (or antenna seαors 130) such the measurements are as described in (Al) above. In one embodiment, the colleαion C is determined by interrogating the loαtion signature data base 1320 for verifiεd bcation signature clusters stored therein having such a common set B of base stations (antenna seαors). Alternatively in another εmbodiment, note that the colleαion C may be determined from (i) the existing engineering and planning data from service providers who are planning wireless cell sites, or (ii) service provider test data obtainεd using mobilε test sεts, accεss probes or other RF field measuring devices. Note that such a colleαion B of base stations (antenna seαors) should only be created when thε set C of verified location signature clusters is of a sufficient size so that it is expected that the ANN can be effectively trained.

(b) Determine a colleαion of base stations (or antenna seαors 130), B', from the common set B, wherein B' is small (e.g., four or five).

(c) Determine the area, A NN , to be associated with colleαion B' of basε stations (antenna seαors). In one embodiment, this area is seleαed by determining an area containing the set L of locations of all verified location signature clusters determinεd in step (a) having location signature data from each of the base stations (antenna seαors) in the colleαion B'. More prεcisεly, thε area, A ANN , may be determined by providing a covering of the locations of L, such as, e.g., by cells of a mesh of appropriately fine mesh size so that each cell is of a size not substantially larger than the maximum MS loαtion accuracy desired.

(d) Determine an additional colleαion, b, of base stations that have been previously dεtεαεd (and/or are likely to be deteαed) by at least one MS in the area A ANN .

(e) Train the ANN on input data related to: (i) signal charaαeristic measurements of signal transmissions between MSs 140 at verified locations in A AHN , and the base stations (antenna seαors) in the colleαion B', and (ii) discrete inputs of deteαion states from the base stations represented in the colleαion b. For examplε, train the ANN on input including: (i) data from verifiεd bcation signatures from each of the base stations (antenna seαors) in the colleαion B', wherein each location signature is part of a cluster in the colleαion C; (ii) a collection of discrete values corresponding to other base stations (antenna seαors) in the area b containing the area, A ANN .

Regarding (d) immediately above, it is important to note that it is believed that less accuracy is required in training a ANN used for generating a location hypothesis (in a FOM 1224) for the present invention than in most applications of ANNs (or other trainable/adaptive components) since, in most circumstances, when signal measurements are provided for locating a target MS 140, the bcation enginε 139 will aαivat a plurality location hypothεsis generating modules (corresponding to one or more FOMs 1224) for substantially simultaneously genεrating a plurality of diffεrent bcation εstimatεs (i.e., hypotheses). Thus, instead of training each A N so that it is expeαed to be, e.g., 92% or higher in accuracy, it is believεd that synergies with MS bcation estimates from other bcation hypothesis genεrating compoπεnts will effectively compensate for any reduced accuracy in such a ANN (or any other location hypothesis genεrating component). Accordingly, it is believed that training time for such ANNs may be reduced without substantially impacting the MS locating performance of the bcation engine 139.

Finding Near-Optimal Location Estimating Artificial Neural Networks

In one traditional artificial neural network training process, a relatively tedious set of trial and error steps may be performed for configuring an ANN so that training produces effective learning. In particular, an ANN may require configuring parameters related to, for example, input data scaling, test/training set classification, deteαiπg and removing unnecessary input variable seleαion. Howεver, thε present inventbn reduces this tedium. That is, the present invention uses mechanisms such as genεtic algorithms or other mechanisms for avoiding non-optimal but locally appealing (i.e., local minimum) solutions, and locating near-optimal solutions instead, in particular, such mechanism may be used to adjust the matrix of weights for the ANNs so that very good, near optimal ANN configurations may be found efficiently. Furthermore, since the signal processing system 1220 uses various

types of signal processing filters for filtering the RF measuremεnts received from transmissions between an MS 140 and one or more basε stations (antenna sectors 130), such mechanisms for finding near-optimal solutions may bε applied to selεctiπg appropriate filters as well. Accordingly, in oπε embodiment of the presεnt invention, such filters are paired with particular ANNs so that the location signature data suppliεd to εach ANN is filtered according to a corresponding "filter description" for the ANN, wherein the filter description specifies the filters to be used on location signature data prior to inputting this data to the ANN. In particular, the filter description can define a pipεlinε of filters having a sequence of filters wherein for each two consecutive filters, f ι and f 2 (f, preceding f 2 ), in a filter description, the output of f, flows as input to . Accordingly, by encoding such a filter description togεther with its corresponding ANN so that the encoding can be provided to a near optimal solution finding mechanism such as a genetic algorithm, it is believed that enhanced ANN locating performance can be obtained. That is, the combined genetic codes of the filter description and the ANN are manipulated by the genεtic algorithm in a sεarch for a satisfaαory solution (i.e., location εrror estimates within a desired range). This process and system provides a mechanism for optimizing not only the artificial neural network architeαure, but also identifying a near optimal match between the ANN and one or more signal processing filters. Accordingly, thε following filters may be used in a filter pipeline of a filter description: Sobel, median, mean, histogram normalization, input cropping, neighbor, Gaussion, Weiner filters. One embodiment for implementing the genetic evolving of filter description and ANN pairs is provided by thε following stεps that may automatiαlly performed without substantial manual effort:

1) Creatε an initial population of concatenated genotypes, or genetic representations for each pair of an artificial neural networks and corresponding filter description pair. Also, provide seed parameters which guide the scope and charaαerization of the artificial neural network architeαures, filter seleαion and paramεters, genetic parameters and system control parameters.

2) Preparε the input or training data, including, for examplε, any scaling and normalization of thε data.

3) Build phεπotypεs, or artificial neural network/filter description combinations based on the genotypes.

4) Train and test the artificial neural network/filter description phεnorypε combinations to determinε fitnεss; ε.g., determine an aggregate bcation error .measurement for each network/filter description pheπotype. 5) Compare the fitnesses and/or errors, and retain the best network/filter dεscription phεnotypes.

6) Selett the best networks/filter descriptions in the phenotype population (i.e., the combinations with small errors).

7) Repopulatε the population of genotypes for the artificial neural networks and the filter descriptions back to a predetermined size using the seleαεd phεnotypes.

8) Combine the artificial neural network genotypes and filter description genotypes thereby obtaining artificial neural network/filter combination genotypes.

9) Mate the combination genotypes by exchanging genes or charaαeristics/features of the network/ filter combinations.

10) If system parameter stopping criteria is not satisfied, return to step 3.

Note that artificial neural network genotypes may be formεd by selecting various types of artificial neural network architeαures suited to funαion approximation, such as fast back propagation, as well as charaαerizing several varieties of candidate transfer/aαivation funαions, such as Tanh, logistic, linear, sigmoid and radial basis. Furthermore, ANNs having complex inputs may be seleαed (as determined by a filter type in thε signal procεssing subsystem 1220) for thε genotypes. Examples of genetic parameters include: (a) maximum population size (typical default: 300), (b) generation limit (typical default: 50), (c) selection criteria, such as a certain percentage to survive (typical default: 0.5) or roulette wheel, (d) population refilling, such as random or cloning (default), (e) mating criteria, such as tail swapping (default) or two cut swapping, (f) rate for a choice of mutation criterion, such as random exchangε (dεfault: 0 5) or sεαion reversal, (g) population size of the coπαtenated artificial neural network/ filter combinations, (h) use of statistical seeding on the initial population to bias the random initialization toward stronger first order relating variables, and (i) neural node influence faαors, e.g., input nodes and hidden nodes. Such paramεters can be used as weighting faαors that influences the degree the system optimizes for accuracy versus network compactness. For εxamplε, an input nodε faαor greater than 0 provides a means to reward artificial neural networks construαed that use fewer input variables (nodes). A reasonable default value is 0.1 for both input and hidden nodε faαors.

Examples of neural net/filter description system control parameters include: (a) accuracy of modeling parameters, such as relativε accuracy, R-squared, mean squared error, root mean squared error or average absolute error (default), and (b) stopping criteria parameters, such as generations run, elapsed time, best accuracy found and population convergεncε.

Loαting a Mobilε Station Using Artificial Nεural Networks

When using an artificial neural network for estimating a location of an MS 140, it is important that thε artificial nεural network bε provided with as much accurate RF signal measurεmεnt data regarding signal transmissions between thε target MS 140 and the base station infrastruαure as possible. In particular, assuming ANN inputs as described hereinabove, it is desirable to obtain the deteαion states of as many surrounding base stations as possible. Thus, whenever the bcation engine 139 is requested to locate a target MS 140 (and in particular in an emergεncy context such as an emεrgency 911 call), the location center 140 automatically transmits a request to the wirelεss infrastructure to which the target MS is assigned for instructing the MS to raise its transmission powεr to full power for a short period of time (e.g., 100 milliseconds in a base station infrastruαure configuration an optimized for such requests to 2 seconds in a non-optimized configuration). Note that the request for a change in the transmission power ievεl of the target MS has a further advantagε for bcation requests such as emergency 911 that are initiated from the MS itself in that a first εnsεmblε of RF signal measurements can be provided to the bcation επgine 139 at the initial 911 calling power level and then a second ensemble of RF signal measurements can be provided at a second higher transmission power levεl. Thus, in onε εmbodimεnt of the present invention, an artificial neural network can be trained not only on the bcation signature cluster dεrived from either the initial wireless 911 transmissbns or the full power transmissions, but also on the differences between these two transmissions. In particular, the difference in the deteαion states of the discrete ANN inputs betwεen the two transmission power levels may provide useful additional information for more accurately estimating a bcation of a target MS.

It is important to note that when gathεring RF signal measurements from a wireless base station network for locating MSs, the network should not be overburdenεd with location related traffic. Accordingly, notε that nεtwork bcation data requests for data particularly useful for ANN based FOMs is generally confined to the requests to the base stations in the immediate area of a target MS 140 whose location is desired. For instance, both collections of basε stations B' and b discussεd in the context of training an ANN are also the same collections of base stations from which MS locatbn data would be requested. Thus, the wireless network MS loαtion data requests are data driven in that the base stations to queried for loαtioπ data (i.e., the collections B' and b) are determined by previous RF signal measurement characteristics recorded. Accordingly, the selection of the colleαions β * and b are adaptable to changes in the wireless enviroπmεntal charaαeristics of the coverage area 120.

LOCATION SIGNATURE DATA BASE Before proceeding with a description of other levels of the present inventbn as described in (24.1) through (24J) above, in this sεαion further detail is provided regarding the loαtion signature data base 1320. Note that a brief description of the loαtbπ signature data base was provided above indicating that this data base stores MS loαtion data from verifiεd and/or known loαtions (optionally with additional known environmental charaαeristic values) for use in enhancing current targεt MS loαtbn hypotheses and for comparing archived location data with loαtbn signal data obtained from a current target MS. However, the data base management system functionality incorporated into the loαtion signature data base 1320 is an important aspeα of the present invention, and is therefore described in this seαion. In particular, the data basε management functionality described herein addresses a number of difficulties encountered in maintaining a large archive of signal processing data such as MS signal location data. Some of these difficulties on be described as follows:

(a) in many signal processing contexts, in ordεr to εffεαivεly utilizε archived signal processing data for enhancing the performance of a related signal processing application, there must be an large amount of signal related data in the archive, and this data must be adequately maintained so that as archived signal data becomes less useful to the corresponding signal processing appliαtion (i.e., the data becomes "inapplicable") its impact on the appliαtion should be correspondingly reduced. Moreover, as archive data becomes substantially inapplicable, it should be filtered from the archive altogether. However, the sizε of the data in the archive makes it prohibitive for such a process to be performed manually, and there may be no simple or straightforward techπiquεs for automating such impaα reduαion or filtering processes for inapplicable signal data; (b) it is sometimes difficult to determine the archived data to use in comparing with newly obtained signal processing application data; and (c) it is sometimes difficult to determine a useful technique for comparing archived data with newly obtained signal procεssing appliαtion data. It is an aspeα of the present invention that thε data base management functionality of thε loαtion signature data base 1320 addresses each of the difficulties mentioned immediately above. For example, regarding (a), the loαtion signature data base is "self cleaning" in that by associating a confidence value with each loc sig in the data base and by reducing or increasing the confidences of archived verified be sigs according to how well their signal charaαeristic data compares with newly received verifiεd loαtion signature data, the location signature data base 1320 maintains a consistency with newly verified loc sigs.

The following data base management functional descriptions describe some of the more noteworthy funαions of the loαtion signature data base 1320. Note that there are varbus ways that these funαions may be embodiεd. So as to not overburden the reader here, the dεtails for one embodimεnt is providεd in APPENDIX C. Figs. 16a through 16c presεnt a table providing a brief description of the attributes of the bαtion signature data type stored in the bcation signature data basε 1320.

LOCATION SIGNATURE PROGRAM DESCRIPTIONS

Thε following program updates the random loc sigs in the location signature data base 1320. In one embodiment, this program is invoked primarily by the Signal Processing Subsystem.

Updatε Location signature Database Program

Update_Loc_Sig_DB(newJoc_obj, selection_criteria, loc_sig pop) /* This program updatεs loc sigs in thε loαtion signature data basε 1320. That is, this program updates, for example, at least the location information for verified random be sigs residing in this data base. The general strategy here is to use information (i.e., "new_loc_obj") received from a newly verified location (that may not yet be entered into the location signature data basε) to assist in determining if the previously stored random verified loc sigs are still reasonably valid to use for: (29.1) estimating a bcation fora given colleαion (i.e., "bag") of wireless (e.g., CDMA) location related signal charaαeristics received from an MS, (192) training (for example) adaptive loαtion estimators (and location hypothesizing models), and (293) comparing with wireless signal characteristics used in generating an MS location hypothesis by one of the MS bcation hypothesizing models (denoted first Order Models, or, FOMs). More precisely, sincε it is assumεd that it is more likely that the newεst location information obtained is more indicative of the wireless (CDMA) signal charaαeristics within some area surrounding a newly verified loαtion than thε vεrifiεd loc sigs (bαtion signatures) previously entered into the Loαtion Signature data base, such verified loc sigs are compared for signal characteristic consistency with the newly verified location information (object) input here for determining whether some of these "older" data base verifiεd loc sigs still appropriately characterize their associated locatbn. In particular, comparisons are itεrativεly adε hεre betweεn εach (targεt) loc sig "near" "new_bc_obj" and a population of be sigs in thε locatbn signature data base 1320 (such population typically including the loc sig for "new_loc_obj) for.

(29.4) adjusting a confidence faαor of the targεt loc sig. Note that εach such confidεncε faαor is in the range [0, . j with 0 being the lowest and I being the highest. Further note that a confidence factor here can be raisεd as wεll as lowered depεnding on how well the target loc sig matches or is consistent with the population of loc sigs to which it is compared. Thus, the confidence in any particular verified loc sig, LS, can fluttuate with

succεssivε invocations of this program if thε input to the successive invocations are with location information geographically "near" LS. (29.5) remove oldεr vεrified loc sigs from use whose confideneε value is below a predetermined threshold. Note, it is intendεd that such predetermined thresholds be substantially automatically adjustable by periodically testing various confidencε faαor thresholds in a spεcifiεd geographic area to determine how wεll the eligible data base e sigs (for different thresholds) perform in agreeing with a number of verified be sigs in a "loc sig test-bed", wherein the test bed may bε composed of, for examplε, repeatable loc sigs and recent random verifiεd loc sigs.

Note that this program may be invoked with a (verified Anown) random and/or repεatablε loc sig as input.

Furthermore, the target loc sigs to be updated may be selεctεd from a particular group of loc sigs such as the random loc sigs or the repeatable loc sigs, such selεαion bεing determined according to the input paramεtεr, "selεαion criteria" while the comparison population may be designated with the input parameter, "bc_sig_pop". For example, to update confidence faαors of certain random be sigs near "new_bc_obj", "selεαion_criteria" may be given a value indicating, "USEJANDOM OC IGS", and "bc_sig_pop" may be given a value indiαting, "USE_REPEATABLE_L0C_S1GS".

Thus, if in a given geographic area, the repεatablε loc sigs (from, e.g., stationary transceivers) in thε area havε rεcεntly bεen updated, then by successively providing "new_bc_obj" with a loc sig for εach of thεsε rεpεatable loc sigs, the stored random e sigs can have their confidences adjusted.

Alternatively, in onε embodiment of thε presεnt invεntion, thε presεnt funαion may bε usεd for determining when it is desirable to update repεatablε loc sigs in a particular area (instead of automatically and periodically updating such repεatablε loc sigs). For example, by adjusting the confidencε faαors on repεatable loc sigs here provides a mεthod fordεtermiπing when repeatable be sigs for a given area should bε updated. That is, for εxample, when the area's avεragε confidεnce faαor for the repεatable e sigs drops below a given (potentially high) threshold, then the MSs that provide the repeatable loc sigs can be requested to respond with new ioc sigs for updating the data base. Note, however, that the approach presented in this funαioπ assumes that the repeatable bcation information in the location signature data base

1320 is maintained with high confidencε by, for example, frequent data base updating. Thus, the random bcation signature data base verified location information may be effectively compared against the repeatable loc sigs in an area. INPUT: new_bc_obj: a data representation at least including a loc sig for an associated location about which Location Signature loc sigs are to have their confidences updated. selεαion_critεria: a data representation designating the be sigs to be seleαed to have their confidences updated (may be defaulted). The folbwing groups of be sigs may be selεctεd: "USE_RAND0M_L0C_SIGS" (this is thε default), USEJEPEATABLE OC IGS", "USE_ALL_LOC_SIGS". Note that each of these selections has values for the following values associated with it (although the values may be defaulted):

(a) a confidence reduαion faαor for reducing loc sig confidences,

(b) a big error threshold for determining the errors above which are considered too big to ignore,

(c) a confidence increase faαor for increasing loc sig confidences,

(d) a small error threshold for determining the errors below which are considered too small (i.e., good) to ignore.

(e) a recent time for specifying a time period for indicating the be sigs here considered to be "recent". loc sig pop: a data representation of the type of loc sig population to which thε loc sigs to bε updated are compared. The folbwing values may be provided: (a) "USE ALL LOC SIGS IN DB", (b) "USE ONLY REPEATABLE LOC SIGS" (this is the default),

(c) "USE ONLY LOC SIGS WITH SIMILAR TIME OF DAY" However, environmental charaαeristics such as: weather, traffic, season are also contemplated.

Confidence Aging Program

Thε following program rεducεs thε confidεnce of verifiεd loc sigs in the location signature data base 1320 that are likely to bε no longεr accurate (i.e., in agreement with comparable loc sigs in the data base). If the confidence is reduced low enough, thεn such loc sigs are removed from the data base. Further, if for a bcation signature data basε verified bcation composite εntity (i.ε., a coliεαion of loc sigs for thε samε cation and timε), this εntity no longεr references any valid loc sigs, then it is also rεmovεd from thε data base. Note that this program is invoked by "Update_Loc_Sig_DB". reduce_bad_DB Joc_sigs(loc_sig_bag , error_rec_set, big_error_threshold confidence_reduction_factor, recent_time)

Inputs: bc_sig_bag: A collection or "bag" of loc sigs to be tested for determining if their confidences should be lowered and/or any of these loc sigs removed. error_rec_sεt: A sεt of εrror records (objeαs), denotεd "εrror_recs", providing information as to how much each loc sig in "bc_sig_bag" disagrees with comparable loc sigs in the data base. That is, there is a

"error rec" here for εach be sig in "loc sig bag". big_error_threshold: The error threshold above which the errors are considered too big to ignore. confιdence_reduαion_faαor: Thε faαor by which to reduce the confidence of loc sigs. recent_time: Time period beyond which loc sigs are no longer considered recent. Note that "recent" loc sigs (i.e., more recent than "recent ime") are not subjeα to the confidence reduαion and filtering of this actions of this function.

Confidence Enhancement Program

The following program increases the confidence of verifiεd Location Signature loc sigs that are (seemingly) of higher accuracy (i.e., in agreεment with comparable loc sigs in the location signature data base 1320). Note that this program is invoked by "Update_Loc_Sig_DB". increase_confidence_of_good_DB_loc_sigs(nearby_loc_sig_bag, error_rec_set, small_error_threshold, confidence_increase_factor, recerιt_time); Inputs: loc_sig_bag: A colleαion or "bag" of to be tested for detεrmining if their confidences should be increasεd. error_rec_sεt: A sεt of εrror records (objeαs), denoted "error_recs", providing information as to how much each loc sig in "bc_sig_bag" disagrees with comparable loc sigs in the bcation signature data base. That is, there is a "εrror rec" hεre for εach loc sig in "loc sig bag". small_error threshold: The error threshold below which the errors are considered too small to ignore, confidence increase aαor: The factor by which to increase the confidencε of loc sigs. recent_time: Timε pεriod bεyond which loc sigs are no longer considered recent. Note that "recent" be sigs (i.e., more recent than "recεnt timε") are not subjeα to thε confidencε reduαion and filtering of this aαbns of this funαion.

Location Hypotheses Consistency Program

The following program deter inεs thε consistency of location hypothesεs with verified location information in thε location signature data base 1320. Note that in the one embodiment of the presεnt invention, this program is invoked primarily by a module denotεd thε historical locatbn reasoner 1424 described seαioπs hereinbelow. Moreover, the detailed description for this program is providεd with the description of the historical bcation reasoner hereinbelow for completeness.

DB Loc Sig Error Fit( ypothesis, measuredJoc_sig_bag, search_criteria)

/* This function determines how well the colleαion of loc sigs in "measured_!oc_sig_bag" fit with the loc sigs in the bcation signature data base 1320 wherein thε data basε loc sigs must satisfy thε criteria of thε input parameter "sεarch_criteria" and are relativεly close to the MS loαtion estimate of the locatbn hypothesis, "hypothesis".

Input: hypothesis: MS bcation hypothesis; measuredJoc_sig_bag: A collection of mεasurεd location signatures ("be sigs" for short) obtainεd from the MS

(the data struαure here is an aggregation such as an array or list). Note, it is assumed that there is at most one be sig here per Base Station in this colleαion. Additionally, note that the input data struαure here may be a loαtion signature cluster such as the "loc_sig_cluster" field of a location hypothesis (cf. Fig.9). Note

that variations in input data structures may be accepted here by utilization of flag or tag bits as one skilled in the art will appreciate; search_critεria: Thε criteria for searching the verified bcation signature data base for various categories of loc sigs. The only limitation on the types of categories that may be provided here is that, to be useful, each category should have meaningful number of loc sigs in the location signature data base. Thε following catεgoriεs includεd hεrε are illustrative, but others are contemplated:

(a) "USE ALL LOC SIGS IN DB" (thε default),

(b) "USE ONLY REPEATABLE LOC SIGS",

(c) "USE ONLY LOC SIGS WITH SIMILAR TIME OF DAY". Further categoriεs of loc sigs close to the MS estimate of "hypothesis" contemplated are: all be sigs for the samε sεason and same time of day, all loc sigs during a specific weather condition (e.g., snowing) and at the same time of day, as well as other limitations for other environmεntal conditions such as traffic patterns. Note, if this parameter is NIL, then (a) is assumed. Returns: An error objeα (data type: "error_object") having: (a) an "error" field with a measurement of the error in the fit of the bcation signatures from the MS with verifiεd bcation signatures in the location signature data base 1320; and (b) a "confidence" field with a value indicating the perceived confideπcε that is to be given to the "error" value. */

Location Signature Comparison Program

The following program compares: (al) loc sigs that are containεd in (or dεrivεd from) the loc sigs in "target_bc_sig_bag" with (bl) loc sigs computed from verified loc sigs in the bcation signature data basε 1320. That is, each loc sig from (al) is compared with a corresponding e sig from (b) to obtain a measurement of the discrepancy between the two loc sigs. In particular, assuming each of the loc sigs for "target Joc_sig_bag" correspond to the same target MS bcation, wherein this location is "targetjoc", this program determines how well the loc sigs in "target bc_sig_bag" fit with a computed or estimated loc sig for the location, "targetjoc" that is derived from the verifiεd loc sigs in thε bcation signature data base 1320. Thus, this program may be used: (a2) for determining how well thε loc sigs in the bcation signature cluster for a target MS

("target loc_sig_bag") compares with loc sigs derived from verifiεd location signatures in thε location signature data base, and (b2) for determining how consistent a given colleαion of be sigs ("targetJoc_sig_bag") from the bcation signature data base is with other loc sigs in the bcation signature data base. Notε that in (b2) each of the one or more loc sigs in "target Joc_sig_bag" have an error computed here that can be used in determining if the be sig is becoming inapplicable for predicting target MS locations. Determine_Location_Signature_Fit_Errors(target_loc, target_loc_sig_bag, search_area, search_criteria, output_criteria) /* Input: targetjoc: An MS location or a location hypothesis for an MS. Note, this can be any of the folbwing:

(a) An MS bcation hypothesis, in which αse, if thε hypothesis is inaccurate, then the loc sigs in "target Joc_sig_bag" are the location signature cluster from which this location hypothεsis was derived. Note that if this location is inaccurate, then

"target Joc_sig_bag" is unlikely to be similar to the comparable loc sigs derived from the loc sigs of thε locatbn signature data base close "targetjoc"; or

(b) A previously verifiεd MS cation, in which casε, thε loc sigs of "targεt loc sig bag" were the loc sigs mεasurements at the time they were vεrified. However, thesε loc sigs may or may not be accurate now. target loc sig bag: Measured bcation signatures ("loc sigs" for short) obtainεd from the MS (the data struαure here, bag, is an aggregation such as array or list). It is assumed that there is at least one be sig in the bag. Further, it is assumed that there is at most onε loc sig per Base Station; search area: The representation of the geographic area surrounding "targetjoc". This parameter is used for searching the Locatbn Signature data base for verifiεd loc sigs that correspond geographically to the location of an MS in "search_area; search_critεria: Thε criteria used in searching the bcation signature data base. Thε criteria may include the following:

(a) "USE ALL LOC SIGS IN DB",

(b) "USE ONLY REPEATABLE LOC SIGS",

(c) "USE ONLY LOC SIGS WITH SIMILAR TIME OF DAY". Howevεr, εnvironmεntal charaαeristics such as: weathεr, traffic, sεason are also contemplated. output_criteria: The criteria used in determining the error records to output in "error rec_bag". The criteria hεr may includε onε of:

(a) "OUTPUT ALL POSSIBLE ERROR ECS";

(b) "OUTPUT ERROR_RECS fOR INPUT LOC SIGS ONLY". Rεturns: error_rec_bag: A bag of error records or objeαs providing an indication of the similarity between each be sig in "target_loc_sig_bag" and an estimated loc sig computed for "targetjoc" from stored loc sigs in a surrounding area of "targetjoc". Thus, εach εrror rεcord/objeα in "error_rec_bag" provides a measuremεnt of how well a loc sig (i.e., wireless signal charaαeristics) in "targεt Joc_sig_bag" (for an associated BS and the MS at "targetjoc") correlates with an estimated loc sig between this BS and MS. Note that the estimated loc sigs are determined using verifiεd bcation signatures in thε Location Signature data basε. Note, each error record in "error_rec_bag" includes: (a) a BS ID indicating the base station to which the error record corresponds; and (b) a error measurement (> = 0), and (c) a confidencε valuε (in [0, 1]) indicating thε confidence to be placed in the error measurement.

Computed Location Signature Program

The following program receives a colleαion of be sigs and computes a loc sig that is representative of thε loc sigs in thε coliεαion. That is, given a colleαion of loc sigs, "loc sig bag", wherein each loc sig is associated with the same predetermined Base

Station, this program uses these loc sigs to compute a representative or estimated loc sig associated with the prεdεtermined Base Station and associated with a predεtεrmiπed MS bcation, "locjor_estimatbn". Thus, if the loc sigs in "lo sig bag" are from the verifiεd be sigs of the location signature data base such that each of these loc sigs also has its associated MS bcation relatively cbse to "loc Jor_estimatbn", thεπ this program can compute and return a reasonable approximation of what a measured loc sig between an MS at "loc Jor_estimation" and the predetermined Base Station ought to be. This program is invoked by "Dεterminε_Location_Signature_Fit_Errors". estimateJoc_sig_from_DB(loc_for_estimation, loc_sig_bag)

Geographic Area Representation Program

The following program deter inεs and rεturns a representation of a geographic area about a bcation, "loc", wherein: (a) the geographic area has associated MS locations for an acceptablε numbεr (i.e., at least a determined minimal number) of verifiεd loc sigs from the location signature data base, and (b) the geographical area is not too big. However, if there are not enough loc sigs in even a largεst accεptablε sεarch area about "loc", then this largest search area is returned. "DB_Loc_Sig_Error_Fit" get_area_to_search(loc)

Location signature Comparison Program

This program compares two location signatures, "target_loc_sig" and "comparison_bc_sig", both associated with the same predεtεrminεd Base Station and thε samε predetermined MS bcation (or hypothesized bcation). This program determinεs a measure of the difference or error bεtwεen the two loc sigs relative to the variability of the verifiεd location signatures in a collection of loc sigs dεnotεd the "comparison_bc_sig_bag" obtained from the bcation signature data base. It is assumed that "targetjoc ig", "comparisonjoc ig" and the loc sigs in "comparison_loc_sig_bag" are all associated with the same base station. This program returns an error record (objeα), "error_rec", having an error or difference value and a confidence value for the error value. Note, the signal characteristics of "target loc sig" and thosε of "comparisonjocjig" are not assumed to be similarly normalized (e.g., via filters as per the filters of the Signal Procεssing Subsystem) prior to entering this funαion. It is further assumed that typically the input loc sigs satisfy the "search_criteria". This program is invoked by: the program, "Determine_Location_Signature_Fit Errors", described above. get_difference_measurement(targetJoc_sig, comparisonJoc_sig, comparison Joc_sig_bag, search_area, search_criteria) Input:

targεt _loc_sig: Thε loc sig to which the "error rec" determined here is to be associated. comparison Joc_sig: The loc sig to compare with the "target Jocjig". Note, if "comparison Joc_sig" is NIL, then this parameter has a value that corresponds to a noise level of "target Jocjig". comparisonjOc sig bag: The universe of loc sigs to use in detεrmining an εrror measurement between "targetjocjig" and "comparison loc jig" . Note, the loc sigs in this aggregation include all loc sigs for the associated BS that are in the "search irea". sεarch trea: A representation of the geographiαl area surrounding the bcation for all input be sigs. This input is used for determining extra information about the search area in problematic circumstances, search riteria: The criteria usεd in searching the bcation signature data base. The criteria may include the following: (a) "USE ALL LOC SIGS IN DB",

(b) "USE ONLY REPEATABLE LOC SIGS",

(c) "USE ONLY LOC SIGS WITH SIMILAR TIME OF DAY

Howevεr, environmental charaαeristics such as: weather, traffic, season are also contemplated.

Detailed Description of the Hypothesis Evaluator Modules

Context Adjuster Embodiments

The context adjuster 1326 performs the first set of potentially many adjustments to at least the confidences of loαtioπ hypotheses, and in some important embodimεnts, both the confidεncεs and thε targεt MS loαtion εstimatεs provided by FOMs 1224 may bε adjustεd according to prevbus performances of the FOMs. More particularly, as mentioned above, the context adjuster adjusts confidences so that, assuming there is a sufficient density verified loαtion signature clusters captured in the location signature data base 1320, the resulting bαtion hypothesεs output by thε context adjuster 1326 may be further processed uniformly and substantially without concern as to differences in accuracy between the first order models from which loαtion hypotheses originate. Accordingly, the context adjuster adjusts loαtion hypotheses both to environmental faαors (e.g., terrain, traffic, time of day, etc, as described in 30.1 above), and to how predictable or consistent each first order model (FOM) has been at bating prevbus targεt MS's whosε loαtions wεre subsequently verified.

Of particular importance is the novel computational paradigm utilized herein. That is, if there is a sufficient density of prevbus verifiεd MS loαtioπ data stored in the location signature data base 1320, then the FOM loαtion hypotheses are used as an "indεx" into this data base (i.e., the bαtbn signature data base) for coπstruαing new target MS 140 ioαtion estimates. A more detailed discussion of this aspeα of the present inventbn is given hereinbelow. Accordingly, only a brief overview is provided here. Thus, since the loαtion signature data base 1320 stores previously αpturεd MS bαtion data including:

(a) clusters of MS loαtion signature signals (see the taαtion signature data base section for a discussion of these signals) and (b) a corresponding verified MS loαtbn, for each such cluster, from where the MS signals originated,

the contεxt adjuster 1326 usεs newly created target MS loαtion hypotheses output by the FOM's as indexes or pointers into the bαtion signature data base for identifying other geographiαl areas where the target MS 140 is likely to be bated based on the verified MS loαtion data in the loαtioπ signature data base.

In particular, at least the folbwing two criteria are addressed by the context adjuster 1326: (32.1) Confidence values for bcation hypotheses are to be comparable regardless of first order models from which the loαtbπ hypothesεs originate. That is, the contεxt adjuster moderates or dampens confidence value assignment distinαions or variations between first order models so that the highεrthe confidence of a loαtion hypothesis, the more likely (or unlikely, if thε bcation hypothesis indiαtes an area estimate where the target MS is NOT) the target MS is perceived to bε in the εstimatεd area of the location hypothesis regardless of the First Order Model from which the bcation hypothesis was output;

(322) Confidence values for bcation hypothesεs may bε adjusted to account for current environmental charaαeristics such as month, day (weekday or weekεnd), timε of day, area type (urban, rural, etc.), traffic and/or weather when comparing how accurate the first order models have previously been in determining an MS location according to such environmental charaαeristics. For examplε, in one embodiment of the presεnt invention, such environmental characteristics are accounted for by utilizing a transmission area type scheme (as discussed in sεαion 5.9 abovε) whεn adjusting confidence values of bcation hypothesεs. Dεtails regarding the use of area types for adjusting the confidences of location hypotheses and provided hereinbelow, and in particular, in APPENDIX D. Note that in satisfying the above two criteria, the context adjuster 1326, at least in one embodimεnt, may usε heuristic (fuzzy logic) rules to adjust the confidence values of location hypotheses from the first order models. Additionally, the context adjuster may also satisfy the folbwing criteria:

(33.1) The context adjuster may adjust locatbn hypothesis confidences due to BS failure(s),

(33.2) Additionally in one embodiment, the context adjuster may have a calibration modε for at ieast onε of:

(a) calibrating the confidence values assigned by first order models to their location hypotheses outputs; (b) calibrating itself.

A first embodiment of the context adjuster is discussεd immediately hereinbelow and in APPENDIX D. Howevεr, the present invention also includes othεr εmbodimεnts of thε context adjuster. A second embodiment is also described in Appendix D so as to not overburdεn the reader and thereby chance losing perspeαive of thε overall invention.

A description of the high level funαioπs in an embodiment of the context adjuster 1326 follows. Details regarding the implementation of these funαions are provided in APPENDIX D. Also, many of the terms used hereinbelow are defined in APPENDIX D. Accordingly, the program descriptions in this seαion provide the reader with an overview of this first embodiment of the context adjuster 1326.

Contεxt adj ustε r( be typjist)

This funαion adjusts the loαtion hypotheses on the list, "loc hyp list", so that the confidences of the bcation hypotheses are determined more by empirical data than default values from the First Order Models 1224. That is, for each input location hypothesis, its confidence (and an MS bcation area estimate) may be exclusively determined here if there are enough verified location signatures available withir and/or surrounding the location hypothesis estimate. This function creates a new list of location hypothesεs from thε input list, * *loc_hyp_list", whεrεin thε bcation hypothesεs on the new list are modified versions of thosε on thε input list For εach bcation hypothεsis on the input list, one or more corresponding locatbn hypotheses will be on the output list. Such corresponding output bcation hypothεsεs will differ from their associated input location hypothesis by one or more of the following: (a) the "image trea" field (seε Fig. 9) may bε assignεd an area indicativε of whεre the target MS is estimated to bε, (b) if "i agε irea" is assigned, then the "confidence" field will be the confidence that the target MS is bcatεd in thε area for "image area", (c) if thεre are not sufficient "nearby" verifiεd location signature clusters in the loαtion signature data base 1320 to entirely rely on a computed confidence using such verified location signature dusters, then two location hypothεses (having reduced confidences) will be returned, one having a reduced computed confidence (for "image rea") using the verified clusters in the Location Signature data base, and one being substantially the same as the associated input location hypothesis except that the confidence (for the field "area st") is reduced to reflect the confidencε in its paired location hypothεsis having a computed confidence for "image_area". Note also, in some cases, the bcation hypothεsεs on the input list, may have no change to its confidence or the area to which the coπfidεnce applies. Get_adjusted_loc_hyp_list_for(loc_hyp)

This funαion rεturns a list (or more generally, an aggregation object) of one or more loαtion hypotheses related to the input location hypothesis, "locjiyp". In particular, the returned bcation hypotheses on the list are "adjusted" versions of "loc_hyp" in that both their target MS 140 bcation estimates, and confidencε placεd in such εstimates may be adjusted according to archival MS bcation information in thε location signature data basε 1320. Notε that thε steps herein are also provided in flowchart form in Figs.26a through 26c. RETURNS: loc_ hyp list This is a list of one or more bcation hypotheses related to the input "loc hyp". Each location hypothesis on "loc hyp list" will typically be substantially the same as the input "bc_hyp" excεpt that thεre may now bε a nεw targεt

MS estimate in the field, "image trea", and/or the confidence value may be changed to reflect information of verified loαtion signature clusters in the location signature data basε.

The funαion, "get_adjusted_loc_hyp_fist_for," and funαions called by this funαion presuppose a framework or paradigm that requires some discussion as well as the defining of some terms. Note that some of the terms defined hereinbelow are illustrated in Fig.243.

Define the term the "the cluster set" to be the set of all MS location point estimatεs (e.g., the values of the "pt est" field of the location hypothesis data type), for the present FOM, such that:

(a) these estimates are within a predetermined corresponding area (e.g., the "loc hyp.pt coveriπg" being such a predetermined corresponding arεa, or more generally, this predεtεrmiπed corresponding area is dεterminεd as a funαion of the distance from an initial bcation estimate, e.g., "bc hyp.pt est", from the FOM), and

(b) these point estimates have verifiεd location signature clusters in the bcation signature data basε. Notε that thε predetermined corresponding area abovε will bε dεnotεd as thε "cluster set area".

Define thε term "image cluster set" (for a given First Order Model identified by "bc_hyp.FOM _ID") to mean the set of verified location signature clusters whose MS loαtion point estimates are in "thε cluster set".

Note that an area containing thε "imagε cluster set" will be denoted as the "image cluster set area" or simply thε "imagε area" in some contexts. Further note that thε "image cluster set area" will be a "small" area encompassing the "imagε cluster set". In one embodiment, the imagε cluster sεt arεa will be the smallest covering of cells from the mesh for the presεnt FOM that covεrs thε convex hull of thε imagε cluster set Note that preferably, each cell of each mesh for each FOM is substantially contained within a single (transmission) area type.

Thus, the present FOM provides the correspondences or mapping betwεεn elements of the cluster set and elemεnts of thε imagε clustεr sεt.

confidεnce_adjuster(FOM ID, imagε_area, image_ciustεrjet)

This function returns a confidencε valuε indicative of the target MS 140 being in the area for "imagε_area". Note that the steps for this funαion are provided in flowchart form in Figs.27a and 27b.

RETURNS: A confidencε value. This is a valuε indicative of the target MS being bated in the area represented by "image trea" (when it is assumed that for thε related "loc_hyp," the "cluster set area" is the "loc_hyp.pt overing" and "bc_hyp.FOM_ID" is "FOM ID").

The funαion, "coπfidencε_adjustεr," (and functions called by this funαion) presuppose a framework or paradigm that requires somε discussion as wεll as thε defining of terms. Define the term "mapped cluster density" to be the number of the verifiεd location signature clusters in an "image cluster set" per unit of area in thε "imagε cluster set area".

It is believed that the higher the "mapped cluster density", the greater the confidence can be had that a target MS aαually resides in thε "image clustεr set area" whεn an εstimatε for thε target MS (by the presεnt FOM) is in the corresponding "the cluster set". Thus, the mapped cluster density beco εs an important factor in dεtεrmining a confidεncε valuε for an estimated area of a target MS such as, for example, the area represented by "image irea". However, the mapped cluster density value requires modification before it can be utilized in the confidencε calculation. In particular, confidence values must be in the range [-1, 1] and a mapped cluster density does not havε this constraint. Thus, a "relativized mapped cluster density" for an estimated MS arεa is dεsirεd, whεrεin this relativized measuremεnt is in thε range [-1 , + 1], and in particular, for positive confidences in the

range [0, 1]. Accordingly, to alleviate this difficulty, for the FOM dεfiπε the term "prediαion mapped cluster density" as a mapped cluster density value, MCD, for the FOM and image cluster set area wherein:

(i) MCD is sufficiently high so that it correlates (at least at a predetermined likelihood threshold level) with the actual target MS locatbn being in the "image cluster set area" when a FOM target MS location estimate is in the corresponding "cluster sεt area";

That is, for a cluster set area (e.g., "loc_hyp.p t ovεring") for thε presεnt FOM, if the image duster set area: has a mapped cluster density greater than the "prediαion mapped cluster density", then there is a high likelihood of the target MS being in the image cluster set area.

It is believεd that the prediction mapped cluster density will typically be dependent on one or more area types. In particular, it is assumed that for each area type, there is a likely range of prediction mapped cluster density values that is substantially uniform across the area type. Accordingly, as discussed in dεtail hereinbelow, to calculate a prεdiαion mappεd cluster density for a particular area type, an estimate is made of the correlation betwεεπ the mapped cluster densities of image areas (from cluster set areas) and the likelihood that if a verified MS bcation: (a) has a corresponding FOM MS estimate in the cluster set, and (b) is also in the particular area type, then the verified MS location is also in the imagε arεa. Thus, if an arεa is within a singlε area type, then such a "relativized mapped cluster density" measuremεnt for the area may be obtained by dividing the mapped clustεr dεnsity by thε prεdiαion mapped clustεr density and taking the smaller of: the resulting ratio and 1.0 as the value for the relativized mapped cluster dεnsity.

In some (perhaps most) cases, however, an area (e.g., an image cluster set area) may havε portions in a number of area types. Accordingly, a "composite prediction mappεd cluster density" may be computed, wherein, a weighted sum is computed of the prediαion mapped cluster densities for the portions of the area that is in each of the area types. That is, the weighting, for each of the single area type prediction mapped cluster densitiεs, is the fraαion of the total area that this area type is. Thus, a "relativized compositε mapped cluster density" for the area here may also be computed by dividing the mapped cluster density by the composite prediαion mappεd clustεr dεnsity and taking the smaller of: the resulting ratio and 1.0 as thε valuε for thε relativized composite mapped cluster density. Accordingly, note that as such a relativized (composite) mapped cluster density for an image cluster set area increases/decreases, it is assu εd that thε confidεncε of thε targεt MS bεing in thε image cluster set area should increase/decrease, respeαively.

get_composite_prediαion_mapped_clustεr lensity or_high_certainty(FOM_ID, image area); The present function deter iπεs a composite prediαion mappεd clustεr dεnsity by determining a composite prediαion mapped cluster density for the area represented by "image area" and for the First Order Model identified by "FOM JD". OUTPUT: composite mappεd lensity This is a record for thε composite prediαion mapped cluster density. In particular, there are with two fields:

(i) a "value" field giving an approximation to the prediction mapped cluster density for the First Order Model having id, FOM _ID;

(ii) a "reliability" field giving an indication as to the reliability of the "value" field. The reliability field is in the range [0, 1] with 0 indicating that the "value" field is worthless and the larger the value the more assurance can be put in "value" with maximal assurance indicated when "reliability" is I.

get ^rεdiαion nappεd_cluster_densityJor(FOMj " D, area ype)

The presεnt funαion dεtεrminεs an approximation to a prediαion mapped cluster density, D, for an area type such that if an image cluster set area has a mapped cluster density > = D, then there is a high expεαation that thε targεt MS 140 is in the image cluster set area. Note that there are a number of εmbodiments that may bε utilizεd for this funαion. The steps herein are also provided in flowchart form in Figs.29a through 29h.

OUTPUT: prediαion napped luster iensity This is a value giving an approximation to the prediction mapped cluster density for thε First Order Modεl having identity, "FOM JD", and for the area type represented by

"area ypε" */

It is important to note that the computation here for thε prediαion mapped cluster density may be more intense than some other computations but the cluster densities computed here neεd not bε performed in real time target MS location processing. That is, the stεps of this function may be performed only periodically (e.g., once a weεk), for εach FOM and εach arεa typε thεreby precomputing thε output for this function. Accordingly, thε valuεs obtainεd here may be stored in a table that is accessed during real time target MS locatbn processing. However, for simplicity, only the periodically performed steps are presented here. Howevεr, one skilled in the art will understand that with sufficiently fast computational devices, some related variations of this funαion may be performed in real-time. In particular, instead of supplying area type as an input to this funαion, a particular area, A, may be providεd such as the image area for a cluster set area, or, the portion of such an image area in a particular area type. Accordingly, wherever "area Jype" is usεd in a statement of the embodiment of this funαion below, a comparable statement with "A" can be provided.

Location Hypothesis Analyzer Embodiment

Referring now to Fig.7, an embodiment of the Hypothesis Analyzer is illustrated. The control component is denoted the control module 1 00. Thus, this control module manages or controls access to the run time bcation hypothesis storagε area 1410. The control module 1400 and the run time loαtion hypothesis storage area 1410 may bε implemented as a blackboard system and/or an expert system. Accordingly, in the blackboard embodiment, , and the control module 1400 determines when new loαtion hypotheses may be entered onto the

blackboard from other processes such as the context adjuster 1326 as well as when bcation hypotheses may be output to the most likelihood estimator 1344.

The folbwing is a briεf description of εach submodule included in the bαtion hypothesis analyzer 1332. (35.1) A control module 1400 for managing or controlling further processing of loαtion hypotheses received from the contεxt adjuster. This module controls all bcation hypothesis processing within the loαtion hypothesis analyzer as well as providing the input interface wkh the context adjuster. There are numerous embodiments that may be utilized for this module, including, but not limited to, expert systems and blackboard managers.

(352) A run-time loαtion hypothesis storage area 1410 for retaining loαtbn hypotheses during their processing by thε loαtion hypothεsεs analyzer. This on be, for example, an expert system faα basε or a blackboard. Notε that in some of thε discussion hereinbelow, for simplicity, this module is referred to as a "blackboard". Howevεr, h is not intended that such notation be a limitation on the present inventbn; Lε., thε term "blackboard" hereinafter will denote a run-time data repository for a data processing paradigm wherein the flow of control is substantially data-driven.

(353) An analytical reasoner module 1416 for determining if (or how well) loαtion hypotheses are consistent with well known physiαl or heuristic constraints as, e.g., mentioned in (30.4) above. Note that this module may be a daemon or expert system rule base. (35.4) An historical loαtion reasoner module 1424 for adjusting bαtion hypotheses' confidences according to how well the loαtion signature charaαeristics (i.e., loc sigs) associated with a loαtion hypothesis compare with "nearby" be sigs in the loαtion signature data base as iπdiαted in (302) above. Note that this module may also be a daemon or expert system rule base. (35.5) A loαtion extrapolator module 1432 for use in updating prevbus bαtion estimates for a target MS when a more recent loαtion hypothesis is provided to the bαtion hypothesis analyzer 1332. That is, assume that thε control modulε 1400 recεives a new loαtion hypothesis for a target MS for which there are also one or more prevbus bαtion hypotheses that eithεr havε bεεn recently processed

(i.e., they reside in the MS status repository 1338, as shown best in Fig.6), or are currently bεing procεssεd (i.ε., they reside in the run¬ time bcation hypothesis storage area 1410). Accordingly, if the aαive imεstamp (see Fig.9 regarding location hypothesis data fields) of the newly received taαtioπ hypothesis is sufficiently more recent than the aαive imestamp of one of these prevbus loαtion hypotheses, then an extrapolation may be performed by the loαtion extrapolator module 1432 on such prevbus loαtion hypotheses so that all target MS loαtion hypotheses being concurrently analyzed are presumed to include target MS locatbn estimatεs for substantially the same point in time. Thus, initial loαtion estimates generated by the FOMs using different wireless signal measurements, from different signal transmission time intervals, may havε their corresponding dependent loαtion hypothesεs utiiizεd simultaneously for determining a most likely targεt MS loαtion εstimate. Note that this modulε may also be daemon or expert system rule basε. (35.6) hypothesis genεrating modulε 1428 for gεnerating additional taαtion hypothεses aαording to, for example, MS location information not adequately utilized or modeled. Note, loαtion hypotheses may also be decomposed here if, for examplε it is determined that a locatbn hypothesis includes an MS area estimate that has subareas with radially different charaaeristics such as an MS area estimate that includes an uninhabited area and a densely populated area. Additionally, the hypothesis generating module 1428 may generate "poor reception" loαtbn hypothesεs that specify MS location areas of known poor reception that are "near" or interseα currently

aαive bαtion hypotheses. Note, that these poor reception bαtion hypothesεs may bε specially tagged (e.g., with a distinαive FOM JD value or specific tag field) so that regardless of substantially any other loαtion hypothesis confidence value overlapping such a poor reception area, such an area will maintain a confidence value of "unknown" (i.e., zero). Note that substantially the only exception to this constraint is location hypotheses generated from mobile base statbns 148. Note that this module may also bε daεmon or expert system rule basε.

In thε blackboard system εmbodimεnt of the bαtion hypothesis analyzer, a blackboard system is the mechanism by which the last adjustments are performed on loαtioπ hypothesεs and by which additional loαtion hypotheses may be generated.. Briefly, a blackboard system an bε described as a particular class of software that typically includes at least three basic components. That is: (36.1) a data base called the "blackboard," whose stored information is commonly available to a collection of programming elements known as "daemons", wherein, in the presεnt invention, the blackboard includes information concerning the current status of the loαtbn hypothesεs bεing εvaluatεd to determine a "most likely" MS bαtion estimate. Note that this data base is provided by the run time loαtioπ hypothesis storage area 1410; (162) one or more aαive (and typically opportunistic) knowledge sources, denoted conventionally as "daemons," that create and modify the contents of the blackboard. The blackboard system employed requires only that the daemons have appliαtion knowledge specific to the MS loαtion problem addressed by the present invεntion. As shown in Fig.7, thε knowledge sources or daemons in thε hypothεsis analyzer include the analytical reasoner module 1416, the hypothesis generating module 1428, and the historical bαtion reasoner modulε 1416; (363) a control modulε that enables the realization of the behavior in a serial computing environment The control element orchestrates the flow of control betwεen the varbus daemons. This control module is provided by the control module

1400. Note that this blackboard system may be commercial, however, the knowledge sources, i.e., daemons, have been developed specifically for the present inventbn. For further information regarding such blackboard systems, the folbwing references are incorporated herein by reference: (a) Jagannathan, V., Dodh ' iawala, R., & Baum, L S. (1989). Blackboard architectures and applications. Boston, MA: Harcourt Brace Jovanovich Publishers; (b) Engelmore, R., & Morgan, T. (1988). Blackboard systems. Reading, MA: Addison-Wesley Publishing Company. Alternatively, the control module 1400 and the run-time bαtion hypothesis storage area 1410 may be implemented as an expert system or as a fuzzy rule inferenciπg system, wherein the control module 1400 aαivates or "fires" rulεs related to thε knowledge domain (in the present case, rubs relating to the accuracy of MS loαtioπ hypothesis εstimatεs), and wherein the rules provide a computational embodiment of, for example, constraints and heuristics related to the accuracy of MS loαtioπ estimates. Thus, the control module 1400 for the present embodimεnt is also used for orchestrating, coordinating and controlling the aαivity of the individual rule bases of the loαtion hypothesis analyzer (e.g. as shown in Fig.7, the analytical reasoner module 1416, the hypothesis generating module 1428 , the historiαl bαtion reasoner module 1424, and the loαtion extrapolator module 1432). For further information regarding such expert systems, the folbwing reference is incorporated hεrein by reference: Waterman, D. A. (1970). A guide to expert systems. Reading, MA: Addison-Wesley Publishing Company.

MS Status Repository Embodiment

The MS status repository 1338 is a run-time storage managεr for storing location hypotheses from previous activations of the loαtion engine 139 (as well as the output target MS bcation estimatε(s)) so that a targεt MS may be tracked using target MS loαtion hypothesεs from prevbus bcation engine 139 aαivations to determine, for example, a movement of the target MS betweεn evaluations of the target MS bcation. Thus, by retaining a moving window of previous location hypothεsεs used in evaluating positions of a target MS, measurements of the target MS's velocity, acceleration, and likely next position may be determined by the loαtioπ hypothesis analyzer 1332. Further, by providing accessibility to recεnt MS location hypotheses, thesε hypotheses may be used to resolve conflicts between hypotheses in a current aαivation for locating the target MS; e.g., MS paths may be stored here for use in extrapolating a new loαtion

Most Likelihood Estimator Embodiment

The most likelihood estimator 1344 is a module for determining a "most likely" location estimate for a target MS 140 being bated (e.g., as in (30.7) above). In one embodiment, the most likelihood estimator performs an integration or summing of all location hypothesis confidence values for any geographic region(s) of interest having at least one loαtion hypothesis that has bεεn provided to the most likelihood estimator, and wherein the loαtion hypothesis has a relatively (or sufficiently) high confidence. That is, the most likelihood estimator 1344 determines the area(s) within each such region having high coπfidεncεs (or confidences above a threshold) as the most likely target MS 140 loαtion estimates.

In one embodiment of the most likelihood estimator 1344, this module utilizεs an area mεsh, M, ovεr which to integrate, wherein the mesh cells of M are preferably smaller than the greatest loαtion accuracy desired. That is, each cell, c, of M is assigned a confidence value iπdiαting a likelihood that the target MS 140 is bated in c, wherein the confidence value for c is determined by the confidence valuεs of the targεt MS bαtion estimates provided to the most likelihood estimator 1344. Thus, to obtain the most likely loαtion determiπation(s) the following steps are performed:

(a) For each of the active location hypotheses output by, e.g., the hypothesis analyzer 1332 (alternatively, the context adjuster

1326), each corresponding MS loαtion area estimate, LAE, is provided with a smallest covering, C^, of cells c from M.

(b) Subsequently, each of the cells of C^ have their confidence values adjusted by adding to it the confidence value for LAE. Accordingly, if thε confidence of LEA is positive, then the cells of C^ have their confidences increased. Alternatively, if thε confidence of LEA is negative, then the cells of a have their confidences decreased.

(c) Given that the interval [-1.0, + I.OJ represents the range in confidence values, and that this range has been partitioned into intervals, Int, having lengths of, e.g., 0.05, foreach interval, Int, perform a cluster analysis funαion for clustering cells with confidences that are in Int. Thus, a topographiαl-type map may bε constructed from the resulting cell clusters, wherein higher confidence areas are analogous to representations of areas having higher elevations.

(d) Output a representation of the resulting clusters for each Int to the output gateway 1356 for determining the loαtion granularity and representation desired by each loαtion application 146 requesting the location of the target MS 140.

Of course, variations in the above algorithm also within the scope of the presεnt invention. For example, some embodimεnts of thε most likεlihood estimator 1344 may:

(e) Perform special processing for areas designated as "poor reception" areas. For εxamplε, the most likεlihood εstimator 1 44 may be able to impose a confidence value of zero (i.e., meaning it is unknown as to whether the target MS is in the area) on each such poor reception area regardless of the loαtion estimate confidence values unless there is a loαtion hypothesis from a reliable and unanticipated source. That is, the mεsh cells of a poor reception area may have their confidences set to zero unless, e.g., there is a loαtbn hypothesis derived from target MS bαtion data provided by a mobile base station 148 that (a) is near the poor reception area, (b) able to deteα that the target MS 140 is in the poor reception area, and (c) can relay target MS loαtion data to the loαtion center 142. In such a αse, the confidence of the target MS loαtion estimate from the

MBS bαtioπ hypothesis may take precedence.

(f) Additionally, in some embodiments of the most likelihood estimator 1344, cells c of M that are "near" or adjacent to a covering

Qa may also have their confidences adjusted according to how near the celts c are to the covering. That is, thε assigning of confidεncεs to cεll meshes may be "fuzzified" in the terms of fuzzy logic so that the confidence value of each loαtion hypothesis utilized by thε most likεlihood εstimator 1344 is providεd with a weighting faαor depending on its proxity to the targεt MS loαtion estimate of the bcation hypothesis. More precisely, it is believed that "nearness," in the present context should be monotonic whh the "wideness" of the covering; i.e., as the extent of the covering increases (decreases) in a particular direαion, the cells c affeαed beyond the covering also increases (decreases). Furthermore, in some embodimεnts of thε most likelihood estimator 1344, the greater (lesser) the confidence in the LEA, the more (fewer) cells c beyond the covering have their confidencεs affeαed. To describe this technique in further detail, reference is made to fig. 10, wherein an area A is assumed to be a covering C^ having a confidencε denoted "conf '. Accordingly, to determine a confidence adjustment to add to a cell c not in A (and additionally, the centroid of A not being substantially identical with the centroid of c which could occur if A were donut shaped), thε following stεps may be performed: (i) Determine the centroid of A, denoted Cent(A). (ii) Determine the centroid of the cell c denoted Q.

(iii) Determine the extent of A along the line between Cent(A) and Q, denotεd L (iv) For a given type of probability dεnsity funαion, P(x), such as a Gaussian funαion, let T be the beginning portion of the funαion that lives on the x-axis interval [0, t], wherein P(t) - ABS(conf) = the absolute valuε of thε confidence of C^. (v) Stretch T along the x-axis so that the stretched funαion, denoted sT(x), has an x-axis support of [0, L/(l +e wωs )" IB )], where a is in range of 3.0 to 10.0; e.g., 5.0. Note that sT(x) is the function,

P(x * (I + ,J a < !iS < ton '>- 1)] ) L), on this stretched extent. Further note that for confidences of + 1 and - 1 , the support of sT(x) is [0, L] and for confidences at (or near) zero this support. Further, thε term,

is monotoniαhy increasing with L and ABS(conf). (vi) Determine D = the minimum distance that Q is outside of A along the line between Ceπt(A) and Q. (vii) Determine the absolute value of the change in thε confidence of c as sT(D). (viii) Provide the valuε sT(D) with thε samε sign as conf, and provide the potentially sign changed value sT(D) as 5 the confidεncε of thε cell c.

Additionally, in some embodimεnts, thε most likelihood estimator 1344, upon receiving onε or more bαtion hypotheses from the hypothesis analyzer 1332, also performs some or all of the folbwing tasks:

(37.1) Filters out loαtion hypothεses having confidencε values near zero whenever such loαtion hypotheses are dee εd too unreliable to be utilized in determining a targεt MS bαtion estimate. For example, loαtion hypothesεs having confidence l o values in the range [-0.02, 0.02] may be filtered here;

(37.2) Determines the area of interest over which to perform the integration. In onε embodiment, this area is a convex hull including each of the MS area estimatεs from the received loαtbn hypothesεs (whεrein such loαtion hypotheses have not been removεd from consideration by the filtering process of (37.1)); (373) Detεrminεs, oncε the integration is performed, one or more colleαions of contiguous area mesh cells that may be deemed a 15 "most likely" MS taαtion estimate, wherein each such colleαion includes one or more area mesh cells having a high confidencε value.

Detailed Description of the Location Hypothεsis Analyzεr Submodulεs

Analytical Rεasoner Module

The analytical reasoner applies constraint or "sanity" checks to the target MS estimates of the taαtioπ hypothesεs residing in the Run-timε 20 Location Hypothεsis Storage Area for adjusting the associated confidence values accordingly. In one embodiment thesε sanity checks involve "path" information. That is, this modulε determiπεs if (or how well) loαtion hypothesεs are consistent with well known physiαl constraints such as the laws of physics, in an area in which the MS (associated with the bαtbn hypothesis) is estimated to be bated. For examplε, if thε difference between a previous (most likely) bαtbn estimatε of a target MS and an estimatε by a current loαtbn hypothesis requires the MS to: 25 (a) move at an unreasonably high rate of spεεd (ε.g, 200 mph), or

(b) moγε at an unreasonably high rate of speed for an area (e.g., 80 mph in a corn patch), or

(c) make unreasonably sharp velocity changes (e.g., from 60 mph in one direction to 60 mph in the opposite direαion in 4 sec), then the confidence in thε current hypothesis is reduced. Such path information may bε derived for each time series of loαtion hypothesεs resulting from thε FOMs by maintaining a window of prevbus loαtion hypotheses in the MS status repository 1338. Moreover, by additionally

30 retaining the "most likely" target MS locatbn estimates (output by the most likelihood estimator 1344), current loαtion hypotheses may be compared against such most likely MS location estimates.

The folbwing path sanity checks are incorporated into the computations of this module. That is:

(I) do the prediαed MS paths generally follow a known transportation pathway (e.g., in the casε of a calculated speed of greater than 50 miles per hour are the target MS loαtion estimates within, for example, 1 miles of a pathway where such speed may be sustained); if so (not), then increase (decrease) the confidence of the loαtion hypothεsεs not satisfying this criterion; (2) are the speeds, velocities and accelerations, determined from the current and past target MS loαtion estimates, reasonable for the region (e.g., speeds should be less than 60 milεs pεr hour in a dεnse urban area at 9 am); if so (not), then increase (decrease) the confidencε of thosε that are (un)reasonablε; (3) are the loαtions, speeds, velocities and/or accelerations similar betwεen target MS tracks produced by different FOMs similar; decrease the confidence of the currently aαive loαtbn hypotheses that are indiαted as "outliers" by this criterion; (4) are the currently aαive loαtbn hypothesis target MS estimatεs consistent with prevbus prediαions of whεre the target MS is prediαed to bε from a previous (most likely) targεt MS estimate; if not, then decrease the confidencε of at least those loαtion hypothesis estimates that are substantially different from the corresponding prediαions. Note, however, that in some αses this may bε ovεr ruled. For example, if the prediαion is for an area for which there is Loαtion Base Station coverage, and no Loαtion Base Station covering the area subsequently reports communkating with the target MS, then the prediαions are incorreα and any current loαtbn hypothεsis from thε same FOM should not bε decreased here if it is outside of this Loαtbn

Basε Station coveragε area.

Notice from Fig.7 that the analytical reasoner can access bαtion hypothεsεs currently posted on the Run-time Loαtion Hypothεsis Storage Area. Additionally, it intεraαs with the Pathway Database which contains information concerning the loαtion of natural transportation pathways in the region (highways, rivers, etc.) and the Area Characteristics Database which contains information concerning, for examplε, reasonable velocities that an be expected in varbus regions (for instance, speeds of 80 mph would not be reasonably expeαed in dense urban areas). Note that both speed and direction n be important constraints; e.g., even though a speed might be appropriate for an area, such as 20 mph in a dense urban area, if the direαion indicated by a time series of related loαtion hypotheses is direαty through an εxtensivε building complεx having no through traffic routes, then a reduαbn in thε confidence of one or more of the loαtion hypothesεs may be appropriate.

One embodiment of the Analytical Reasonεr illustrating how such constraints may be implemented is provided in the folbwing sectbn. Note, however, that this embodimεnt analyzεs only loαtion hypotheses having a non-negative confidεncε value. Modulεs of an embodiment of thε analytical reasonεr module 1416 are providεd hereinbelow.

Path Comparison Module Thε path comparison module 1454 implements the folbwing strategy: the confidence of a particular bαtion hypothesis is be increased (decreased) if it is (not) prediαing a path that lies along a known transportation pathway (and the speed of the target MS is sufficiently high). For instance, if a time sεries of target MS loαtion hypotheses for a given FOM is prediαiπg a path of thε target MS that lies along an interstate

highway, the confidencε of thε currently aαive loαtion hypothesis for this FOM should, in general, be increased. Thus, at a high level the folbwing stεps may bε performed:

(a) For each FOM having a currently aαive loαtion hypothesis in the Run-time Loαtion Hypothεsis Storage Area (also denoted

"blackboard"), determine a recent "path" obtained from a time series of loαtion hypothesεs for the FOM. This computation for the "path" is performed by stringing togethεr successive "center of area" (COA) or centroid values determined from the most pertinent target MS loαtion estimate in each bαtion hypothesis (recall that each loαtioπ hypothesis may have a plurality of target MS area estimates with one being thε most pertinent). The information is stored in, for example, a matrix of values wherein one dimension of the matrix identifies the FOM and the a second dimension of thε matrix represents a series of COA path values. Of course, some entries in thε matrix may be undefined. (b) Compare each path obtained in (a) against known transportation pathways in an arεa containing the path. A value, path_match(i), representing to what extent the path matches any known transportation pathway is computed. Such values are used later in a computation for adjusting the confidence of each corresponding currently aαive bαtbn hypothεsis.

Velocity/Acceleration Calculation Module

Thε velocity/acceleration calculation module 1458 computes velocity and/or acceleration estimates for the targεt MS 140 using currently aαive loαtion hypotheses and previous taαtion hypothesis estimates of the target MS. In one εmbodiment, for each FOM 1224 having a currently aαivε loαtbn hypothesis (with positive confidences) and a sufficient number of previous (reasonably recent) target MS bαtbπ hypotheses, a velocity and/or acceleration may be calculated. In an alternative embodiment, such a velocity and/or acceleration may bε calculated using thε currently aαive loαtion hypothεsεs and onε or more recent "most likεly" bαtions of the target MS output by the loαtbn enginε 139. If thε estimated velocity and/or acceleration corresponding to a currently aαivε location hypothεsis is reasonable for the region, then its confidεncε value may be incremented; if not, then its confidεncε may bε dεcremεnted. The algorithm may be summarized as folbws: (a) Approximate speed and/or acceleration εstimates for currently aαivε targεt MS bcation hypotheses may bε provided using path information related to the currently aαive bαtioπ hypotheses and prevbus target MS loαtion estimates in a manner similar to the description of the path comparison module 1454. Accordingly, a single confidence adjustment value may bε dεtεrminεd for each currently aαive loαtion hypothesis for indiαting the extent to which ' its corresponding velocity and/or acceleration αkulations are reasonable for its particular target MS bcation estimatε. This calculation is performed by retrieving information from the area charaαeristiα data base 1450 (e.g, Figs.6 and 7). Since each loαtbn hypothesis includes timestamp data indiαting when thε MS bαtion signals wεre received from thε targεt MS, the velocity and/or acceleration associated with a path for a currently aαivε loαtion hypothesis an be straightforwardly approximated. Accordingly, a confidencε adjustmεnt valuε, vεl_ok(i), indicating a likelihood that the velocity calculated for the i* currently active bαtioπ hypothesis (having adequate corresponding path information) may be appropriate is calculated using for the environmental charaαeristics of the loαtion hypothesis' target MS loαtion estimate. For example, thε area charaαeristics data base 1450 may include expected maximum velocities and/or accelerations for each area type and/or cell of a cell mesh of the covεragε area 120. Thus, velocities and/or accelerations above such maximum values may be indicative of anomalies in the MS location estimating process. Accordingly, in onε embodiment, the most

recent loαtion hypotheses yielding such εxtre ε velocities and/or accelerations may have their confidence values decreased. For example, if the target MS loαtion estimate includes a portion of an interstate highway, then an appropriate velocity might correspond to a speed of up to 100 miles per hour, whereas if thε target MS locatbn estimatε includεs only rural dirt roads and tomato patches, thεn a likely speed might be no more than 30 miles per hour with an maximum speεd of 60 miles per hour

5 (assuming favorable environmental charaαeristiα such as weather). Note that a list of such environmental charaαeristics may include such faαors as: area type, time of day, season. Further note that more uπpredittablε environmental charaαeristiα such as traffic flow patterns, weather (e.g., clear, raining, snowing, εtc) may also bε included, values for these latter charaαeristiα coming from the environmental data base 1354 which receives and maintains information on such unpredictable charaαeristiα (e.g., Figs.6 and 7). Also notε tliat a similar confidεncε adjustmεnt value, acc ok(i), may be providεd for currently aαive loαtion hypotheses, l o wherein thε confidence adjustmεnt is related to the appropriateness of the acceleration εstimatε of thε targεt MS.

Attribute Comparison Module

Thε attribute comparison module 1462 compares attribute values for bαtion hypotheses generated from different FOMs, and determines if the confidence of certain of the currently aαive loαtion hypotheses should be increased due to a similarity in related values for the attribute.

15 That is, for an attribute A, an attribute value for A derivεd from a set S f0H[| ] of one or more loαtbn hypotheses generated by one FOM, FOM[l], is compared with anothεr attribute value for A derived from a set S f0H2 of one or more loαtbπ hypotheses generated by a different FOM, F0M[2] for determining if these attribute values cluster (i.e., are sufficiently close to one another) so that a currently aαive loαtbn hypothεsis in S f0M [|] and a currently aαive loαtion hypothεsis in S f0M pj should have their confidences increased. For example, the attribute may bε a "target MS path data" attribute, wherein a value for the attribute is an estimated target MS path derived from bαtion hypothesεs generated

20 by a fixed FOM over some (recent) time period. Alternativεly, the attribute might be, for example, one of a velocity and/or acceleration, wherein a value for the attribute is a vebcity and/or acceleration derived from loαtion hypotheses generated by a fixed FOM over some (recent) time period.

In a general context, the attribute comparison module 1462 operates according to the folbwing premise: (38.1) for each of two or more currently aαivε loαtion hypothεsεs (with, ε.g., positive confidences) if:

25 (a) each of thesε currently aαivε taαtion hypothεses, H, was initially generated by a corresponding different FOM H ;

(b) for a given MS estimatε attribute and εach such currently aαive loαtion hypothesis, H, there is a corresponding value for the attribute (e.g., the attribute value might be an MS path εstimate, or alternatively an MS estimated vebcity, or an MS estimated acceleration), wherein the attribute value is derivεd without using a FOM different from FOM K , and;

(c) the derived attribute values cluster sufficiently well,

30 then each of these currently aαivε bαtion hypothεsεs, H, will havε thεir corresponding confidences increased.. That is, thesε confidences will be increased by a confidence adjustment value or delta.

Note that the phrase "cluster sufficiently well" above may have a numbεr of technical εmbodimεnts, including performing various clustεr analysis techniques wherein any clusters (according to some statistic) must satisfy a system set threshold for the members of the cluster being

cbse εnough to onε anothεr. Furthεr, upon dεtεrmining thε (any) bαtion hypothεsεs satisfying (38.1), thεre are various techniques that may be usεd in dεtermining a change or delta in confidences to bε appliεd. For example, in one embodimεnt, an initial default confidencε delta that may bε utilized is: if "cf ' denotes the confidence of such a currently aαive loαtion hypothesis satisfying (38.1), then an increased confidence that still remains in thε interval [0, 1.0] may bε: cf + [(I - d)/(l + rf )] or, cf * [1.0 + cf n ], n.= > 2, or, d * [a constant having a system tuned paramεter as a faαor] . That is, the confidencε deltas for thesε examples are: [(I -cf)/(l + cf)] 2 (an additive dεlta), and, [1.0 + d n ] (a multiplicative delta), and a constan Additionally, note that it is within the scope of the presεnt invention to also provide such confidεncε deltas (additive deltas or multiplicative dεltas) with faαors related to the number of such loαtion hypotheses in the cluster.

Moreover, note that it is an aspeα of thε presεnt invεntion to provide an adaptive mechanism (i.e., the adaptation engine 1382 shown in Figs.5, 6 and 8) for automatiαlly determining performance enhancing changes in confidence adjustmεnt values such as the confidence deltas for the present module. That is, such changes are determined by applying an adaptive mechanism, such as a genεtic algorithm, to a colleαion of "system paramεters" (including paramεters specifying confidence adjustment values as well as system paramεters of, for εxamplε, thε contεxt adjuster 1326) in ordεr to εnhancε performance of the present invention. More particularly, such an adaptive mechanism may repeatedly perform the folbwing steps: (a) modify such system parameters; (b) consequently aαivate an instantiation of the loαtbn engine 139 (having the modified system parameters) to process, as input a series of MS signal bαtion data that has beεn archived together with data corresponding to a verified MS bcation from which signal loαtion data was transmitted (e.g., such data as is stored in thε loαtbn signature data basε 1320); and (c) thεπ determine if the modifications to the system parameters enhancεd bαtion engine 139 performance in comparison to previous performancεs. Assuming this modulε adjusts confidences of currently active loαtion hypothesεs according to one or more of the attributes: target MS path data, targεt MS velocity, and target MS acceleration, the computation for this module may bε summarizεd in the following steps: (a) Determine if any of the currently aαive bαtion hypotheses satisfy the premise (38.1) for the attribute. Note that in making this determination, avεragε distances and average standard deviations for the paths (velocities and/or accelerations) corresponding to currently aαive location hypothesεs may be computed.. (b) For each currently aαivε loαtion hypothεsis (wherein "i" uniquely identifies the location hypothesis) seleαed to have its confidencε increased, a confidencε adjustmεnt valuε, path_similar(i) (alternatively, vεbchy_similar(i) and/or acce le ration_similar(i) ), is computed indiαting the extent to which the attribute value matches another attribute value bεing prediαed by another FOM. Notε that such confidence adjustment values are used later in the calculation of an aggregate confidence adjustment to particular currently aαive loαtion hypotheses.

Analytical Reasoner Controller

Given one or more currently aαivε locatbn hypothεsεs for the same target MS input to the analytical reasoner controller 1466, this controller activates, for each such input loαtbn hypothesis, the other submodules of thε analytical reasonεr module 1416 (dεnoted hereinafter as "adjustment submodules") with this loαtion hypothesis. Subsequently, the analytical reasoner controller 1466 receives an output confidence

adjustment valuε computed by each adjustment submodule for adjusting the confidence of this loαtion hypothεsis. Notε that εach adjustmεnt submodulε determinεs:

(a) whether the adjustment submodulε may appropriately compute a confidence adjustment valuε for thε loαtion hypothεsis suppliεd by thε controllεr. (For εxamplε, in some cases thεre may not bε a sufficient number of loαtion hypotheses in a time series from a fixed FOM);

(b) if appropriate, then the adjustment submodule computes a non-zero confidencε adjustmεnt valuε that is returned to the analytical reasoner controller.

Subsequently, the controller uses thε output from thε adjustmεnt submodulεs to compute an aggregate confidencε adjustmεnt for thε corresponding loαtion hypothesis. In one particular embodimεnt of the presεnt invεntion, values for the eight types of confidencε adjustment values (described in sections abovε) are output to thε present controller for computing an aggregate confidence adjustment value for adjusting thε confidεncε of thε currently aαive loαtion hypothesis presemly being analyzed by the analytical reasoner module 1416. As an examplε of how such confidεncε adjustmεnt values may be utilized, assuming a currently aαive loαtioπ hypothesis is identified by "i", the outputs from thε abovε described adjustment submodules may be more fully described as: ρath_match(i) I if there are sufficient prevbus (and recent) bcation hypothesεs for the same target MS as "i" that have been generated by the same FOM that generated "i", and, the target MS location estimates provided by the bαtioπ hypothesis "i" and the prevbus loαtion hypotheses follow a known transportation pathway. 0 otherwise. vel_ok(i) I if thε velocity calculated for the i lh currently aαive bαtion hypothεsis (assuming adεquatε corresponding path information) is typical for the area (and thε current environmental charaαeristics) of this loαtbn hypothesis' target MS bαtion estimate; 02 if the vebcity calculated for the i' currently aαive loαtion hypothesis is near a maximum for the area (and thε current environmental charaαeristics) of this bαtion hypothesis' target MS loαtion estimate;. 0 if thε velocity calculated is above the maximum. aα_ok(i) I if the acceleration calculated for the , 1 currently aαive location hypothesis (assuming adequate corresponding path information) is typical for the area (and thε current environmental charaαeristics) of this bcation hypothesis' target MS loαtion estimate; 02 if thε acceleration calculated for the t currently aαive bαtion hypothεsis is nεar a maximum for the area (and the current environmental charatteristics) of this loαtion hypothεsis' targεt MS loαtioπ εstimate;. 0 if thε acceleration calculated is above the maximum. simiiar_path(i) I if the loαtion hypothesis "i" satisfies (38.1) for the target MS path data attribute; 0 otherwise. velocity_similar(i) I if thε loαtioπ hypothεsis "i" satisfies (38.1) for the target MS velocity attribute; 0 otherwise.

acce te ratio n_si miiar (i) I if thε bαtion hypothεsis "i" satisHes (38.1) for thε target MS acceleration attribute; 0 otherwise. εxtrapolation_chk(i) I if the loαtion hypothesis "i" is "near" a previously prediαed MS bαtion for the target MS; 0 otherwise.

Additionally, for each of the above confidεnce adjustments, thεre is a corresponding locatbn eπginε 139 system sεtablε parameter whose value may be determined by repeated activation of the adaptation enginε 1382. Accordingly, for εach of the confidence adjustmεnt typεs, T, above, there is a corresponding system sεtable parameter, "alphaJT, that is tunable by thε adaptation εngiπε 1382. Accordingly, the folbwing high level program segment illustrates the aggregate confidencε adjustmεnt valuε computεd by thε Analytical Reasoner Controller.

target_MSJoc_hyps < — gεt al) currently aα ' rvε loαtbn hypothεsεs, H, identifying the present target ; foreach currently aαive locatbn hypothesis, hyp(i), from target_MS_loc_hyps do

{ for εach of thε confidence adjustment submodules, CA, do aαivate CA with hyp(i) as input; now compute the aggregate confidεncε adjustment using thε output from the confidence adjustment submodulεs. */ aggregate_adjustment(i) <— alpha_path_match * path_match(i) + alpha_vεlochy * vel_ok(i) + alpha_path_similar * path_similar(i) + alpha_vεbcrty_simiiar * vεtacity_similar(i) + alpha_accε!εration_simiiar* acceleration_similar(i)

-I- alpha_extrapolatbn * extrapolatioπ_chk(i); hyp(i).confidence <— hyp(i).confidence + aggregate_adjustmεnt(i); }

Historical Location Reasoner

The historical loαtion reasoner modulε 1424 may bε, for example, a daemon or expert system rule base. The module adjusts the confidences of currently aαivε location hypothεsεs by using (from location signature data base 1320) historical signal data correlated with: (a) verified MS locations (e.g. tacations verified when emergency personnel co-locate with a target MS location), and (b) various environmental faαors to evaluate how consistent the location signature cluster for an input location hypothesis agrees with such historical signal data.

This reasonεr will increase/decrease thε confidence of a currently active location hypothesis depending on how well its associated loc sigs correlate with the loc sigs obtained from data in the location signature data base.

Notε that thε εmbodimεnt hereinbelow is but one of many εmbodimεnts that may adjust thε confidεnce of currently aαive location hypothesεs appropriately. Accordingly, it is important to note other embodiments of the historical location reasonεr functionality are within the scope of the present invention as one skilled in the art will appreciate upon examining the techniques utilized within this specification. For examplε, calculations of a confidεnce adjustmεnt factor may be detεrminεd using Monte Carlo techniquεs as in the context adjuster 1326. Each such embodimεπt generates a measurement of at least one of the similarity and thε discrepancy between the signal charaαeristics of the verified loαtion signature clusters in thε location signature data basε and thε bcation signature clustεr for an input currently aαivε bcation hypothesis, "loc_hyp".

The embodiment hereinbelow provides one examplε of the funαionality that an be providεd by thε historical location rεasonεr 1424 (εithεr by aαivating thε following programs as a daemon or by transforming various program segments into the consequεπts of expert system rules). The prεsεnt εmbodimεnt gεnεratεs such a confidεncε adjustmεnt by thε folbwing stεps:

(a) comparing, foreach cell in a mesh covering of the most relεvaπt MS bcation estimate in "bc_hyp", the bcation signature cluster of thε "loc iyp" with thε verified bcation signature clusters in thε cell so that the folbwing are computed: (i) a discrepancy or error measurement is determined, and (ii) a corresponding measurεmεnt indicating a likεlihood or confidεncε of the discrepancy measuremεnt being relativεly accurate in comparison to othεr such error measurements; (b) computing an aggregate measurement of both the errors and the confidences determined in (a); and

(c) using the computed aggregate measurement of (b) to adjust the confidence of "bc_hyp".

The program illustrated in APPENDIX E provides a more detailed embodimεnt of the steps immediately above.

Location Extrapolator

The loαtion extrapolator 1432 works on the folbwing premise: if for a currently aαive locatbn hypothesis there is sufficient previous related information regarding estimates of the targεt MS (e.g., from the same FOM or from using a "most likely" prevbus target MS estimatε output by the loαtion engine 139), then an extrapolation may be performed for predicting future targεt MS loαtions that an be compared with new loαtion hypothesεs provided to the blackboard. Note that interpolation routines (e.g., conventional algorithms such as Lagrange or Newton polynomials) may be used to detεrminε an εquation that approximates a target MS path corresponding to a currently aαive location hypothesis.

Subsequεntly, such an extrapolation equation may be used to compute a future target MS loαtion. For further information regarding such interpolation schemes, thε following reference is incorporated herein by reference: Mathews, 1992, Numerical methods for mathεmatiα, sriεncε, and engineering. Englewood Cliffs, NJ: Prent ε Hall. Accordingly, if a new currently aα ' rve location hypothesis (e.g., supplied by the context adjuster) is received by the blackboard, then the target MS loαtion estimate of the new location hypothesis may bε compared with the prediαed loαtbn. Consequently, a confidencε

adjustment value n bε determined according to how well if the loαtion hypothesis "i" . That is, this confidencε adjustment value will be larger as the new MS estimate and thε predktεd estimate becomε closer together.

Note that in one embodiment of the present invεntion, such prediαions are basεd solely on previous target MS bαtion estimatεs output by loαtion enginε 139. Thus, in such an εmbodimεnt, substantially every currently aαive location hypothesis an be provided with a confidεncε adjustment value by this module once a sufficient number of prevbus targεt MS bcation estimates have been output Accordingly, a value, extrapolatioπ_chk(i), that represents how accurately thε new currently aαive loαtion hypothesis (identified here by "i") matches the prediαed bcation is determined.

Hypothesis Generating Module

The hypothesis generating module 1428 is used for genεrating additional loαtbn hypothεsεs according to, for εxamplε, MS loαtbn information not adεquately utilizεd or modεlεd. Note, loαtion hypothεses may also bε decomposed here if, for εxamplε it is determined that a loαtbn hypothεsis includes an MS area estimate that has subareas with radially different characteristics such as an arεa that includes an uninhabited area and a densely populated area. Additionally, the hypothesis genεrating module 1428 may generate "poor reception" loαtion hypothesεs that specify MS bαtion areas of known poor reception that are "near" or iπtεrsεα currently aαive bcation hypotheses. Note, that these poor reception location hypothεsεs may bε specially tagged (e.g., with a distinαive FOMJD value or specific tag field) so that regardless of substantially any other loαtbn hypothesis confidence value overlapping such a poor reception area, such an area will maintain a confidencε value of "unknown" (i.e., zero). Note that substantially the only excεption to this constraint is location hypothεses genεrated from mobilε base stations 148.

Mobile Basε Station Location Subsystem Description

Mobile Base Station Subsystem Introduction

Any collection of mobile eleαronics (denoted mobile bcation unit) that is able to both estimatε a location of a targεt MS 140 and communicate with thε base station network may be utilized by thε prεsεnt invεntion to more accurately locate the target MS. Such mobile location units may providε greater targεt MS loαtion accuracy by, for example, homing in on the target MS and by transmitting additional MS loαtion information to the bcation centεr 142. Thεre are a numbεr of embodiments for such a mobile location unit contemplated by the present invention. For examplε, in a minimal vεrsion, such the eleαronics of the mobile location unit may be little more than an onboard MS 140, a sεctored/direαional antenna and a controller for communicating between thε . Thus, the onboard MS is used to communicate with the location centεr 142 and possibly the target MS 140, while the antenna monitors signals for homing in on the target MS 140. In an enhanced version of the mobile locatbn unit, a GPS recεivεr may also bε incorporated so that thε location of thε mobilε location unit may bε dεtεr inεd and consequently an estimatε of thε location of thε targεt MS may also bε dεtεrminεd. Howεvεr, such a mobilε location unit is unlikely to be able to determinε substantially more than a direαion of the target MS 140 via the seαored/dirεctional antenna without furthεr basε station infrastruαure cooperation in, for example, determining the transmission power lεvel of the target MS or varying this power ievεl. Thus, if thε targεt MS or thε mobilε location unit lεavεs the coveragε arεa 120 or residεs in a poor communication arεa, it may bε difficult to accurately determine where thε target MS is located. Nonε-thε-lεss, such mobile bcation units may be sufficient for many situations, and in fact the present invention contemplates thεir usε. However, in cases where direct communication with the target MS is desired without constant contaα with the basε station infrastructure, thε present invention includes a mobile location unit that is also a scaled down version of a base station 122. Thus, given that such a mobile basε station or MBS 148 includes at least an onboard MS 140, a seαored/dirεαionai antenna, a GPS recεivεr, a scalεd down base station 122 and sufficient components (including a controller) for integrating thε capabilities of thesε dεvicεs, an επhaπcεd autonomous MS mobilε location systε can be providεd that can bε effectively used in, for examplε, emergency vehicles, air planes and boats. Accordingly, thε description that follows below describes an embodiment of an MBS 148 having the above mεntioned components and capabilities for use in a vehicle.

As a consequεncε of thε MBS 148 being mobile, there are fundamεntal diffεrεnces in the operation of an MBS in comparison to other types of BS's 122 (152). In particular, other types of base stations have fixεd locations that are precisely dεtεrminεd and known by the loαtion center, whereas a locatbn of an MBS 148 may bε known only approximately and thus may require rεpεated and frequent re-estimating. Secondly, other types of base stations have substantially fixed and stable communication with the bcation center (via possibly other BS's in thε casε of LBSs 152) and therefore although thesε BS's may be more reliable in their in their ability to communicate information related to the bcation of a targεt MS with the bcation centεr, accuracy can bε problεmatic in poor reception areas. Thus, MBS's may be used in areas (such as wilderness areas) where there may be no other means for reliably and cost effectively locating a target MS 140 (i.e., there may be insufficient fixed location BS's coverage in an area).

Fig. 11 providεs a high lεvεl block diagram architecture of onε εmbodimeπt of the MBS loαtion subsystem 1508. , Accordingly, an MBS may include components for communicating with the fixed location BS network infrastructure and thε location cεntεr 142 via an on-board transceiver 1512 that is effectively an MS 140 integrated into the bcation subsystem 1508. Thus, if the MBS 148 travels through an area having poor infrastruαure signal covεragε, thεn thε MBS may not bε ablε to communicate reliably with the bcation center 142 (e.g., in rural or mountainous areas having reduced wirelεss telephony covεragε). So it is desirable that thε MBS 148 must bε capable of functioning substantially autonomously from the location center. In one embodiment, this implies that each MBS 148 must be capable of estimating both its own bcation as well as thε bcation of a targεt MS 140.

Additionally, many co mεrcial wirelεss tεlεphony technologies require all BS's in a nεtwork to be very accurately time synchronized both for transmitting MS voice communication as well as for other services such as MS bcation. Accordingly, the MBS 148 will also require such time synchronization. Howevεr, sincε an MBS 148 may not bε in constant communication with thε fixεd location BS nεtwork (and indεεd may bε off-line for substantial periods of time), on-board highly accurate timing devicε may be necessary, in one embodimεnt, sudi a dεvicε may be a commercially available ribidium oscillator 1520 as shown in Fig. I I.

Since the MBS 148 , includes a scaled down version of a BS 122 (denotεd 1522 in Fig. 11), it is capable of performing most typical BS 122 tasks, albeit on a reducεd scale. In particular, thε basε station portion of the MBS 148 can: (a) raise lower its pilot channεl signal strength,

(b) bε in a state of soft hand-off with an MS 140, and/or

(c) bε the primary BS 122 for an MS 140, and consεquently bε in voicε communication with thε targεt MS (via thε MBS operator tεlεphony interface 1524) if the MS supports voice commuπiαtion. further, the MBS 148 can, if it becomεs the primary base statbn communicating with the MS 140, request the MS to raise lower its power or, more generally, control the communication with the MS (via the base station components 1522). Howevεr, sincε thε MBS 148 will likely have substantially reduced teiεphony traffic capacity in comparison to a standard infrastruαurε basε station 122, notε that the pilot channεl for the MBS is preferably a nonstandard pilot channεl in that it should not be identiiiεd as a conventional tεlεphony traffic bεaring BS 122 by MS's sεeking normal telephony communication. Thus, a target MS 140 requesting to be located may, depending on its αpabiiities, either automatically configure itself to scan for certain predetermined MBS pilot channels, or be instruαed via thε fixεd bcation base station nεtwork (equivalently BS infrastruαurε) to scan for a cεrtain predεtεrmined MBS pilot channεl.

Moreover, the MBS 148 has an additional advantage in that it can substantially increasε the reliability of communication with a target MS 140 in comparison to the base statbn infrastruαure by being able to move toward or track thε target MS 140 evεn if this MS is in (or movεs into) a rεducεd infrastruαure basε station nεtwork covεrage area. Furthermore, an MBS 148 may preferably use a direαional or smart antenna 1526 to more accurately locate a direαion of signals from a target MS 140. Thus, the sweεping of such a smart antenna 1526 (physically or electronically) providεs direαional information regarding signals recεived from the target MS 140. That is, such direαional information is determined by the signal propagation delay of signals from the target MS 140 to the angular seαors of one of more direαional antennas 1526 on-board the MBS 148.

Before proceεding to furthεr details of the MBS locatbn subsystem 1508, an examplε of the operation of an MBS 148 in the context of responding to a 911 emergency call is given. In particular, this εxamplε dεscribεs the high level computational states through which the MBS 148 transitions, thesε states also bεing illustrated in thε state transition diagram of Fig. 12. Notε that this figure illustrates the primary state transitions between thesε MBS 148 states, wherein the solid state transitions are indicativε of a typical "ideal" progression whεπ locating or tracking a targεt MS 140, and thε dashεd state transitions are the primary state reversions due, for εxa ple, to difficulties in locating the target MS 140.

Accordingly, initially the MBS 148 may bε in an inaα ' rve state 1700, wherein the MBS bcation subsystem 1508 is effεαively available for voice or data communication with the fixεd location basε station nεtwork, but thε MS 140 locating capabilities of thε MBS are not aαive. From the iπaαive state 1700 the MBS (e.g., a police or rescue vehiclε) may εntεr an aαivε state 1704 once an MBS operator has logged onto thε MBS bcation subsystem of thε MBS, such logging bεing for authentication, verification and journaling of MBS 148 evεnts. In thε active state 1704, the MBS may be listed by a 911 emergency center and/or the location centεr 142 as eligible for service in responding to a 911 requεst. From this state, the MBS 148 may transition to a ready state 1708 signifying that the MBS is ready for usε in locating and/or intεrcεpting a targεt MS 140. That is, thε MBS 148 may transition to thε ready state 1708 by performing the folbwing steps: (la) Synchronizing the timing of the bcation subsystem 1508 with that of thε base station nεtwork infrastructure. In one εmbodimεnt, whεn requesting such time synchronization from the base station infrastruαure, the MBS 148 will be at a predetermined or well known bcation so that the MBS time synchronization may adjust for a known amount of signal propagation delay in the synchronization signal, (lb) Establishing the location of the MBS 148. In one εmbodimεnt, this may bε accomplished by, for example, an MBS operator identifying thε predetermined or well known bcation at which the MBS 148 is located.

(Ic) Communicating with, for εxamplε, the 911 emεrgεncy center via thε fixed location basε station infrastruαurε to identify the MBS 148 as in thε ready state.

Thus, whilε in thε ready state 1708, as the MBS 148 moves, it has its location repεatedly (re)-estimatεd via, for example, GPS signals, location center I42S location estimates from the base stations 122 (and 152), and an on-board deadreckoning subsystem 1527 having an MBS location εstimator according to thε programs dεscribεd hereinbelow. Howevεr, notε that thε accuracy of thε base station time synchronization (via thε ribidiu oscillator 1520) and the accuracy of the MBS 148 bαtion may neεd to both bε periodically recalibrated according to (la) and (lb) abovε.

Assuming a 911 signal is transmitted by a targεt MS 140, this signal is transmitted, via thε fixed bcation base station infrastructure, to thε 911 emergεncy center and the locatbn centεr 142, and assuming thε MBS 148 is in thε ready state 1708, if a corresponding 911 εmεrgεncy rεquεst is transmitted to thε MBS (via the base station infrastruαure) from the 911 emergεncy cεntεr or thε location centεr, thεn thε MBS may transition to a sεεk state 1712 by performing thε following steps:

(2a) Communicating with, for examplε, thε 911 εmεrgεπcy response center via the fixed bcation base station nεtwork to recεivε thε PN code for the target MS to be located (wherein this communication is performed using the MS-like transceiver 1512 and/or the MBS operator telephony interface 1524).

(2b) Obtaining a most rεcεnt target MS location estimate from eithεr the 911 emergency centεr or the bcation centεr 142. (2c) Inputting by thε MBS opεrator an acknowlεdgmεnt of thε targεt MS to bε located, and transmitting this acknowledgment to the 911 emεrgεncy response centεr via the transceiver 1512.

Subsequεπtly, when the MBS 148 is in thε sεεk state 1712, thε MBS may commεπcε toward thε targεt MS location estimate provided. Note that it is likely that the MBS is not initially in direα signal contaα with the target MS. Accordingly, in the seek state 1712 the folbwing steps may be, for examplε, performed:

(3a) The loαtion centεr 142 or thε 911 emergεncy response center may inform the target MS, via the fixed bcation base station network, to lower its threshold for soft hand-off and at least periodically boost its bcation signal strength. Additionally, thε targεt MS may be informed to sαn for the pilot channel of thε MBS 148. (Note the aαions here are not, aαions performed by the MBS 148 in the "seek state"; howevεr, thεse aαions are given here for clarity and completeness.) (3b) Repεatεdly, as sufficiεnt nεw MS location information is available, the bcation centεr 142 providεs nεw MS location estimates to the MBS 1 8 via thε fixεd bcation base station network. (3c) The MBS repεatεdly providεs the MBS opεrator with nεw targεt MS location εstimates provided substantially by the location center via the fixed bcation base station network.

(3d) The BS 148 repeatedly attempts to dεtεα a signal from thε targεt MS using thε PN codε for the target MS. (3e) The MBS 148 repeatedly estimates its own location (as in other states as well), and receives MBS location estimatεs from thε location cεnter.

Assuming that the MBS 148 and target MS 140 deteα one another (which typically occurs when the two units are within .25 to 3 miles of one another), the MBS εntεrs a contaα state 1716 when the targεt MS 140 εntεrs a soft hand -off state with the MBS. Accordingly, in the contaα state 1716, the following steps are, for example, performed: (4a) The MBS 148 repeatedly estimatεs its own bcation.

(4b) Repeatedly, the location centεr 142 providεs nεw targεt MS 140 and MBS location εstimatεs to the MBS 148 via the fixed location base infrastruαure network.

(4c) Since the MBS 148 is at least in soft hand-off with the targεt MS 140, thε MBS an estimate the direαion and distance of thε targεt MS itself using, for εxamplε, deteαed target MS signal strength and TOA as well as using any recεnt location cεntεr targεt MS bcation εstimatεs. (4d) Thε MBS 148 repeatedly provides the MBS operator with new target MS bcation estimates provided using MS location estimates providεd by thε MBS itsεlf and by thε location center via the fixed bcation base station network.

When the target MS 140 deteαs that thε MBS pilot channel is sufficiently strong, the target MS may switch to using the MBS 148 as its primary base station. When this occurs, the MBS enters a control state 1720, wherein the following steps are, for example, performed:

(5a) The MBS 148 repeatedly estimatεs its own loαtion.

(5b) Repeatedly, the location center 142 provides new target MS and MBS location estimatεs to the MBS 148 via the network of base stations 122 (152). (5c) The MBS 148 estimates the direαion and distancε of thε targεt MS 140 itself using, for example, deteαed target MS signal strength and TOA as wεll as using any recεnt bcation cεnter target MS location estimates.

(5d) The MBS 148 repeatedly providεs thε MBS operator with new target MS ioαtion estimates providεd using MS location εstimatεs providεd by thε MBS itsεlf and by thε locatbn center 142 via the fixεd location base station network. (5e) The MBS 148 becomes the primary base statbn for the targεt MS 140 and therefore controls at least the signal strength output by the target MS. Note, there can be more than one MBS 148 tracking or locating an MS 140. Thεre can also bε more than onε targεt MS 140 to bε tracked concurrently and each targεt MS bεing tracked may bε stationary or moving.

MBS Subsystεm Architεcture

An MBS 148 uses MS signal characteristic data for locating thε MS 140. Thε MBS 148 may usε such signal charaαeristic data to facilitate determining whεthεr a given signal from the MS is a "direα shot" or an multipath signal. That is, in oπε εmbodimεnt, thε MBS 148 attempts to determine or detect whether an MS signal transmission is received direαly, or whεthεr thε transmission has been reflected or deflected. For example, the MBS may determine whether the expeαed signal strength, and TOA agrεε in distancε estimates for thε MS signal transmissions. Notε, othεr signal characteristics may also be used, if there are sufficient eleαronics and processing available to the MBS 148; i.e., dεtermining signal phasε and/or polarity as othεr indications of receiving a "direα shot" from an MS 140. In one embodiment, the MBS 148 (Fig. II) includes an MBS controller 1533 for controlling thε bcation capabilities of the MBS

148. In particular, thε MBS controller 1533 initiates and controls the MBS state changes as described in Fig. 12 above. Additionally, the MBS controller 1533 also communiαtes with the locatbn controller 1535, wherein this latter controller controls MBS aαivities related to MBS location and target MS location; e.g., this performs the program, "mobile_basε_station_controller" described in APPENDIX A hereinbelow. The bcation controller 1535 recεivεs data input from an event generator 1537 for generating event records to be provided to the loαtion controller 1535. For examplε, records may bε generated from data input received from: (a) the vehiclε ovεmεnt dεtεαor 1539 indiαting that thε MBS 148 has movεd at least a predεtεrminεd amount and/or has changεd direαion by at iεast a predetermined aπglε, or (b) the MBS signal processing subsystem 1541 indicating that the additional signal measuremεnt data has bεεn received from eithεr thε bcation cεntεr 142 or the target MS 140. Note that the MBS signal processing subsystem 1541 , in one embodiment, is similar to the signal processing subsystem 1220 of the location center 142. may havε multiplε command schεdulers. In particular, a scheduler 1528 for commands related to communicating with the bcation center 142, a schedulεr 1530 for commands related to GPS communication (via GPS receiver 1531), a schedulεr 1529 for commands related to thε frequency and granularity of the reporting of MBS changes in direαion and/or position via the MBS dead reckoning subsystem 1527

(note that this schedulεr is potentially optional and that such commands may be provided direαly to the deadrεckoning εstimator 1544), and a scheduler 1532 for communicating with the targεt MS(s) 140 being located. Furthεr, it is assumεd that thεre is sufficiεnt hardware and/or software to appear to perform commands in different schedulers substantially concurrently. In order to display an MBS computed bcation of a target MS 140, a location of the MBS must be known or detεrmiπεd. Accordingly, εach MBS 148 has a plurality of MBS location εstimators (or hεreinafter also simply referred to as location estimators) for determining the bcation of the MBS. Each such bcation estimator computes MBS locatbn information such as MBS loαtion estimates, changes to MBS bcation estimates, or, an MBS location estimator may be an interface for buffering and/or translating a previously computed MBS loαtion estimate into an appropriate format. In particular, the MBS bcation module 1536, which determines the location of the MBS, may include thε following MBS bcation εstimators 1540 (also dεnotεd baseline location estimators):

(a) a GPS location estimator 1540a (not individually shown) for computing an MBS bcation estimate using GPS signals,

(b) a loαtion centεr location εstimator 1540b (not individually shown) for buffering and/or translating an MBS estimatε received from the location center 142,

(c) an MBS operator locatbn estimator 1540c (not individually shown) for buffering and/or translating manual MBS location entriεs received from an MBS location operator, and

(d) in some MBS embodiments, an LBS location εstimator I540d (not individually shown) for thε activating and dεactivating of LBS's 152. Note that, in high multipath areas and/or stationary base station marginal coveragε areas, such low cost location base statbns 152 (LBS) may be provided whose locations are fixed and accuratεly predetermined and whose signals are substantially only receivable within a relativεly small range (e.g., 2000 feεt), thε range potentially being variable. Thus, by communicating with the LBS's 152 direαly, the MBS 148 may be able to quickly usε thε locatbn information relating to the bcation base stations for determining its location by using signal charaαeristics obtained from the LBSs 152. Note that each of the MBS baseline location εstimators 1540, such as thosε abovε, providε an actual MBS locatbn rather than, for example, a change in an MBS bcation. Further note that it is an aspect of the present invention that additional MBS baselinε location estimators 1540 may be easily integrated into the MBS bcation subsystem 1508 as such baseline bcation estimators become available. For example, a baseline bcation estimator that receives MBS loαtion estimates from reflective codes providεd, for examplε, on streets or street signs can bε straightforwardly incorporated into the MBS locatbn subsystem 1508.

Additionally, note that a plurality of MBS location technologies and thεir corresponding MBS location estimators are utilized due to the faα that there is currently no single locatbn technology available that is both sufficiently fast, accurate and accessible in substantially all terrains to meεt the loαtbn nεεds of an MBS 148. For example, in many terrains GPS technologiεs may bε sufficiently accurate; howεvεr, GPS technologies: (a) may require a relatively longtime to provide an initial location estimatε (ε.g., greater than 2 minutes); (b) whεn GPS communication is disturbed, it may require an equally long time to provide a new location estimate; (c) clouds, buildings and/or mountains can prevent bcation estimates from being obtained; (d) in some cases signal reflections can substantially skew a location estimate. As another example, an MBS 148 may be able to use triangulation or

trilateraiization technologies to obtain a location estimate; howevεr, this assumes that there is sufficient (fixed location) infrastructure BS coverage in the area the MBS is located. Further, it is well known that the multipath pheno εnon can substantially distort such location εstimatεs. Thus, for an MBS 148 to bε highly εffεαivε in variεd terrains, an MBS is provided with a plurality of loαtion technologies, each supplying an MBS location estimatε. In fact, much of the architeαure of the location engine 139 could be incorporated into an MBS 148. For example, in some embodimεnts of thε MBS 148, thε following FOMs 1224 may havε similar location modεls incorporatεd into the MBS:

(a) a variation of the distance FOM 1224 wherein TOA signals from communicating fixεd location BS's are received (via the MBS transceiver 1512) by the MBS and used for providing a bcation estimate;

(b) a variation of the artificial neural net based FOMs 1224 (or more generally a ioαtion learning or a classification model) may be used to provide MBS location estimatεs via, for εxamplε, learned associations between fixed location

BS signal charaαeristics and geographic locations;

(c) an LBS bcation FOM 1224 for providing an MBS with the ability to activate and deaαivatε LBS's to providε (positive)

MBS bcation εstimates as wεll as nεgativε MBS bcation regions (i.ε., regions where the MBS is unlikely to be since one or more LBS's are not deteαed by the MBS transceiver); (d) one or more MBS location reasoning agents and/or a locatbn estimate heuristic agents for resolving MBS bcation estimatε conflicts and providing greater MBS bcation estimatε accuracy. For εxamplε, modulεs similar to thε analytical rεasonεr modulε 1416 and thε historical locatbn rεasonεr modulε 1424. However, for those MBS location models requiring communication with the basε station infrastruαure, an alternative embodiment is to rely on the bcation center 142 to perform the computations for at least somε of these MBS FOM models. That is, since each of the MBS location models mentionεd immediately above require communication with the network of fixed location BS's 122 (152), it may be advantageous to transmit MBS bcation estimating data to the location center 142 as if the MBS were another MS 140 for the location center to locate, and thereby rely on the location estimation capabilities at the location center rather than duplicate such models in the MBS 148. The advantages of this approach are that:

(a) an MBS is likely to be able to use less expensive processing power and software than that of the location cεntεr; (b) an BS is likely to require substantially less memory, particularly for data bases, than that of the location centεr.

As will be discussed further below, in one embodimεnt of thε MBS 148, thεrε are confidεncε valuεs assigned to the locations output by the various location εstimators 1540. Thus, the confidence for a manual entry of location data by an MBS operator may be rated the highest and followed by the confidence for (any) GPS bcation data, followed by the confidencε for (any) location center location 1 2 estimates, followed by the confidεncε for (any) location εstimatεs using signal characteristic data from LBSs. However, such prioritization may vary depεnding on, for instancε, the radio coveragε area 120. In an onε εmbodimεnt of thε present invention, it is an aspect of the present invention that for MBS bcation data received from the GPS and locatbn center, their confidences may vary according to the area in which the MBS 148 resides. That is, if it is known that for a given area, there is a reasonable probability that a GPS signal may suffer multipath distortions and that the location center has in the past provided reliable location estimates, then the confidences for these two location sources may be reversed.

In onε embodiment of thε present invεntion, MBS operators may be requested to occasionally manually enter the location of the MBS 148 when the MBS is stationary for determining and/or calibrating the accuracy of various MBS loαtion εstimators.

There is an additional important sourcε of location information for thε MBS 148 that is incorporated into an MBS vehicle (such as a police vehicle) that has no comparable fuπαbnality in the network of fixed bcation BS's. That is, thε MBS 148 may usε deadreckoning information provided by a deadreckoning MBS bcation estimator 1544 whereby the MBS may obtain MBS deadreckoning location change estimates. Accordingly, the deadreckoning MBS bcation estimator 1544 may use, for example, an on¬ board gyroscope 1550, a wheel rotation measurement devicε (ε.g., odometer) 1554, and optionally an accelεromεtεr (not shown). Thus, such a dεadrεckoπing MBS location εsti ator 1544 periodically providεs at lεast MBS distance and direαional data related to MBS move εnts from a most recent MBS bcation εstimate. More precisely, in the abseπcε of any othεr nεw MBS loαtion information, thε dεadrεckoning MBS bcation estimator 1544 outputs a seriεs of mεasurements, wherein each such measurement is an estimated change (or delta) in the position of the MBS 148 between a request input timestamp and a closest time prior to the timestamp, wherein a previous deadreckoning terminated. Thus, εach dεadrεckoning bcation changε estimate includes the folbwing fields:

(a) an "earliest timestamp" field for designating the start time when the dεadreckoning location change estimatε commεncεs mεasuring a changε in thε location of thε MBS;

(b) a "latest timεstamp" fiεld for designating the end time when the deadreckoning bcation change estimate stops measuring a change in the bcation of the MBS; and

(c) an MBS loαtion change veαor.

That is, the "latest timestamp" is the timestamp input with a request for deadreckoning bcation data, and thε "earliest timestamp" is the timεstamp of thε closεst timε, T, prior to thε latεst timεstamp, wherein a previous dεadrεckoniπg output has its a timεstamp at a time εqual to T.

Further, the frequency of such measur mεnts provided by the deadreckoning subsystem 1527 may be adaptively providεd depending on the velocity of the MBS 148 and/or the elapsed time since the most recent MBS locatbn update. Accordingly, the architeαure of at least some embodimεnts of thε MBS bcation subsystem 1508 must be such that it can utilize such deadreckoning information for estimating the loαtion of thε MBS 148.

In onε εmbodimεnt of thε MBS bcation subsystem 1508 dεscribεd in furthεr detail hereinbelow, the outputs from the deadreckoning MBS location estimator 1544 are used to synchronize MBS loαtion estimatεs from different MBS basεline bcation estimators. That is, since such a deadreckoning output may be requested for substantially any time from the deadreckoning MBS loαtion estimator, such an output can be requested for substantially the same point in time as the occurrence of the signals from which a new MBS baseline bcation estimatε is derived. Accordingly, such a deadreckoning output can be used to update othεr MBS location estimates not using the new MBS baseline bcation estimate.

It is assumed that the εrror with dεad reckoning increases with dεadrεckoning distancε. Accordingly, it is an aspεct of thε εmbodimεnt of thε MBS locatbn subsystem 1508 that whεn incrementally updating thε locatbn of the MBS 148 using deadreckoning and applying deadreckoning location changε estimates to a "most likely area" in which the MBS 148 is believed to be, this area is

incrementally enlarged as well as shifted. The enlargement of the area is used to account for the inaccuracy in the deadreckoning capability. Note, however, that the deadreckoning MBS location estimator is periodically reset so that the error accumulation in its outputs can be decreased. In particular, such resetting occurs whεn thεre is a high probability that the location of the MBS is known. For example, the deadreckoning MBS location estimator may be resεt when an MBS operator manually enters an MBS location or verifies an MBS bcation, or a computed MBS bcation has sufficiently high confidence.

Thus, due to the MBS 148 having less accurate location information (both about itself and a target MS 140), and further that deadreckoning information must be utilized in maintaining MBS bcation εstimatεs, a first εmbodimεnt of thε MBS location subsystem architeαure is somewhat different from the location engine 139 architeαure. That is, the architeαure of this first embodiment is simpler than that of the architeαure of the loαtion εnginε 139. Howiver, it important to note that, at a high level, the architεαure of thε loαtion επginε 139 may also bε appliεd for providing a sεcond εmbodimεnt of thε MBS bcation subsystem 1508, as onε skillεd in thε art will appr ciatε after reflecting on the architeαures and procεssing providεd at an MBS 1 8. For example, an MBS bcation subsystem 1508 architeαure may be provided that has one or more first order models 1224 whose output is supplied to, for example, a blackboard or expert system for resolving MBS location estimatε confliαs, such an architeαure being analogous to one embodiment of the location enginε 139 architecture. Furthermore, it is also an important aspeα of thε presεπt invεntioπ that, at a high level, the MBS bcation subsystem architeαure may also be applied as an alternative architecture for the location engine 139. For example, in one embodimεnt of the loαtion enginε 139, εach of thε first ordεr modεls 1224 may providε its MS bcation hypothεsis outputs to a corresponding "location track," analogous to thε MBS location tracks described hereinbelow, and subsequently, a most likely MS current bcation estimatε may bε developed in a "current location track" (also describεd hereinbelow) using the most recent location estimates in other location tracks.

Further, note that thε idεas and mεthods discussεd here relating to MBS location εstimators 1540 and MBS location tracks, and, thε related programs hereinbelow are sufficiently general so that thesε idεas and mεthods may bε appliεd in a numbεr of contexts related to dεtermining the location of a devicε capablε of movεmεnt and wherein the location of the device must be maintained in real time. For example, the present ideas and methods may be used by a robot in a very cluttered environment (e.g., a warehouse), wherein the robot has access: (a) to a plurality of "robot bcation estimators" that may provide the robot with sporadic location information, and (b) to a deadreckoning bcation estimator.

Each MBS 148, additionally, has a loαtion display (denotεd the MBS operator visual user interface 1558 in Fig. I I) where area maps that may be displayed together with location data. In particular, MS location data may be displayed on this display as a nested colleαion of areas, each smaller πεstεd arεa bεing the most likely area within (any) encompassing area for locating a targεt MS 140. Notε that thε MBS controller algorithm below may bε adapted to receive location center 142 data for displaying the locations of other MBSs 148 as well as target MSs 140.

Further, the MBS 148 may constrain any bcation estimatεs to streets on a street map using the MBS bcation snap to street module 1562. For εxa ple, an estimated MBS location not on a street may bε "snapped to" a nearest street location. Note that a nearest streεt location dεterminer may usε "normal" orientations of vehicles on streets as a constraint on the nearest street location.

Particularly, if an MBS 148 is moving at typical rates of speεd and acceleration, and without abrupt changes direαion. For example, if the deadreckoning MBS bcation estimator 1544 indicates that thε MBS 148 is moving in a northerly direαion, then the street snapped to should be a north-south running streεt. Moreover, the MBS bcation snap to street module 1562 may also be used to enhance target MS bcation εstimatεs whεn, for εxamplε, it is known or suspεαed that the target MS 140 is in a vehicle and the vehicle is moving at typical rates of speεd. Furthermore, the snap to streεt bcation module 1562 may also bε used in enhancing the location of a target MS 140 by eithεr thε MBS 148 or by thε locatbn εnginε 139. In particular, thε location εstimator 1344 or an additional modulε between thε location εstimator 1344 and thε output gateway 1356 may utilize an εmbodimεnt of thε snap to streεt location module 1562 to enhance the accuracy of target MS 140 bcation estimatεs that are known to bε in vεhiclεs. Notε that this may be especially useful in locating stolen vehiclεs that have embedded wireless bαtion transceivers (MSs 140), wherein appropriate wireless signal measurements απ be provided to thε location center 142.

MBS Data Struαure Rεmarks

Assuming thε εxistεncε of at least some of the locatbn estimators 1540 that were mentioned above, thε discussion here refers substantially to the data struαures and their organization as illustrated in Fig. 13.

The location estimates (or hypotheses) for an MBS 148 determining its own loαtion each have an εrror or rangε εstimate associated with thε MBS location estimate. That is, each such MBS location estimatε includεs a "most likεly MBS point locatbn" within a "most likely area". The "most likely MBS point location" is assumed herein to be the centroid of the "most likεly area." In one embodiment of the MBS location subsystem 1508, a nεstεd sεriεs of "most likεly areas" may be provided about a most likely MBS point bcation. However, to simplify the discussion herein each MBS location estimate is assumed to have a single "most likely area". One skilled in the art will understand how to provide such nested "most likεly arεas" from thε dεscription hεrεin. Additionally, it is assumεd that such "most likεly arεas" are not grossly oblong; i.ε., arεa cross seαioning lines through the centroid of the area do not have large differencεs in thεir lengths. For examplε, for any such "most likεly arεa", A, no two such cross seαioning lines of A may have lengths that vary by more than a factor of two.

Each MBS location estimatε also has a confidεncε associated therewith providing a measurement of the percεivεd accuracy of thε MBS being in the "most likely area" of the location estimate. A (MBS) "location track" is an data struαure (or objεct) having a quεuε of a prεdeterminεd lεngth for maintaining a temporal

(timεstamp) ordεring of "locatbn track entries" such as the loαtion track entriεs 1770a, 1770b, 1774a, 1774b, 1778a, 1778b, 1782a, 1782b, and 1786a (Fig. 13), wherein each such MBS locatbn track entry is an estimatε of the bcation of the MBS at a particular corresponding time.

There is an MBS loαtion track for storing MBS location entries obtained from MBS bcation estimation information from each of thε MBS basεlinε loαtion εstimators dεscribεd abovε (i.ε., a GPS bcation track 1750 for storing MBS bcation εstimatioπs obtainεd from thε GPS location εstimator 1540, a locatbn cεntεr location track 1754 for storing MBS bcation εstimatioπs obtained from the location estimator 1540 deriving its MBS bcation estimatεs from thε loαtion cεnter 142, an LBS bcation track 1758 for storing MBS

location estimations obtained from thε bcation εstimator 1540 dεriving its MBS bcation εstimatεs from basε stations 122 and/or 152, and a manual locatbn track 1762 for MBS opεrator επtered MBS locations). Additionally, thεrε is one further bcation track, denotεd thε "current location track" 1766 whose bcation track entries may be derivεd from thε entries in the other location tracks (describεd further hereinbelow). Further, for each bcation track, there is a loαtion track head that is the head of the queuε for thε location track. The location track head is the most recεnt (and presumably the most accurate) MBS location estimate residing in the loαtion track. Thus, for the GPS bcation track 1750 has bcation track head 1770; the bcation center loαtion track 1754 has location track head 1774; the LBS bcation track 1758 has loαtioπ track head 1778; the manual locatbn track 1762 has location track head 1782; and the current location track 1766 has location track head 1786. Additionally, for notational conveniencε, for each loαtion track, the time seriεs of previous MBS bcation εsti ations (i.ε., bcation track επtriεs) in the location track will herein be denoted the "path for the bcation track." Such paths are typically thε lεngth of thε location track queue containing the path. Note that the length of each such queuε may bε dεtεrmined using at least thε folbwing considerations:

(i) In cεrtain circumstances (described hereinbelow), the location track entriεs are r movεd from thε hεad of the location track queuεs so that bcation adjustments may be made, in such a case, it may be advantageous for the length of such queuεs to be greater than the number of entriεs that are expeαεd to bε rεmovεd; (ii) In determining an MBS bcation estimate, it may be desirablε in somε εmbodimεnts to providε nεw location εstimatεs basεd on paths associated with prevbus MBS bcation estimates provided in the corresponding bcation track queuε. Also notε that it is within thε scope of the presεnt invention that the location track queue lengths may be a lεngth of one. Regarding bcation track entriεs, εach locatbn track entry includes: (a) a "derived location estimatε" for thε MBS that is dεrivεd using at lεast onε of:

(i) at lεast a most recent previous output from an MBS baseline location estimator 1540 (i.ε., the output being an

MBS location estimatε); (ii) deadreckoning output information from thε deadreckoning subsystem 1527. Further note that each output from an MBS bcation εstimator has a "type" field that is usεd for identifying thε MBS location estimator of the output.

(b) an "earliest timestamp" providing the time/date when the earliest MBS bcation information upon which the derivεd loαtion εstimate for thε MBS dεpeπds. Note this will typically be the timestamp of thε εarliεst MBS bcation εstimate (from an MBS baseline location estimator) that supplied MBS location information used in deriving the derivεd bcation εstimatε for thε MBS 148. (c) a "latest timestamp" providing the time/date whεn thε latest MBS location information upon which thε dεrived bcation estimate for the MBS depends. Note that earliest timestamp = latest timestamp only for so called "baseline entries" as defined hereinbelow. Further note that this attribute is the one used for maintaining the "temporal (timestamp) ordering" of location track entries.

(d) A "dεadreckoning distance" indicating the total distance (ε.g., wheel turns or odometer diffεrεncε) sincε thε most recently prevbus baselinε εntry for thε corresponding MBS location estimator for the location track to which the bcation track entry is assigned. For each MBS location track, there are two categories of MBS location track entriεs that may be inserted into a MBS bcation track:

(a) "baselinε" εntries, wherein each such baselinε εntry includεs (depεπding on thε locatbn track) a bcation εstimatε for thε MBS 148 derived from: (i) a most recent previous output either from a corresponding MBS baseline bcation estimator, or (ii) from the baseiiπε entries of other location tracks (this latter case being thε for the "current" loαtion track); (b) "extrapolation" entries, wherein each such entry includes an MBS location estimatε that has bεen extrapolated from the (most recεπt) bcation track head for the location track (i.e., based on the track head whose "latest timεstamp" immεdiatεly precedes the latest timestamp of the extrapolation entry). Each such extrapolation entry is computed by using data from a related deadreckoning bcation change estimatε output from the deadreckoning MBS bcation estimator 1544. Each such deadreckoning bcation change estimatε includεs mεasurεmεnts related to changes or deltas in the bcation of the MBS 148. More precisely, for each loαtioπ track, each extrapolation entry is detεrminεd using: (i) a basεlinε entry, and (ii) a sεt of onε or more (i.e., all later occurring) dεad reckoning location chaπgε εstimatεs in increasing "latest timεstamp" ordεr. Notε that for notational convenience this set of one or more deadreckoning bcation change estimates will be denotεd the "deadreckoning location change estimatε sεt" associatεd with the extrapolation entry resulting from this set. (c) Note that for each bcation track head, it is either a baseline entry or an extrapolation entry. Further, for each extrapolation entry, there is a most recεnt basεlinε εntry, B, that is εarlier than the extrapolation entry and it is this B from which the extrapolation entry was extrapolated. This earliεr basεlinε entry, B, is hereinafter denotεd thε "basεlinε entry associated with the extrapolation entry." More generally, for each location track entry, T, there is a most recent previous baseline entry, B, associated with T, wherein if T is an extrapolation entry, then B is as defined above, else if T is a baseline entry itself, then T = B. Accordingly, note that for each extrapolation entry that is the head of a loαtion track, there is a most recent baseline entry associated with the extrapolation entry. Further, there are two categoriεs of loαtion tracks:

(a) "basεlinε location tracks," εach having basεline entries exclusively from a single predεter ined MBS baseline location estimator; and (b) a "current" MBS bcation track having entries that are computed or detεrmined as "most likely" MBS location estimates from entries in the other MBS loαtion tracks.

MBS Location Estimating Strategy

In order to be able to properly compare thε track hεads to determine the most likely MBS loαtion estimatε it is an aspeα of thε present invεntion that thε track hεads of all location tracks include MBS location estimates that are for substantially the samε (latest) timεstamp. Howεvεr, the MBS locatbn information from εach MBS baseline bcation estimator is inherently substantially unprediαable and uπsynchronized. In faα, the only MBS bcation information that may be considered prediαble and controllable is the deadreckoning bcation change estimatεs from the deadreckoning MBS loαtbn estimator 1544 in that thesε εstimates may reliably be obtained whεnεvεr thεre is a que from thε bcation controller 1535 for thε most recent estimate in the change of the loαtion for the MBS 148. Consequεntly (referring to Fig. 13), synchronization records 1790 (having at least a 1790b portion, and in some casεs also having a 1790a portion) may bε providεd for updating εach bcation track with a nεw MBS bcation estimate as a new track head. In particular, each synchronization record includes a deadreckoning bcation change estimatε to bε usεd in updating all but at most one of the location track heads with a new MBS locatbn estimate by using a dεadrεckoning bcation changε estimate in conjunction with each MBS location estimate from an MBS baseline location estimator, the bcation track heads may be synchronized according to timestamp. More precisely, for εach MBS bcation εstimate, E, from an MBS baseline location estimator, the present invention also substantially simultaneously queriεs the deadreckoning MBS location estimator for a corresponding most recent change in the bcation of the MBS 148. Accordingly, E and the retrievεd MBS deadreckoning location change estimate, C, have substantially the same "latest timestamp". Thus, the bcation estimate E may be used to create a new baseline track head for the bcation track having the corresponding type for E, and C may be used to create a corresponding extrapolation entry as the head of each of the other location tracks. Accordingly, since for each MBS location estimate, E, there is a MBS deadreckoning bcation change estimate, C, having substantially the same "latest timestamp", E and C will be hereinafter referred as "paired." High levεl descriptions of an εmbodiment of the location funαions performed by an MBS 148 are provided in APPENDIX A hereinbelow.

APPENDIX A: MBS Function Embodiments

Mobile Base Station Controller Program

mobile_base_station_contr<>ller()

{ wait_for_inpυt_of_first_NBS_ioαtioιient\t); /* "event" is a record (object) with MBS bcation data */

WHILE (no MBS opεrator input to exit) DO

CASE OF (event): /* determine the type of "evεnt" and process it. */ MBS LOCATION DATA RECEIVED FROM GPS:

MBS LOCATION DATA RECEIVED FROM LBS:

MBS LOCATION DATA RECEIVED FROM ANY OTHER HIGHL Y RELIABLE MBS LOCATION SOURCES (EXCEPT LOCATION CENTER):

{ MBS_new_εst <—get_πew_HBS_lo atioπ_using_estimate(vnvιt);

/* Notε, whεnεver a new MBS bcation estimate is entered as a baseline estimate into the bαtion tracks, the other location tracks must be immediately updated with any deadreckoning location change estimates so that all location tracks are substantially updated at the same time. */ deadrεck_εst <---get_deadreckoniπg ocation_chaπge_estimate{w\λt)\ MBS curr est < - DETERMINE_MBS_LOCATION_ESTIMATE(MBS_nεw_est, deadrec est); if (MBS_curr_εst.coπfidεnce > a predetermined high confidence threshold) then et_ deadreckoπing_ HBS_ locatioπ_ estlmator(mnt);

/* deadreckoning starts over from here. */

/* Send MBS location information to the Location Center. */ if ( MBS has not moved sincε thε last MBS location εstimate of this type and is not now moving) then

{ configure the MBS on-board transceiver (e.g., MBS-MS) to immediately transmit bcation signals to the fixed loαtion BS network as if the MBS were an ordinary bcation device (MS);

communicate with the Location Center via the fixed bcation BS infrastruαure the following: (a) a "locate me" signal,

(b) HBS_curr_est,

(c) MBS_nεw_εst and

(d) thε timεstamp for thε present evεnt.

Additionally, any bcation signal information between the MBS and the present target MS may be transmitted to the Location Center so that this information may also be used by the Location Center to provide better estimates of where the HBS is. furthεr, if thε MBS dεter ines that it is immediately adjacent to thε target MS and also that its own location estimate is highly reliable (e.g., a GPS estimate), then the MBS may also communicate this information to the Location Centεr so that thε Location Cεntεr can: (a) associate any target MS location signature cluster data with the fixed base statbn infrastruαure with the location provided by the MBS, and (b) insert this associated data into the bcation signature data base of the

Location Center as a verifiεd clustεr of "random loc sigs";

/* notε, this transmission prεfεrably continuεs (i.ε., repeats) for at least a predetermined length of time of sufficient length for the Signal Processing Subsystem to collect a sufficient signal charaαeristic sample size. V } elsε SCHEDULE an εvεnt (if nonε schεdulεd) to transmit to the Location Cεntεr the folbwing: (a) MBS_curr_est, and (b) thε GPS loαtion of thε MBS and thε timε of the GPS location estimatε;

/* Now update MBS display with new MBS loαtion; notε, MBS opεrator must request MBS locations on the MBS display; if not requested, thεn thε folbwing call doεs not do an update. */ update ^ MBS_ operator_ display_ with_ HBS_ fΛ(MBS_curr_est);

}

SINCE LAST MBS LOCATION UPDATE

MBS HAS MOVED A THRESHOLD DISTANCE: { deadrεck_εst <--- get_deadrvdowπg_/oαt/on_c/ιaπge_emmate(mnt);

I* Obtain from MBS Dεad Reckoning Loαtion Estimator a new dεad reckoning MBS locatbn estimate having an estimatε as to thε MBS locatbn changε from thε loαtion of thε last MBS location providεd to thε MBS. */ MBS_curr est < - DETERM1NE_MBS_L0CAT!0N_ESTIMATE(NULL, dεadreck εst); /* this new MBS estimatε will bε used in new target MS estimatεs*/ υpdate_ MBS_ display_ with_ updated ^ MBS_ to/iw(MBS_curr_85t);

SCHEDULE an εvεnt (if nonε schεdulεd) to rεquεst nεw GPS location data for MBS;

SCHEDULE an εvεnt (if nonε scheduled) to request communication with Location Center (LC) related to new MBS loαtion data; SCHEDULE an event (if none scheduled) to requεst nεw LBS locatbn communiαtion between the MBS and any LBS's that can deteα thε MBS; I* Note, in some embodimεnts thε procεssing of MBS bcation data from LBS's may be performed automatically by the Location Center, wherein the Location Centεr uses signal characteristic data from the LBS's in determining an estimated location of the MBS. */ SCHEDULE an event (if none scheduled) to obtain new target MS signal charaαeristics from MS; /* i.e., may get a better target MS location estimate now. */ }

TIMER HAS EXPIRED SINCE LAST RELIABLE TARGET MS L OCATION INFORMATION OBTAINED: { SCHEDULE an evεnt (if none scheduled) to request bcation communication with the target MS, the event is at a very high priority; RESET timer for targεt MS bcation communication; /* Try to gεt targεt MS locatbn communication again within a predetermined time. Note, timer may dynamically determined according to the perceived vebcity of the target MS. */

}

LOCATION COMMUNICATION FROM TARGET MS RECEIVED: { MS_raw_sigπal_data < — et_MS_signal_characteristic_raw_data(viwt.)

I* Note, "MS_raw_signal_data" is an objeα having substantially the unfilterεd signal characteristic values for communications between the MBS and the target MS as well as timestamp information. */ Construct a messagε for sεnding to thε Location Cεnter, wherein the messagε includεs at least

"MS_raw_signal_data" and "MBS_curr_est" so that thε Location Cεntεr can also compute an estimated bcation for the target MS;

SCHEDULE an event (if none schedulεd) to requεst communication with Locatbn Cεntεr (LC) for sending the construαed message;

/* Note, this data does not ovεrwrite any previous data waiting to bε sεnt to thε LC. */

MS_signal_data < — get_ MS_ signal ^ characteristic data(mnt)

I* Note, thε MS signal data obtainεd above is, in one embodiment, "raw" signal data. Howevεr, in a sεcond εmbodimεnt, this data is filtered substantiaiiy as in thε Locatbn Cεnter by the Signal

Procεssing Subsystem. For simplicity of discussion here, it is assumed that each MBS includes at least a sαled down vεrsion of thε Signal Procεssing Subsystεm (see FIG. 11). */ MS_new_est <»-- DETERMINE_MS_MOST_RECENT_ESTIMATE^ \ curr εst, MS curr εst,

MS signaNata); 5 /* May usε forward and reverse TOA, TDOA, signal power, signal strength, and signal quality indicators. Note, "MS_curr_est" includes a timestamp of when the target MS signals wεre recε ' rved.

*/ if (MS_nεw_εstcoπfιdencε > min_MS_confidεncε ) then

{ l o mark_ MS_ est_ as_ /rø/rø/τ(MS_nεw_est);

/* Note, it is assumed that this MS locatbn estimatε is "temporary" in thε sεnsε that it will be replaced by a corresponding MS location estimate received from the Locatbn Centεr that is based on the samε targεt MS raw signal data. That is, if the Location Centεr responds with a corresponding target MS bcation estimate, E, while "MS_new_est" is a valuε in a "moving window" of targεt MS 15 loαtion εstimatεs (as dεscribεd hereinbelow), then E will replace the value of "MS_new_εst". Note, thε moving window may dynamically vary in size according to, for examplε, a perceived velocity of the target MS and/or the MBS. */ MS_moving_window < — get_MS_moving_ windo wwt);

I* gεt moving window of locatbn εstimatεs for this target MS. */ 20 add_ HS_ estimate_ to_ HS_ location_ ιrø7</σιt< ι MS_nεw_εst, MS moving window);

/* Sincε any givεn singlε colleαion of measuremεnts related to locating the target MS may be potentially misleading, a "moving window" of bcation εstimates are used to form a "composite bcation estimate" of the target MS. This composite location estimate is based on some number of the 25 most recent bcation estimatεs determinεd. Such a composite bcation εsti atε may bε, for εxample, analogous to a moving average or some other wεighting of target MS location estimatεs. Thus, for example, for εach bcation estimate (i.e., at least onε MS bcation arεa, a most likεly singlε location, and, a confidence estimatε) a centroid type calculation may be performed to provide the composite taαtion estimate.*/ 30 MS_curr_est < — DETERMINE_MSJOaTIONJSTIMATB, nmmi tMm)-,

/* DETERMINE new target MS bcation estimate. Note this may an average location or a weighted averagε bcation. */ remove_scMu/ed_eyems{'i H lS mmi",mntm_\)y,

I* REMOVE ANY OTHER EVENTS SCHEDULED FOR REQUESTING LOCATION COMMUNICATION FROM TARGET MS */

} else /* target MS location data received but it is not deemed to be reliable (e.g., too much multipath and/or inconsistent measurements, so SCHEDULE an εvεnt (if none scheduled) to requεst nεw bcation communication with the target MS, the event is at a high priority*/ add c ^^Λ/z/^^ rørj("TARGET_MS CHEDULE", event.MS_ID); υpdate_ MBS_ op tor_ display _ with_ MS_ w/fMS curr est);

/* The MBS display may use various colors to represent nested location areas overlayεd on an arεa map wherein, for εxamplε, 3 nεstεd arεas may be displayed on the map overlay: (a) a largest area having a relatively high probability that thε targεt MS is in thε area (ε.g., > 95%); (b) a smaller nestεd area having a bwεr probability that thε targεt MS is in this arεa (e.g., > 80%); and (c) a smallest area having the lowest probability that the target MS is in this area (e.g., >70%). Furthεr, a relativεly precise specific bcation is provided in the smallest area as the most likεly singlε location of the target MS. Note that in one embodimεπt, the colors for each region may dynamically change to providε an indication as to how high thεir reliability is; ε.g., no colored areas shown for reliabilities below, say, 40%; 40-50% is purple; 50-60% is blue; 60-70% is green; 70-80% is amber; 80-90% is white; and red denotes the most likely single loαtion of the target MS. Further note the threε nεstεd areas may collapse into one or two as the MBS gets closer to the target MS. Moreovεr, notε that thε collapsing of thεsε diffεrent areas may provide operators in the MBS with additional visual reassurance that the loαtion of the target MS is being determined with better accuracy.*/

/* Now RESET timer for target NS location communication to try to get target NS location communication again within a predetermined time. */ reset_ r/rø/("TARGET_MS_SCHEDULE", eventMSJD);

}

COMMUNICATION OF LOCATION DATA TO MBS FROM LOCATION CENTER: {

/* Note, target MS location data may be recεived from the Loαtion Centεr in thε seek state, contaα state and the control state. Such data may bε received in response to the HBS sending target MS bcation signal data to the Loαtion Center (as may be the case in the contaα and control states), or such data may be recεivεd from thε

Location Cεntεr regardless of any previously received target MS location sent by the MBS (as may be the case in the seεk, contaα and control statεs). */

if ( (the timestamp of the latest MBS location data sent to the Locatbn Center) < = (the timestamp returned by this Location Centεr communication idεntifying the MBS bcation data used by the Location Centεr for generating the MBS location data of the presεnt εvεnt) ) then /* use the LC location data since it is more recent than what is currently being used. */ {

MBS_new_est < — get_ Locatioπ_ Ceπter_ MBS_ e j/(event); dεadreck st < — et_ deadreckoning_ location_ change_ estimate(tnnt); MBS curr est < ----DETERMINE J4BS_L0CATI0N_ESTIMATE(MBS new εst, dεadreck εst); if (MBS_curr_εstconfidεncε > a predetermined high confidence threshold) then reset_ deadreckoning_ MBS_ location_ estimato im); update_ MBS_ operator_ display ^ with_ MBS_ w/(MBS_curr_est);

} if ( (thε timεstamp of thε latest targεt MS location data sεnt to thε Locatbn Center) < = (the timestamp returned by this Location Centεr communication idεntifying the MS location data used by the Loαtion Centεr for gεnerating the target MS location estimatε of thε present event)) then /* use the MS location estimate from the LC since it is more recent than what is currently being used. */

{

MS_new_est < — get_ Location_ Center_ MS_ «/(evenf);

/* This information includes error or reliability estimatεs that may bε usεd in subsεquεnt attempts to detεrminε an MBS location εstimate when there is no communication with the LC and no exaα (GPS) loαtion can be obtained. That is, if the reliability of the target HS's bcation is dεεmεd highly reliable, thεn subsεquεnt lεss reliable locatbn estimates should be used only to the degree that more highly reliable estimates becomε lεss rεlεvant duε to the MBS moving to other locations. */ MS_moving_window <— get_MS_mov/ng_ I* gεt moving window of bcation εstimatεs for this targεt MS. */

if ( (the Location Cεnter targεt MS εstimate utilizεd the MS location signature data supplied by the MBS) then if (a corresponding targεt MS location εstimatε marked as "temporary" is stiil in the moving window) then /* It is assumed that this new target MS bcation data is still timely (note the target MS may be moving); so replacε the temporary εstimatε with the Location Centεr εstimatε. */ rεplacε the temporary target MS /ørøZΛrøestimate in the moving window with "MS_new_εst";

else /* there is no corresponding "temporary" target MS loαtion in the moving window; so this MS estimate must be too old; so don't use it. */ elsε /* thε Location Cεπtεr did not use the MS location data from the MBS evεπ though thε timεstamp of thε latest MS bcation data sεnt to thε Loαtion Cεnter is oldεr that thε MS bcation data used by the Location Center to generate the present target MS locatbn estimatε. Usε thε new MS location data anyway. Note there isn't a corresponding "temporary" target MS location in the moving window. */ add_ MS_ estimate_ to_ MS_ location_ w7</ø»(MS_new_εst);

} εlsε /* thε MS location εstimatε from thε LC is not more recent than the latest MS locatbn data sεnt to thε LC from thε MBS. */ if (a corresponding targεt MS location εstimatε marked as "temporary" is still in thε moving window) then /* It is assumed that this new target MS bcation data is still timely (note the target MS may be moving); so replace the temporary estimate with the Locatbn Centεr estimate. */ replace the temporary target MS /øα/Λrøestimate in thε moving window with "MS_nεw_εst"; εlsε /* thεre is no corresponding "temporary" target MS bcation in the moving window; so this MS estimatε must be too old; so don't use it. */ MS_curr_est <--- /l!r rW update_ MBS_ operator_ display_ with_ MS_ w/(MS_curr_est); εvεntMSJD);

}

NO COMMUNICATION FROM LC: {

I* i.ε., too long a timε has εlapsεd since last communication from LC. */ SCHEDULE an event (if none scheduled) to requεst bcation data (MBS and/or targεt MS) from thε Location Cεntεr, thε event is at a high priority;

/ _t/rø/("LC_COMMUNICATION", event.MSJD);

}

REQUEST TO NO LONGER CONTINUE LOCATING THE PRESENT TARGET MS. { if (event not from operator) thεn request MBS operator verification; εlsε { REMOVE the current target MS from the list of MSs currently being located and/or tracked; SCHEDULE an evεnt (if nonε schεdulεd) to sεnd communication to thε Locatbn Cεntεr that thε current targεt MS is no longer bεing trackεd;

PURGE MBS of all data related to current target MS except any exaα bcation data for the target MS that has not bεεn sεnt to thε Location Cεntεr for archival purposεs; } } REQUEST FROM LOCATION CENTER TO ADD ANOTHER TARGET MS TO THE LIST OF MSs

BEING TRACKED: {

/* assuming thε Location Cεntεr sεnds MBS bcation data for a nεw targεt MS to bate and/or track (e.g., at least a new MS ID and an initial MS bcation estimatε), add this nεw targεt MS to thε list of MSs to track. Notε the MBS will typically be or transitioning to in the seek state.*/ if (event not from operator) then request MBS operator verification; else { INITIALIZE MBS with data recεivεd from thε Location Cεntεr related to thε estimated location of the new target MS; /* e.g., initialize a new moving window for this new target MS; initialize MBS operator interface by graphically indicating where the new target MS is estimated to be. */

CONFIGURE MBS to respond to any signals received from the new targεt MS by requesting location data from the new target MS; INITIALIZE timer for communication from LC; /* A timer may be set per target MS on list. */

} }

REQUEST TO MANUALLY ENTER A LOCATION ESTIMATE FOR MBS (FROM AN MBS OPERATOR): {

I* Note, MBS could be moving or stationary. If stationary, then the estimatε for the bcation of the MBS is given high reliability and a small range (e.g., 20 feεt). If thε MBS is moving, then the estimatε for the location of the MBS is given high reliability but a wider range that may be depεndεπt on the speed of the MBS. In both cases, if the MBS operator indiαtes a low confidencε in the εstimatε, thεn the range is widened, or the operator can manually enter a range.*/ MS_new_est <--get_new_MBSJocation_est_from_opemtoι(mtiL\ I* The estimatε may bε obtainεd, for εxamplε, using a light pεπ on a displayed map */ if (operator supplies a confidence indication for the input MBS loαtion estimatε) thεn

MBS_nεw_εst.coπfidεncε < — get_ MBS_ else MBS_new_estconfidence < — I; /* This is thε highεst value for a confidencε. */ deadreck_est <---get_deadreckonmg_/oαt/oπ_c/ιange_estmate(mnt)

MBS curr est <- DETERMINE_MBS_LOCATION_ESTIMATE(MBS new est, deadrεck εst ); if (MBS_curr_εstconfidεnce > a predetermined high confidence threshold) thεn met_ deadreckoπiπg_ MBS_ location_ estfnato (<mnt); update_ MBS_ operator_ display_ with_ NBS_ estifl BS curr εst);

/* Note, one reason an MBS operator might providε a manual MBS input is that the MBS might bε too inaccurate in its loαtion. Moreover, such inaccuracies in the MBS bcation estimatεs can cause the target MS to be estimated inaccurately, since target MS signal charaαeristic values may bε utilizεd by the MBS to estimatε the bcation of the target MS as an offsεt from whεre thε MBS is. Thus, if thεre are target MS estimates in the moving window of target MS location estimatεs that are relatively close to the location represented by "MBS curr est", then thesε select few MS loαtion estimates may be updated to reflect a more accurate MBS locatbn εstimate. */ MS moving wiπdow < — et_ MS_ moving_ window(mnt)\ if (MBS has not moved much since the receipt of some prevbus target MS bcation that is still being used to location the target MS) then

{

UPDATE those target MS bcation estimatεs in thε moving window according to thε πεw MBS bcation estimate here; MS_curr_est <-- DErERNINE_HSJO WNJSTINATB^_ms\^ tMw)-, update_ MBS_ operator ^ display_ with_ MS_ ftf/(MS_curr_εst);

} } } /* end case statement */

Lower Level MBS Function Descriptions

I* PROCEDURE: DETERMINE_NBS_LOCATION_ESTIMATE REMARKS: it is assumεd that with increasing continuous dead reckoning without additional MBS bcation verification, the potential error in thε MBS locatbn increases. It is assumεd that εach MBS bcation estimate includes: (a) a most likely area estimate surrounding a central bcation and (b) a confidencε valuε of the MBS being in the bcation estimate.

The confidence value for each MBS bcation estimate is a measuremεnt of thε likεlihood of thε MBS bcation εstimate bεing correα. More precisely, a confidence value for a new MBS bcation estimate is a measurement that is adjusted according to the following criteria:

(a) the confidencε valuε increases with the perceived accuracy of the new MBS location estimate (independent of any current MBS locatbn estimate used by the MBS),

(b) the confidence value decreases as the location discrepancy with the current MBS bcation increases,

(c) the confidencε value for the current MBS locatbn increases when the new bcation estimatε is contained in the current loαtion εstimate,

(d) the confidence value for the current MBS location decrease when the new bcation estimatε is not coπtainεd in the current bcation estimate, and

Therefore, the confidence value is an MBS location likelihood measurement which takes into account the history of previous MBS location estimates.

It is assumed that with each MBS bcation εstimatε supplied by the Location Center there is a default confidence value supplied which the MBS may change. */

DETERMINE_MBS_LOCATION_ESTIMATE(MBS__new_est, deadreck_est) /* Add the pair, "MBS_new_est" and "deadreck_est" to the location tracks and determine a new current MBS location estimate.

Input: MBS new est A new NBS baseline location estimate to use in determining the location of the NBS, but not a (deadreckoning) location change estimate deadreck est The deadreckoning location change estimate paired with "MBS_new_est". */

{ if (MBS_new_εst is not NULL) then /* the "deadreck est" is paired with "MBS new est" */

{ if (all MBS bcation tracks are empty) then

{ insert "MBS_new_εst" as thε head of the bcation track of type, "MBS_new_esttype"; insert "MBS_nεw_est" as the head of the current track; /* so now there is a "MBS curr est" MBS location estimatε to usε */ MBS_curr_εst < — get_curr_ j?j(MBS_new_εst.MSJD); /* from current location track */

}

elsε /* thεrε is at least one non-empty location track in addition to the current locatbn track being non¬ empty*/

{ if (MBS_πew_εst is of typε MANUALJNTRY) thεn { /* MBS operator entered an MBS location estimate for the MBS; so must use it */

MBS_curr_est <— add_location_entry(MBS_new_εst,dεadreck_εst);

} εlsε/* "MBS_new_est" is not of type MANUAL_ENTRY */ if (thε MBS bcation track of typε, "MBS_nεw_εsttypε", is empty) then

{ I* some other location track is non-empty */

MBS_curr_est < — add_location_entry(MBS_nεw_εst, dcadreck εst);

} εlse /* "NBS_new_est.type" location track is non-empty and "MBS_new_est" is not of type MANUAL_ENTRY */

{ /* In the next statement determine if "MBS_new_est" is of at least minimal useful quality in comparison to any previous estimates of the same type; see program defn below */ continue_to_procεss_nεw_εst <-- FILTER(MBS_nεw_εst); if (coιιtinuε_to_procεss_nεw_εst) thεn /* "MBS_nεw_εst" is of sufficient quality to continue processing. */

{

MBS curr est <— add_location_entry(MBS new est, deadreck est); }/* end "MBS new est" not filtered out */ else /* "MBS_new_εst" is filtered out; do nothing */;

}/* end else */ }/* end etsε at least one non-empty location track */

} εlsε /* MBS_new_est is NULL; thus only a dεadreckoning output is to bε addεd to location tracks */ { εxtrapolation_entry <--- create_a/}_extrapo/atioβ_eιty_iro/π(di άrtά_tity, insen nto_every ocatioπ_tmcl^xtϊλ^ ^Λ ]ttη)-, /* including the "current location track" */ MBS curr est < — et_ cυrr_ fΛ(MBS_new_est.MS_ID); /* from current location track */

} RETURN(MBS_curr_est);

} END I* DETERMINE_MBS_LOCATION_ESTIMATE */

add Jocation_entry( BS_new_est, deadreck__est);

/* This funαion adds the basεlinε entry, "MBS_nεw_est" and its paired dεadreckoning loαtbn changε estimate, "deadreck est" to the loαtion tracks, including the "current location track". Note, however, that this funαion will roll back and rearrange loαtion entries, if necessary, so that the entries are in latest timεstamp ordεr. Returns: MBS curr est */ { if (there is a time series of one or more dead reckoning extrapolation entries in the locatbn track of type "MBS_new_esttype" wherein the extrapolation entries have a "latest timεstamp" more recent than the timestamp of "MBS_new_est") then { /* Note, this condition may occur in a number of ways; e.g., (a) an MBS location εstimatε recεivεd from thε Location Cεnter could be delayεd long εnough (e.g., 1-4 sec) because of transmission and processing time; (b) the estimation records output from the MBS baseline bcation estimators are not guaranteed to bε always presεnted to the bcation tracks in the temporal order they are created. */ roll back all (any) entriεs on all location tracks, including the "current" track, in "latest timestamp" descending order, until a baselinε entry, B, is at the head of a location track wherein B is a most recent entry having a "latest timestamp" prior to "MBS_nεw_est"; let "stack" be the stack of a bcation track entries rolled off the loαtion tracks, wherein an entry in the stack is either a baseline bcation entry and a paired deadreckoning location change estimatε, or, an unpaired dεadrεckoning bcation changε εstimatε associated with a NULL for the baseline bcation entry; insert "MBS_new_est" at thε hεad of the locatbn track of type "MBS_new_εsttype" as a new baselinε εntry; insert the extrapolation entry derivεd from "deadrεck_εst" in each of the other baseline location tracks excεpt thε current track;

/* It is important to note that "deadreck est" includes the values for the change in the MBS location substantially for the time period betwεεn thε timεstamp, T, of "MS_nεw_est" and thε timεstamp of thε closest deadreckoning output just before T. Further note that if there are any extrapolation entries that were rolled back above, then there /ϊan extrapolation entry, E, previously in the location tracks and wherein E has an earliest timestamp equal to thε latest timestamp of B abovε. Thus, all the previous extrapolation entries removed can be put back if E is modified as folbws: the HBS location change vector of E (denoted herein as E.delta) becomes E.delta - [location change veαor of "dεadrεck st"]. */ MBS curr est <— UPDATE_CURR_EST(MBS_new_est, deadrεck_est);

if (thε extrapolation entry E exists) then /* i.e., "stack" is not empty */

{ modify the extrapolation entry E as per the comment above;

/* now fix things up by putting all the rolled off location entries back, including the "current location track" */ do until "stack" is empty

{ stack op <—

I* "stackjop" is either a basεlinε location entry and a paired deadreckoning location change estimatε, or, an unpaired dεadreckoning bcation change estimate associated with a NULL for the baseline location entry */ deadreck εst MBS curr est <- DETERMINE J1BS_L0CATI0N_ESTIMATE(MBS_nxt_εst, dεadrεck_est);

} } } else /* there is no deadreckoning extrapolation entriεs in thε location track of typε "MBS_nεw_εsttypε" wherein the extrapolation εntriεs havε a "latest timεstamp" more recεnt than thε timεstamp of "MBS_nεw_εst". So just insert

"MBS_new_est" and "dεadreck_est".*/

{ insert "MBS_new_est" at the head of the location track of type "MBS_new_εsttypε" as a new baseline entry; insert the extrapolation entry derived from "deadreck_εst" in εach of the other location tracks excεpt the current track; MBS curr est < — UPDATE_CURR_EST(MBS_new_est, deadreck est); /* seε prog dεf'n bεbw */

}

RETURN (MBS curr est); } /* επd add_location_entry */

FILTER(MBS_ne _est)

I* This function determines whether "NBS_new_est" is of sufficient quality to insert into it's corresponding NBS location track. It is assumed that the location track of "MBS_new_est.type" is non-empty.

Input: MBS_new_est A new MBS location estimate to use in determining the location of the NBS. Returns: FALSE if "MBS new est" was processed here (i.e., filtered out),

TRUE if processing with "MBS_new_est" may be continued . */ { continue_to_process_new_est <--TRUE; /* assumε "MBS_nεw_εst" will be good enough to use as an MBS location estimatε */ /* see if "NBS_new_est" can be filtered out. */ if (thε confidεncε in MBS_new_est < a predetermined function of the confιdence(s) of previous MBS locatbn estimates of type "MBS_new_εsttypε") /* e.g., the predetermined function here could bε any of a number of functions that provide a minimum threshold on what constitutes an acceptable confidence value for continued processing of "MBS_new_est". The folbwing is an example of one such predetεrminεd funαion: K* (confidεncε of "MBS new esttype" bcation track head) for some K, 0<K< = 1.0, wherein K varies with a relative frequency of estimates of type "MBS_new_εst.type" not filtered; e.g.., for a given window of prevbus MBS bcation εstimates of this typε, K= (numbεr of MBS loαtion εstimatεs of "MBS_new_esttype" not filterεd)/(the total number of estimates of this type in the window). Note, such filtering here may bε important for known areas where, for εxamplε, GPS signals may be potentially reflεαεd from an objeα (i.e., multipath), or, the Location Center provides an MBS loαtion estimate of very low confidencε. For simplicity, thε εmbodimεnt here discards any filtered location estimates. However, in an alternative embodiment, any such discarded location estimates may bε stored separately so that, for examplε, if no additional better MBS bcation estimates are recεived, thεn the filtered or discarded location estimates may be reexamined for possible use in providing a better subsequent MBS location estimate.*/ then continue_to_procεss_new_est < - FALSE; εlsε if (an area for "MBS_new_est" > a predetermined function of thε corresponding arεa(s) of entries in the bcation track of type "MBS_new_εst.typε") /* e.g., the predetermined function here could be any of a number of functions that provide a maximum threshold on what constitutes an acceptable area size for continuεd procεssing of "MBS_new_εst". Thε following are εxamples of such predetermined functions: (a) the identity function on the area of the head of the bcation track of type "MBS_new_εsttype"; or, (b) K*(thε area of thε hεad of thε bcation track of typε "MBS_new_εsttype"), for somε K, K> = 1.0, wherein for a given window of previous MBS location estimates of this type, K= (the total number of estimatεs in the window)/ (number of these bcation estimates not filtered); note, each extrapolation entry increases the area of the head; so areas of entries at the head of each bcation track typε grow in area as extrapolation entriεs are appliεd. */ then coπtiπue_to_process_new_est < - FALSE;

RETURN(continue_to_process_new_est) }

UPDATE_CURR_EST(MBS_new_est, deadreck_est) /* This function updates the head of the "current" NBS location track whenever

"MBS_new_est" is perceived as being a more accurate estimate of the location of the MBS.

Input: NBS_new_est A new NBS location estimate to use in determining the location of the NBS deadreck_est The deadreckoning NBS location change estimate paired with

"NBS_πew_est". Returns a potentially updated "NBS_curr_est" */

{ if (MBS_new_est is of typε MANUAL NTRY) thεn { /* MBS operator entered an MBS location estimate for the MBS; so must use it */ insert "MBS_new_εst" as the head of the "current MBS bcation track" which is the bcation track indicating thε best current approximation of the location of the MBS;

} else /* "MBS_πew_εst" is not a manual εntry */ {

MBS curr est < — et_ curr_ «ϊ(MBS_new_est.MSJD); /* get the head of the "current locatbn track" */ adjusted curr est <— , deadreck est);

./* The above funαion returns an objeα of thε samε typε as "MBS_curr_εst", but with thε most likely MBS point and area locations adjustεd by "deadreck est". Accordingly, this funαion performs the following computations:

(a) selects, A MK , the MBS location area εstimate of "MBS curr est" (ε.g., one of the "most likely" nested area(s) providεd by "MBS_curr_est" in one embodiment of the presεnt invεntion);

(b) appliεs thε dεadreckoning translation corresponding to "deadreck est" to A HBS to thereby translate it (and expand it to at least account for deadreckoning inaccuracies). */ if (rvasonab/y_close(MBSjneγtjεst, adjusted_curr_est, NBS_curr_est))

/* In one embodimεnt, thε funαion "reasonably_cbsε" here determines whethεr a most likεly MBS point bcation (i.e., centroid) of "MBS new est" is contained in the MBS estimated area of "adjusted curr est"

Note that the reasoning for this constraint is that if "MBS curr est" wasaccurate, thεn any "most likely HBS point ioαtion" of a nεw MBS baseline estimate that is also accurate ought to be in the MBS estimated area of "adjusted curr est".

In a sεcond εmbodiment, the function "reasonably_cbse" determines whether the centroid (or most likely MBS point loαtion) of "MBS_new_εst" is close enough to "MBS curr est" so that no NBS movement constraints are (grossly) violated between the most likely point locations of "NBS_new_est" and "NBS_curr_est"; i.e., constraints on (dε)accεlεration, abruptness of direction change, vebcity change, max velocity for thε terrain. Note, such constraints are discussed in more detail in the section herein describing the "Analytical Reasonεr". Accordingly, it is an aspeα of the present invention to provide similar capabilities to that of the Analytical Reasoner as part of the

MBS, and in particular, as the funαionality of the "MBS LOCATION CONSTRAINT CHECKER" illustrated in Fig. I I. It is assumed hereinafter that the εmbodimεnt of thε function, "reasonably_cbsε", pεrformed here is a combination of both the first and second embodimεnts, whεrein thε constraints of both thε first and sεcond embodiments must be satisfied for the funαion to return TRUE. */ then if (thε confidence in NBS_new_est > = the confidence in NBS_curr_est) thεn

if (thε most likεly MBS area of MBS new est contains the most likely MBS area of "adjusted curr est" as computed above) thεn shrink MBS_nεw_εst uniformly about its cεntroid (i.ε., "most likεly MBS point location") until it is as small as possiblε and still contain thε MBS estimated area of "adjusted curr est". insert_into_location_ fracA("current", MBS new est);

/* Thε program invoked here inserts a bcation track entry corresponding to the second parameter into thε location track identified by the first paramεtεr (ε.g., "current"). It is important to note that the second parameter for this program may be either^ the following data struαures: a "locatbn track entry", or an

"MBS bcation estimatε" and the appropriate bcation track εntry or entries will be put on the loαtion track corresponding to the first parameter. The insertion is performed so that a "latest timestamp" order is maintained; i.e.,

(a) any extrapolation entriεs in thε loαtion track, whεrein thεsε εntries have a more recent "latest timestamp" than the ("earliest" or only) timestamp (depεnding on thε data structure) of the second parameter are removed, and

(b) conceptually at lεast, thε ioαtioπ chaπgε εstimates output from thε deadreckoning MBS loαtion εstimator that correspond with the removed extrapolation entries are then reapplied in timestamp order to the head of the target bcation track. */

} εlse /* the centroid of "MBS_new_εst", is containεd in an arεa of "MBS_curr_εst", but thε confidence in

"NBS_new_est" < confidence in "NBS_curr_est" */

{ most_likεly_εst <-- dεtermine a "most likely MBS loαtion estimate" using the set S = {the MBS locatbn estimatε cεntroid(s) of any MBS location track heads contained in the MBS estimated area of "adjustεd_curr_εst", plus, the centroid of "MBS_new_εst"};

/* Notε, in the above statement, the "most likely MBS location estimate" may be determined using a number of different techniques depεπdiπg on what function(s) is usεd to εmbody the meaning of "most likely". In one εmbodimεnt, such a "most likεly" funαion is a funαion of thε confidence values of a predetermined population of measurεmεnts (ε.g., the seleαed bcation track heads in this αse) from which a "most likεly" mεasurement is dεtεrminεd (ε.g., computed or sεlεαεd). For examplε, in onε embodiment, a "most likely" funαion may include selecting a measurement having thε maximum confidεncε valuε from among thε population of measurements. In a sεcond εmbodimeπt, a "most likely" funαion may include a weighting of measurements (e.g., location track hεads) according to corresponding confidence values of the measurements. For example, in the present context (of MBS bcation track heads) the following steps provide an embodiment of a "most likely" funαion:

(a) determine a centroid of area foreach of the selεαεd track hεads (i.e., thε location track heads having a point bcation estimatε contained in the MBS estimated area of "adjusted curr est"); (b) determine the "most likely bcation MBS position" P as a weighted centroid of the centroids from step (a), wherein the weighting of each of the ceπtroids from (a) is providεd by thεir corresponding confidence values;

(c) output an area, A,, as the "most likely MBS bcation area", wherein the centroid of A, is P and A, is the largest area within the MBS estimated area of "adjusted_curr_est" satisfying this condition; and

(d) set a confidencε valuε for A, as thε average confidencε value of "MBS_new_est", "MBS curr est" and the selected bcation track head used. */ insert_ into_ location_ fracA("current", mostjikεly est) ;

}

εlsε /* "NBS_new_est" is not reasonably close to "adjusted_curr_est" (i.e.,

"NBS_curr_est" with "deadreck_est" applied to it), so a conflict exists here; ε.g., (i) "MBS_new_est" is not a manual εntry, and (ii) "MBS_nεw_εst" doεs not have its cεntroid contained in the MBS estimated area of "adjusted_curr_εst", or, thεrε has been a movement constraint violation. Note that it is not advisable to just replacε "MBS curr est" with "new_εst_hεad" because:

(a) "MBS_new_est" may bε the MBS loαtion estimate that is least accurate, while the previous entries of the current bcation track havε bεεn accurate;

(b) thε "MBS_curr_εst" may bε basεd on a rεcεnt MBS operator manual entry which should not be overridden. */ {

MBS curr est < — resolve_conflicts(MBS_new_εst, adjusted_curr_εst, MBS curr est);

} } /* end else "MBS_new_est" not a manual entry */ if (MBS is a vehicle) and (not off road) then /* it is assumed that a vehicular MBS is on-road unless explicitly indicated otherwise by MBS operator. */

MBS_curr_est < — snap_to_best_fιt_ j? rø(MBS_curr_εst); /* snap to best street location according to location estimatε, velocity, and/or direαion of travel. Note, this is a translation of "MBS curr est". */ RETURN(MBS_curr_est) } I* END UPDATE(NBS_CϋRR_EST) */

resolve_conflicts(MBS_new_est, adjusted_curr_est, MBS_curr_est) /* There is a basic conflict here,

(i) "NBS_new_est" is not a manual entry, and

(ii) one of the following is true: "NBS_new_est" does not have its centroid contained in the area "adjusted_curr_est", or, using "MBS_new_est" implies an NBS movement constraint violation. Input: NBS_new_est The newest MBS bcation estimate record. adjusted_curr_est The version of "MBS_curr_εst" adjustεd by thε deadreckoning loαtion change estimate paired with "MBS new εst". NBS_curr_est Thε location track εntry that is thε hεad of thε "current" bcation track. Notε that "MBS_new_estconfidence" > "MBS_curr_est.cofidεncε". Output: An updated "NBS curr est". */

{

mark that a conflict has arisεn between "MBS_curr_est" and "MBS_nεw_εst"; if (thε MBS opεrator desires notifiαtion of MBS bcation estimatε conflicts) thεn notify the MBS operator of an HBS location estimatε conflict; if (the MBS operator has configured the MBS location systεm to ignore new estimates that are not "reasonably close" to adjusted_curr_est) or

(MBS curr est is based on a manual MBS operator location estimate, and thε MBS has movεd lεss than a predetermined distance (wheel turns) from where the manual estimate was provided) then RETURN(adjusted_curr_est); else /* not required to ignore "MBS_new_est", and there has been no recent manual estimate input*/

{ try to use "NBS_new_est" */ if ((NBS_new_est.confidence - adjusted_curr_est.confidence) > a large predetermined threshold) then /* Note, the confidence discrepancy is great enough so that "MBS_new_εst" should bε thε most rεcεnt baseline estimatε on current MBS location track. Note that the threshold here may be approximately 0.3, whεrein confidences are in the range [0, 1].*/ insert_into_location_ t acΛf'current", MBS new εst);

/* insert "MBS new est" into "current" locatbn track (as a basεline εntry) in "latest timestamp" order; i.e., remove any extrapolation entries with a more recent "latest timestamp" in this track, and reapply, in timestamp order, the bcation change estimates output from the deadreckoning MBS location estimator that correspond with the removεd extrapolation entries removεd; */ εlsε /* "NBS_new_est.confidence" is not substantially bigger than

"adjusted_curr_est.confidence"; so check to see if there are potentially NBS location system instabilities */ { /* check for instabilities */ if [ (there has beεn more than a determined fraction of coπfiicts between the "MBS curr est" and "MBS_new_est" within a predetermined number of most recεnt "MBS new est" instantiations) or (the path corresponding to the entriεs of the "current bcation track" of the MBS has recently violated MBS movemεnt constraints more than a predetermined fraction of the number of times there has been new instantiation of "MBS_curr_est", whεrein such movεmεnt constraints may bε (dε)accεleration constraints, abrupt changε in direction constraints, constraints relating to too high a vebcity for a terrain) or (there has been an MBS operator indication of lack of confidencε in the recεntly displayed MBS locatbn estimates)]

thεn /* thε NBS location system is likely unstable and/or inaccurate; check to see if this condition has been addressed in the recent past. */ { /* fbc instability */ if (f ϊx_i nstabi I i ty_cou nte r εqual to 0) then /* no instabilities have been addressed here within the recent past; i.e., "fix_instability counter" has thε folbwing semantics: if it is 0, then no instabilities havε bεεn addressed here within the recent past; elsε if not 0, then a recent instability has beεn attemptεd to bε fixed here. Note, "fixjnstability counter" is dεcremented, if not zero, each time a new baselinε location εntry is inserted into its corresponding baseline location track. Thus, this counter providεs a "wait and sεε" strategy to dεtεrmiπε if a previous performancε of thε statεmεnts below mitigated the (any) MBS bcation system instability. */

{ most_likely_εst <-- determine a new "most likely MBS bcation estimate"; [30.1]

I* Note, a number of MBS bcation estimates may be generated and compared here for determining the "most_likely_est". For examplε, various wεightεd cεntroid MBS locatbn estimates may be determined by a clustering of location track head eπtriεs in various ways.

In a first εmbodimeπt for determining a value (objεα) for "mostjikely est", a "most likεly" funαion may bε performed, whεrein a weighting of bcation track hεads according to thεir corresponding confidence values is performed. For example, the following steps provide an embodiment of a "most likεly" funαion: (a) obtain a sεt S having: (i) a cεntroid of area for εach of thε track hεads having a corresponding arεa containεd in a determined area surrounding the point bcation of "adjusted_curr_est" (ε.g., thε MBS estimated area of "adjusted_curr_εst"), plus (ii) thε cεntroid of "MBS_new_est";

(b) dεtεrminε thε "most likεly loαtion MBS position" P as a weighted centroid of the centroids of the set S from step (a), wherein the weighting of εach of thε cεntroids from (a) is providεd by thεir corresponding confidεncε values;

(c) output an area, A, as the "most likεly MBS bcation area" wherein A has P as a centroid and A is a "small" area (e.g., a convex hull) containing the corresponding thε cεntroids of thε sεt S; and (d) set a confidence value for A as the averagε confidence value of the centroids of the set S. In a second embodiment, "most_likely_εst" may bε dεtermined by expanding (e.g., substantially uniformly in all direαions) thε MBS cation εstimate arεa of "MBS_nεw_εst"

until thε resulting expanded area contains at least the most likely point location of "adjusted curr est" as its most likely HBS locatbn area. */ insei _into_location_track( u c\irnnt", oit_\M _iity, fixjnstability ^ counter < — a predetermined number, C, corresponding to a number of baseiiπε επtriεs to be put on the baseiiπε bcation tracks until MBS location system instabilitiεs are to bε addressed again here; /* when this counter goes to zero and the MBS bcation system is unstable, then the above statements above will be performed again. Note, this counter must be reset to C (or higher) if a manual MBS estimate is entered. */

} } /* fix instability */ elsε /* The NBS location system has been reasonably stable, and

"MBS curr est.confidence" is not substantially bigger than

"adjusted_new_est.confidence" . */

most_likely_est < -- detεrminε a most likely MBS bcation estimate;

/* The determination in thε statεment above may be similar or substantially thε samε as the computation discussed in relation to statement [30.1] above. However, since there is both more stability in this case than in [30.1] and less confidence in "MBS new est", certain MBS movemεnt constraints may be more applicable here than in [30.1]. Accordingly, note that in any embodiment for determining "most_likεly_εst" here, reasonablε movemεnt constraints may also bε usεd such as: (a) unlεss indicated otherwise, an MBS vehiclε will bε assumεd to bε on a road, (b) a new MBS location estimatε should not imply that thε MBS had to travel faster than, for examplε, 120 mph or changε direαion too abruptly or changε velocity too abruptly or traverse a roadless region (e.g., corn field or river) at an inappropriate rate of speεd. Thus, oπcε a tεntativε MBS location εstimatε (ε.g., such as in the steps of the first embodiment of

[30.1]) for "mostJikely_εst" has bεen detεrminεd, such constraints may bε appliεd to thε tεntative estimate for determining whethεr it should bε pulled back toward the cεntroid of thε "MBS_curr_εst" in ordεr to satisfy thε movement constraints*/ insert_into_locatioπ_ fr«ιcA("current", mostjikεry εst); /* note, thε sεcond paramεtεr for this funαion may be eithεr of the following data struαures: a "loαtion track entry", or a "MBS locatbn estimate" and the appropriate loαtion track entry or entriεs will bε put on the loαtioπ track corresponding to the first parameter. */

}

} /* check for instabilities */

MBS curr est <--^Ω//7^?jτ(MBS_new_εstMSJD);/* from current location track*/ } I* try to use "NBS_new_est" */ RETURN(MBS curr est) } /* END resolve_conflicts */

APPENDIX B: Pseudo code for a genetic algorithm

Pseudo code for a genetic algorithm

Genetic gorithm (*decode, *fitness_function, parms)

I* This program implements a genεtic algorithm for determining efficient values of paramεters for a sεarch problem. The current best values of thε parameteπ are received by the genεtic algorithm in a data struαure such as an array. If no such information is available, then the genetic algorithm receives random guessεs of thε paramεter values. This program also recεives as input a pointer to a decode function that provides the genεtic algorithm with information about how the parameters are represented by bit strings (see genetic algorithm referencεs). Thε program also receives a pointer to a fitnεss function,

"frtness_f unct ' to ns", that provides thε genetic algorithm with information about how the quality of potential solutions should bε dεtermiπed. Thε program computes nεw, improved valuεs of parameters and replaces the old valuεs in the array "parms." */

//assume that each particular appliαtiσn will have a specific fitness funαion and decoding // scheme; otherwise, the procedure is thε samε εvεry time //generate the initial population //generate a random population of binary strings containing popsizε strings fori = I to popsizε for j = I to string_lεngth strmg(ij) = random(0,l) end loop on j end bop on i

// keep generating new populations until finished do until finished for i = I to popsize

//transform the binary strings into parametersfrom the problem at hand; requires problem // pecific function decode (striπg(i)) //evaluate each string evaluate (string(i)) end bop on i

//perform reproduction reproduce (populatbπ_of_strings)

//perform crossover crossovεr (popubtbn_of_strings) //perform mutation mutate (population of strings) // evaluate the new population fori = I to popsizε

//transform the binary strings into parameters //from the problem at hand; requires problem //specific function decode (string(i))

//evaluate the fitness of each string evaluate (string(ij)) end loop on i if finished thεn report nεw results to the ailing routine else go back to tip of do-until loop

APPENDIX C: Location Database Maintenance Programs

DATA BASE PROGRANS FOR MAINTAINING THE LOCATION SIGNATURE DATA BASE

In thε algorithms bεlow, εxternal parameter values neεdεd are underlined. Note that in one embodimεnt of thε presεnt invention, such paramεters may bε adaptivεly tuned using, for examplε, a genetic algorithm.

EXTERNALLY INVOCABLE PROGRANS;

Update_Loc_Sig_DB(newJoc_obj, selection_criteria, loc_sig_pop)

/* This program updates loc sigs in the Location Signature data base. That is, this program updates, for examplε, at lεast thε loαtion information for vεrifiεd random loc sigs residing in this data basε. Notε that thε stεps herein are also provided in flowchart form in Fig. 17a through FIG. I7C.

Introductory Information Related to the Function, "Update_Loc_Sig_DB"

The general strategy here is to use information (i.e., "nεwjoc obj") rεcεivεd from a nεwly vεrifiεd bcation (that may not yεt be entered into thε Location Signature data basε) to assist in dεtermining if the previously stored random verified loc sigs are still reasonably valid to use for: (29.1) estimating a bcation for a given coliεαion (i.ε., "bag") of wirεlεss (e.g., CDHA) location related signal charaαeristics recεived from an HS, (29.2) training (for example) adaptive bcation estimators (and bcation hypothesizing models), and (29 J) comparing with wireless signal charaαeristics used in genεrating an HS location hypothεsis by one of the HS loαtioπ hypothesizing models (denoted First Ordεr Hodεls, or, FOHs). Hore precisely, since it is assumεd that it is more likely that the newest bcation information obtained is more indicative of the wireless (CDHA) signal charaαeristics within some area surrounding a newly verifiεd bcation than thε vεrified loc sigs (location signatures) previously entered into the Location Signature D6, such verified loc sigs are compared for signal charaαeristic consistency with the newly vεrifiεd location information (objεα) input here for dεtermining whεther some of thesε "oldεr" data basε vεrified loc sigs still appropriately charaαerize their associated bcation. In particular, comparisons are iterativεly madε here betweεn each (target) loc sig "near" "new_loc_obj" and a population of loc sigs in thε bcation signature data basε (such population typically including the loc sig for "newJoc_obj) for:

(29.4) adjusting a confidence factor of the target loc sig. Note that each such confidence faαor is in the range [0, 1] with 0 being the lowest and I being the highest. Further note that a confidence faαor here can be raised as well as lowered depending on how well the target be sig matches or is consistent with thε population of loc sigs to which it is compared. Thus, the confidencε in any particular verified loc sig, LS, can fluctuate with successivε invocations of this program if the input to the successive invocations are with location information geographically "near" LS.

(29.5) remove older verifiεd be sigs from usε whosε confidεncε valuε is bεbw a predetermined threshold. Note, it is intended that such predetermined thresholds bε substantially automatiαlly adjustable by periodically tεsting various confidence factor thresholds in a specified geographic area to determine how well the eligible data base loc sigs (for different thresholds) perform in agreeing with a number of verifiεd loc sigs in a "be sig test-bed", wherein the test bed may be composed of, for examplε, repeatable loc sigs and recent random verified loc sigs. Note that this program may be invoked with a (verifiεdAπown) random and/or repeatable loc sig as input. Furthermore, the target loc sigs to be updated may be selected from a particular group of loc sigs such as the random loc sigs or the repεatable loc sigs, such selection being determined according to the input parameter, "selεction_critεria" whilε the comparison population may be designated with the input parameter, "loc_sig_pop". For example, to update confidence faαors of certain random loc sigs near "new_loc_obj", "sεlεαion_critεria" may bε givεn a value indicating, "USE ANDOM OC IGS", and "bc_sig_pop" may be given a value indicating, "USE EPEATABLE_ LOC IGS". Thus, if in a given geographic area, the repεatablε loc sigs (from, ε.g., stationary transceivers) in the area have recently beεn updated, thεn by succεssivεiy providing "nεw_loc_obj" with a loc sig for εach of thεsε rεpεatablε loc sigs, thε stored random loc sigs can havε thεir confidεncεs adjusted.

Alternatively, in one embodiment of the presεnt invεntion, thε present funαion may be used for determining when it is desirable to update repeatable loc sigs in a particular area (instead of automatically and periodically updating such repeatable loc sigs). For example, by adjusting the confidencε faαors on repεatablε loc sigs hεrε providεs a mεthod for dctεrmining whεn repeatable loc sigs for a given area should be updated. That is, for examplε, when the area's averagε confidence factor for the repeatable loc sigs drops below a given (potentially high) threshold, then the HSs that provide the repeatable loc sigs can be requestεd to respond with new loc sigs for updating the DB. Note, howevεr, that thε approach presented in this function assumes that the repeatable bcation information in the DB is maiπtainεd with high confidence by, for examplε, frequent DB updating. Thus, the random verified DB bcation information may be effectively compared against thε rεpεatablε be sigs in an area.

INPUT: new_loc_obj: a data representation at least including a loc sig for an associated location about which Location Signature loc sigs are to have their confidences updated.

selection_criteria: a data representation designating the loc sigs to be seleαed to have their confidences updated (may be defaulted). The following groups of loc sigs may be selεctεd: "USE_RANDOM_LOC_SIGS" (this is thε dεfault), USE_REPEATABLE_LOC_SIGS", "USE_ALL_LOC_SIGS". Note that each of thesε selections has values for the folbwing values associated with it (although the values may be defaulted): (a) a confidencε reduαion factor for reducing loc sig confidences,

(b) a big error threshold for determining the errors above which are considered too big to ignore,

(c) a confidencε increase faαor for increasing loc sig confidences,

(d) a small error threshold for determining the errors below which are considered too small (i.ε., good) to ignore. (ε) a recent time for specifying a time period for indicating the loc sigs here considεrεd to be "recent". loc_sig_pop: a data representation of the type of loc sig population to which the loc sigs to be updated are compared. The folbwing values may be provided:

(a) "USE ALL LOC SIGS IN DB",

(b) "USE ONLY REPEATABLE LOC SIGS" (this is thε dεfault), (c) "USE ONLY LOC SIGS WITH SIHILAR TIME OF DAY"

Howevεr, εnvironmεntal charaαεristics such as: weathεr, traffic, sεason are also contemplated. */

/'Make sure "new_loc_obj" is in Location DB. */ if (NOT new_bc_obj.in_DB ) thεn /* this loαtion objeα is not in the Location Signature DB; note this can be determined by comparing the loαtion and times/datestamp with DB εntries */ DB_iπsert_πew_loc_sig_entries(mι o jii^; //stores loc sigs in Location Signature DB

/* Determine a geographical area surrounding the location associated with "new oc_obj" for adjusting the confidence factors of loc sigs having associated locations in this area. */

DB search areal < — get_coπβdeπce_adjυst_searcb_arva_ior_ϋβ_raπdo _/oc_s/gs(m ι oc_ob\.^ /* get the loc sigs to have their confidence factors adjusted. */

DB_tac_sigs < — get_all_DB_loc_sigs__foι^ α. \ xtλ\, seleαion_criteria); nearby_loc_sig_bag <— get loc sigs from "DB_loc_sigs" wherein for each loc sig the distance betwεεn thε bcation associated with "new_loc_obj.location" and thε verified bcation for the loc sig is closer than, for example, some standard deviation (such as the second standard deviation) of thesε distances for all loc sigs in "DB_bc_sigs";

/* For each "loc sig" having its confidence factor adjusted do */ foreach bc_sig[i] in nearbyJoc_sig_bag do //determine a confidencε forthese random loc sigs

{

/* Determine a search area surrounding the location associated with "loc sig" V /* Determine the error corresponding to how well "loc sig" fits with the portion of the inputted type of loc sig population that is also in the search area. */

BS <---^t_Af(bc g[ϊ]); mark_as_u/iaccessabk(\oc ig[\]); /* mark "bc_sig[i] B in the Loαtion Signature DB so that it isn't retrieved. */ DB_search_area2 <---get_confidence_adjust_search_area_for_DBJoc_sig^ wztvα^ )

I* Get search area about "randjoc". Typically, the "newjoc_obj" would bε in this sεarch area */ loc sig bag < — create_/oc_sig_bag(\oc \g[\]); /* create a loc sig bag having a single loc sig, "loc_sig[i]"*/ output criteria < — get criteria to input to "Detεrmine_Location_Signature_Fit_Errors" indiαting that thε funαion should generate error records in the returned "error_rεc_bag" only for the single loc sig in "bc_sig_bag". That is, the output criteria is: "OUTPUT ERROR ECS FOR INPUT LOC SIGS

ONLY". εrror_rεc_bag[i] < — Determine JLocation_Signature_Fit_Errors(bc.locatbn, loc_sig_bag,

DB_search_area2, tac_sig_pop, output criteria); uπmark_makiπg_accessab/e(\o _ύg[\]); /* un ark "bc_sig[ij" in the Location Signature DB so that it can now be retrieved. */

} /* Reduce confidence factors of loc sigs: (a) that are nearby to the location associated with "newjloc obj", (b) that have big errors, and (c) that have not been recently updated/acquired. */ error_rec_set < — make_set_ιιπ/on_oi(trxor_ικ_bdLg[\] for all i);

I* Now modify confidences of loc sigs in DB and delεtε loc sigs with vεry low confidεncεs */ reduce_bad_DB_loc_sigs(nearby_loc_sig_bag,error_rec_sεt,sel eαion_criteria.big_error_threshold, seieαion_criteria.confιdence_reduαion_faαor,sεlεαion_ criteria.recent_time);

/* Increase confidence factors of loc sigs: (a) that are nearby to the location associated with "new oc_obj f ' f (b) that have small errors, and (c) that have not been recently updated/acquired. */

increase_confidence_of__good_DB_loc_sigs(nεarbyJoc_sig_bag, εrror_rec_set, seleαion_criteria.small_εrror_thrεshold, seleαion_criteria.confidencε_increasε_faαor, sεlεαion_critεria.recεnt_timε); END OF Update_Loc_Sig_DB

DB_Loc_Sig_Error_Fit(NS_loc_est, DB_search_area, measured_loc_sig_bag, search_criteria) f* This function dεtεrminεs how well the coliεαion of loc sigs in "mea$uredJoc_sig_bag" fit with thε loc sigs in thε loαtion signature data basε whεrein thε data basε loc sigs must satisfy thε criteria of the input parameter "search_criteria" and arε relativεly cbsε to the MS bcation estimatε of thε bαtion hypothesis, "hypothesis". Thus, in one embodimεnt of thε presεnt invεntion, thε present funαion may be invoked by, for example, the confidence adjuster module to adjust the confidence of a loαtion hypothesis. Input: hypothesis: MS bcation hypothesis; measured_loc_sig_bag: A colleαion of measured locatbn signatures ("loc sigs" for short) obtainεd from thε HS (thε data structure hεrε is an aggregation such as an array or list). Note, it is assumεd that thεre is at most one loc sig here per Base Statbn in this colleαion. Additionally, note that the input data struαure here may be a location signature cluster such as the "loc_sig_cluster" field of a bcation hypothesis (cf. Fig.9). Note that variations in input data struαures may be accepted here by utilization of flag or tag bits as one skilled in the art will appreciate; search_cιϊteria: The criteria for searching the verifiεd bcation signature data basε for various categories of loc sigs. The only limitation on the types of categories that may be provided here is that, to be useful, each category should havε meaningful number of loc sigs in the location signature data base. The folbwing categories included here are illustrative, but others are contemplated: (a) "USE ALL LOC SIGS IN DB" (the default), (b) "USE ONLY REPEATABLE LOC SIGS",

(c) "USE ONLY LOC SIGS WITH SIMILAR TIHE OF DAY". Further categories of loc sigs close to the MS estimatε of "hypothesis" contemplated are: all loc sigs for the same season and same time of day, all loc sigs during a specific weather condition (e.g., snowing) and at the same time of day, as well as other limitations for other environmεntal conditions such as traffic patterns. Note, if this paiametεr is NIL, thεn (a) is assumed.

Returns: An εrror objεα (data typε: "error_object") having: (a) an "error" field with a measurement of the error in the fit of the bcation signatures from the HS with verified bcation signatures in the Location Signature data base; and

(b) a "confidence" field with a value indicating the perceived confidencε that is to bε given to the "error" value. */

if ("search criteria" is NIL) then $earch_criteria < - "USE ALL LOC SIGS IN DB";

/* determine a collection of error records wherein there is an error record for each BS that is associated with a loc sig in "measure_loc_sig_bag" and for each BS associated with a loc sig in a geographical area surrounding the hypothesis's location. */ output criteria < - "OUTPUT ALL POSSIBLE ERROR ECS";

/* The program invoked in the following statement is describεd in thε locatbn signature data base seαion. */ error rec bag < — Determine_Location_Signature_Fit_Errors(MSJoc_est, mεasured_bc_sig_bag,

DB_sεarch_area, search criteria, output_criteria); /* Notε, "error_rec_bag" has "εrror_rεc's" for εach BS having a loc sig in "DB_sεarch_area" as well as each BS having a loc sig in "measurεd_bc_sig_bag". */

/* determine which error records to ignore */ BS_errors_to_ignore_bag <—get_BS_error_recs_to_igπσre(ϊii_x2rά im, trr r_'κc_bzg,);

/* Our general strategy is that with enough BSs having: (a) loc sigs with the target MS, and (b) also having vεrified loαtions within an area about the MS bcation "MS Joc est", somε relatively large errors can be tolerated or ignored. For εxamplε, if thε MS bcation εstimatε, "MS_loc_εst", here is indeed an accurate estimatε of the MS's bcation and if an area surrounding "MS_bc_εst" has relatively homogenεous environmental charaαeristics and the area has an adεquate number of verified bcation signature clusters in the bcation signature data basε, thεn thεre will bε presumably εnough comparisons bεtween thε εasurεd MS loc sigs of "mεasurεd_bc_sig_bag" and thε εsti atεd loc sigs, based on verified MS locations in the DB (as determined in "Determiπε_Locatioπ_Signature_fit_Errors"), for providing "error rec bag" with enough small errors that thesε small εrrors provide adequatε evidence for "MS_loc_est" being accurate.

Accordingly, it is believed that, in most implementations of the present invention, only a relatively small number ofloc_sig comparisons need have small errors for there to be consistency between the loc sigs of "measured_loc_sig_bag" and the verified loc sigs in the location signature data base. That is, a few large errors are assumed, in general, to be less indicative of the MS location hypothesis being incorrect than small errors are indicative of accurate MS locations. Thus, if there were ten mεasured and estimated loc sig pairs, each associated with a different BS, then if four pairs have small errors, then that might be enough to have high confidencε in

the HS loαtioπ hypothesis. However, note that this determination could depεnd on thε typεs of basε stations; e.g.., if five full-service base statbns had measured and verifiεd be sigs that match reasonably wεll but five bcation BSs in the search area are not detected by the MS (i.e., thε mεasured_bc_sig_bag has no loc sigs for thεse location BSs), then the confidence is lowered by the mismatches. Thus, for examplε, the largest x% of the errors in "error_rεc_bag" may bε ignored. Notε, that "x" may bε: (a) a systεm parameter that is tunablε using, for example, a genetic algorithm; and (b) "x" may be tuned separately for εach diffεrεnt set of environmental charaαeristics that appear most important to accurately accessing discrepancies or errors between loc sigs. Thus, for a first set of environmental charaαeristics corresponding to: rural, flat terrain, summer, 8 PM and clear weather, it may be the ease that no loc sig errors are ignored. Whεreas, for a second set of environmental charaαeristics corresponding to: dense urban, hilly, fall, 8 PM, heavy traffic, and snowing, all but the three smallest errors may be ignored. */

/* determine (and return) error object based on the remaining error records */ error_obj.measmt <— 0; // initializations error_obj.confidencε < — 0; for each εrror_rec[i] in (error_rec_bag - BS_errors_to_ignore_bag) do

{ error_obj.measmt <--- error_obj.measmt + (error_rec[i].error); error_obj.confidencε <— εrror_obj.confideπce + (error rec [i] .confidence);

} error_obj.mεasmt < — εrror_obj.mεasmt / SIZEOF(error_rec_bag - BS_εrrors_toJgπore_bag); εrror_obj.confidence <— error_obj.confidence /SIZEOF(error_rec_bag - BS_errors_to_ignore_bag); RETURN(εrror_obj); ENDOF DB_Loc_Sig_Error_Fit

INTERNAL PROGRANS: reduce_bad_DB_loc_sigs(ioc_sig_bag , error_rec_set, big_error_threshold confidence_redutfion_factor, recent_time)

I* This program reduces thε confidεncε of vεrified DB loc sigs that are (seemingly) no bnger accurate (i.ε., in agreεmεnt with comparablε loc sigs in thε DB). If the confidence is reduced low enough, then such loc sigs are removed from the DB. Further, if for a DB verifiεd bcation εntity (referencing a collection of loc sigs for the same loαtion and timε), this εntity no bngεr references any valid loc sigs, then it is also removed from the bcation signature data basε 1320. .Note that the steps herein are also provided in flowchart form in Figs.18a through 18b. Inputs:

loc sig bag: The loc sigs to be tested for determining if their confidences should bε lowered and/or these loc sigs removεd. error_rec_set: The set of "error rεcs" providing information as to how much εach loc sig in "bc_sig_bag" disagrees with comparable loc sigs in the DB. That is, there is an "error rec" here foreach loc sig in "loc sig bag". big_error_threshold: The error threshold above which the errors are considered too big to ignore. confidence_reduction_f actor The faαor by which to reduce thε confidence of loc sigs. recent_time: Time period beyond which loc sigs are no longer considered recent. {/* get loc sigs from the Location DB having both big absolute and relative errors (in comparison to other DB nearby loc sigs) */ relatrvely_big_errors_bag < — et "error_recs" in "εrror_rεc_set" wherein each "error recerror" has a size larger than, for examplε, the second standard deviation from the mean (averagε) of such errors; big_errors_bag < — get "error_recs" in "rεlativεly_big_εrrors_bag" whεrein εach "εrror_rec.εrror" has a valuε largεr than "big εrror threshold"; DB_loc_sigs_w_big_εrrors < — gεt thε loc sigs for "error recs" in "big_εrrors_bag" wherein each loc sig gotten here is identifiεd by "εrror_rec.loc_sig_id"; /* get loc sigs from the Location DB that have been recently added or updated */ recent_bc_sigs < — get_receπt_loc_ j/ j(bc_sig_bag, recεnt timε); /* Note, thε function, "gεt_recεπt_loc_sigs" can havε various embodiments, including detεrmining thε rεcεnt location signatures by comparing thεir timε stamps (or othεr timε related measurements) with one or more threshold valuεs for classifying bcation signatures into a "recεnt" category returned hεre and an a category for "old" or updatable bcation signatures. Notε that thεsε catεgories can be detεrminεd by a (tunablε) systεm time threshold parameter(s) for dεtermining a value for the variable, "recent_time", and/or, by data driving this categorization by, e.g., classifying the bcation signatures according to a standard deviation, such as defining the "recent" category as those bcation signatures more recent than a second standard deviation of thε timestamps of the locatbn signatures in "bc_sig_bag". */

/* subtract the recent loc sigs from the loc sigs with big errors to get the bad ones

*/ bad_DB_loc_sigs <— (big_error_DBJoc_sigs) - (recent_bc_sigs);

/* lower the confidence of the bad loc sigs */ for εach bc_sig[i] in bad DBJoc sigs do loc_si [i] .confidence < — (loc_sig[i].coπfidencε) * (confidence_reduction_factor);

/* for each bad loc sig, update it in the DB or remove it from use if its confidence is too low */

/* Now delete any be sigs from the DB whose confidences have becomε too low. */ foreach bc_sig[i] in bad DBJoc sigs do if (loc_sig [i] .confidence < min loc sig confidence) then

{

REMOVE JROM_ USE(\ c g[ϊ\);

/* update composite location objects to reflect a removal of a referenced loc sig*/ verifiεd_bc_εntity <— retrim_composite_location_entity_having w_i\g[ )',

I* This gεts all other (if any) loc sigs for the composite bcation object that were vεrifiεd at thε samε time as "loc_sig[ij". Note, thesε othεr loc sigs may not πεεd to bε deleted (i.e., their signal charaαeristics may have a high confidence); however, it must be noted in the DB, that for thε DB composite bcation entity having "be sigp]", this entity is no longer complete. Thus, this entity may not be useful as, ε.g., nεural nεt training data. */ mark "vεrifiεd_bc_εntity" as incomplete but keep track that a loc sig did exist for the BS associated with "bc_sig[i]"; if ("verified_tac_εntity" now references no be sigs) then REMOVE_fROM_l/SE(m\fκd_\ cjint tf);

} II with its nεw confidence } ENDOF reduce_bad_DB_loc_sigs

increase_confidence__of_good_DB_loc_sigs(nearby_loc_sig_b ag, error_rec_set, small_error_threshold, confidence_increase_factor, recent_time);

I* This program increases the confidence of verified DB loc sigs that are (seemingly) of higher accuracy (i.e., in agreεmεnt with comparablε be sigs in thε DB). Note that thε stεps hεrein are also provided in flowchart form in Figs.19a through 19b. Inputs: loc_sig_bag: The be sigs to be tested for determining if their confidences should be increased. error_rec_set: The set of "error_recs" providing information as to how much each loc sig in "bc_sig_bag" disagrees with comparable loc sigs in the DB. That is, ther is an "error rec" here for each loc sig in "loc s bag". small_error_threshold: The error threshold below which the errors are considered too small to ignore. confidence Jπcrease ^ factor: The factor by which to increase the confidence of be sigs.

recent_time: Time period beyond which loc sigs are no longer considered recent. /* get loc sigs from the Location DB having both small absolute and relative errors (in comparison to other DB nearby loc sigs) */ relative!y_small_εrrors_bag < — gεt "εrror_recs" in "error_rεc_set" wherein each "error_rec.error" has a size smaller than, for example, the second standard deviation from the mean (averagε) of such εrrors; sma!!_errors_bag < — et "error ecs" in "relativεly_small_εrrors_bag" wherein each "error recerror" has a sizε smaller than "small_error_threshold";

DB_bc_sigs_w_small_errors < — get thε loc sigs for "εrror_recs" in "small εrrors bag" whεrein εach loc sig gottεn hεre is identified by "εrror rec.loc sigjd"; /* get loc sigs from the Location DB that have been recently added or updated */ recent_loc_sigs < —

/* subtract the recent loc sigs from the loc sigs with small errors to get the good ones */ good_DB_bc_sigs <— (small error DB Ioc sigs) - (recent_loc_sigs); /* for each good loc sig, update its confidence */ for εach bc_sig[ ' t] in good_DBJoc_sigs do

{ loc_sig[i].confidεncε <— (loc_sig[i].confidεπcε) * (confidεncejncrease aαor); if (loc_sig[i] .confidence > 1.0) then bc_sig[i] <— 1.0; }

ENDOF increase_good_DB_loc_sigs

DATA BASE PROGRAMS FOR DETERMINING THE CONSISTENCY OF LOCATION HYPOTHESES WITH VERIFIED LOCATION INFORMATION IN THE LOCATION SIGNATURE DATA BASE

LOW LEVEL DATA BASE PROGRAMS FOR LOCATION SIGNATURE DATA BASE

/* The following program compares: (al) loc sigs that are contained in (or derived from) the loc sigs in "target_loc_sig_bag" with (bl) loc sigs computed from verified loc sigs in the bcation signature data base. That is, each loc sig from (al) is compared with a corresponding loc sig from (bl) to obtain a εasurε ent of the discrepancy between thε two loc sigs. In particular, assuming εach of the loc sigs for "target_bc_sig__bag" correspond to the same target HS location, wherein this bcation is "targetjoc", this program

determinεs how well the loc sigs in "targεt_bc_sig_bag" fit with a computεd or estimated loc sig for the bcation, "targetjoc" that is derivεd from the verifiεd loc sigs in thε bcation signature data basε. Thus, this program may bε used: (a2) for determining how well the loc sigs in the bcation signature cluster for a target HS ("target Joc_sig_bag") compares with loc sigs derivεd from verified location signatures in the loαtion signature data base, and (b2) for determining how consistent a given colleαion of loc sigs ("target Joc_sig_b3g") from the bcation signature data base is with other loc sigs in the loαtion signature data base. Note that in (b2) each of the one or more loc sigs in "target Joc_sig_bag" have an error computed here that can bε used in determining if the loc sig is becoming inapplicable for predicting targεt MS loαtions Notε that thε stεps herein are also provided in flowchart form in Figs.20a through 20d.*/

Determine_Location_Signature_FitJΞrrors(targetJoc, target_loc_sig_bag, search_area, search_criteria, output_criteria)

/* Input: target oc: An MS bcation or a bcation hypothesis for a particular MS. Note, this can be any of the folbwing:

(a) An MS location hypothesis, in which case, the loc sigs in "target Joc_sig_bag" are included in a location signature cluster from which this location hypothεsis was derived. Note that if this bcation is inaccurate, then "targetJoc_sig_bag" is unlikely to bε similar to thε comparable loc sigs derived from the be sigs of the location signature data basε close "targetjoc"; or

(b) A previously verified MS location, in which case, the loc sigs of

"targεt loc sig bag" are previously vεrified loc sigs. Howevεr, these loc sigs may or may not be accurate now. target Joc_sigJjag: Measured bcation signatures ("loc sigs" for short) obtained from the particular MS (the data structure here, bag, is an aggregation such as array or list). Thε location signatures here may be verifiεd or unverified. However, it is assumed that there is at least one loc sig in the bag. Further, it is assumed that there is at most one loc sig per Base Station. It is also assumed that the present parameter includes a "type"

Field indicating whether the loc sigs here have been individually selected, or, whether this parameter references an entire (verified) loc sig cluster i.e., the type field may have a value of: "UNVERIFIED LOC SIG CLUSTER" or 'VERIFIED LOC SIG CLUSTER"; search_area: The representation of thε geographic area surrounding "targetjoc". This parameter is usεd for searching the Location Signature data base for vεrifiεd loc sigs that correspond geographically to the bcation of an MS in "search area";

search_criteria: The criteria used in searching the location signature data base. The criteria may include the following:

(a) "USE ALL LOC SIGS IN DB",

(b) "USE ONLY REPEATABLE LOC SIGS", (c) "USE ONLY LOC SIGS WITH SIMILAR TIME OF DAY".

However, environmental charaαeristiα such as: weathεr, traffic, sεason are also contemplated. output_criteria: The criteria used in determining the error records to output in "εrror_rec". Thε criteria here may include one of:

(a) "OUTPUT ALL POSSIBLE ERROR ECS"; (b) "OUTPUT ERRORJECS FOR INPUT LOC SIGS ONLY".

Returns: error_rec: A bag of error records or objects providing an indication of the similarity betwεεn εach loc sig in "targεt Joc_sig_bag" and an estimated be sig computed for "targetjoc" from stored loc sigs in a surrounding area of "targεtjoc". Thus, εach error record/object in "εrror ec" provides a measurement of how well a be sig (i.e., wireless signal charaαeristics) in "target Joc_sig_bag" (for an associated BS and the MS at "targetjoc") correlates with an estimated loc sig between this BS and MS. Note that thε εstimated loc sigs are determined using verifiεd bcation signatures in the Location Signature DB. Note, each error record in "error rec" includes: (a) a BS ID indicating the base station to which the error record corresponds; and (b) an error measurement (> = 0), and (c) a confidence value (in [0, 1]) indicating the confidence to be placed in the error measurement. Also note that since "error_rεc" is an aggregate data typε (which for many aggregatε identifiers in this specifiαtion are denoted by the suffix "_bag" on the identifier), it can be any one of a number data types even though it's members are accessed hereinbelow using array notation. */

/* get BS's associated with DB loc sigs in "search_area" that satisfy

"search__criteria" */

DBJoc_sig_bag < — retrieve_ ver/fϊed_loc_sigs(imώjim, sεarch_critεria); // gεt ail vεrifiεd appropriate location signatures residing in the Location Signature data basε.

// Notε, some loc sigs may be blocked from being retrieved. DB_BS_bag < — get_ -5Ji(DB_bc_sig_bag); // get all base stations associated with at least one locatbn // signature in DBJoc_sig_bag. Note, some of thesε BSs may bε low power "location //BSs". /* get BS's associated with loc sigs in "target_loc_sig_bag" */ target_BS_bag < — get_ ΛO(target_bc_sig_bag); // get all base stations associated with at least one //location signature in "target_loc_sig_bag".

/* determine the BS's for which error records are to be computed */

case of "output_criteria" including:

"OUTPUT ALL POSSIBLE ERROR_RECS": /* In this casε, it is desired to determine a collection or error records wherein there is an error record for each BS that is associated with a loc sig in "targetJoc_sig_bag" and for each BS associated with a loc in the "search area" satisfying "search_critεria". */ BS_bag <— (DB BS bag) union (targεt_BS_bag);

"OUTPUT ERRORJECS FOR INPUT LOC SIGS ONLY":

BS bag <--- targεt JS bag; endαse;" /* for each BS to have an error record computed, make sure there are two loc sigs to compare: one loc sig derived from the "BS_bag" loc sig data, and one from derived from the loc sigs in the Location Signature DB, wherein both loc sigs are associated with the location, "targetjoc". */ foreach BS[ϊJ in "BS bag" do { I* determine two (estimated) loc sigs at "targetjoc", one derivεd from "targεt_bc_sig_bag" (if possible) and one dεrivεd from Location Signature DB loc sigs (if possiblε) */ comparison Joc_sig ag [i] <— retrieve /erified_loc_sigs_foιi^\ , sεarch_area, search_critεria);

/* gεt all loc sigs for which BS[i] is associated and wherein the verified NS location is in "search_area" (which surrounds the location "targetjoc") and wherein the loc sigs satisfy "search_criteria". */

/* now determine if there are enough loc sigs in the "comparison Joc_sig_bag" to make it worthwhile to try to do a comparison. */ if ( (SIZEOf(comparisonJoc_sigJag[i])/(SIZEOf(search_area)) ) < min_threshold_ratio(area_type(sεarch_arεa)) ) then /* it is believed that there is not a dense enough number of verifiεd loc sigs to compute a composite loc sig associated with a hypothetical MS at "targetjoc". */ error_rec[i].error <— invalid; else /* there are enough loc sigs in "comparison_loc_sig_bag" to continue, and in particular, an estimated loc sig can be derived from the loc sigs in "comparison_ loc_ sig_ bag"; however, first see if a target loc sig can be determined; if so, then make the estimated loc sig (denoted "estimated_loc_sig[i]") . */

{

if (BS[i] is in targεt JS Jag) thεn

/* get a loc sig in "targεt JS bag" for BS[i]; assumε at most oπε loc sig per BS in "targεt Joe sig Jag" */ targεt_bc_sig[i] < — get_loc_ J#(BS[i], targεt loc sig bag); εlsε /* BS[i] is not in "target_BS_bag", accordingly this implies that we are in the process of attempting to output all possible error records for all BS's: (a) that havε previously been deteαed in the area of "search area" (satisfying "sεarch_critεria"), union, (b) that are associated with a loc sig in "targεt Joe g Jag". Notε, thε path hεre is performed when the MS at the bcation for "targetjoc" did not detect the BS[i], but BS[i] has previously bεεn dεtεαεd in this area. */ if (target lo sig bag.type = = "UNVERIFIED LOCSIG CLUSTER") thεn

/* can at least determinε if thε MS for thε cluster deteαed the BS[i]; i.e., whethεr BS[i] was in the set of BS's detected by the MS even though no loc sig was obtained for BS[i]. */ if (BS_onfy Jrøc7i?fl(targεt loc sig bag, BS[i]) ) thεn /* dεteαed but no loc sig */ εrror_rec[i].error < — invalid; /* can't dεtermine an error if this is all the information we have */ elsε /* BS[i] was not deteαed by the MS at "target Joc.bαtion", so the pilot channel for BS[i] was in the noise; make an artificial loc sig at the noise ceiling (alternatively, e.g., a mεan noise value) for the MS locatbn at "targεtjoc" */ target fo sϊg[i] <— get_noise_ceilingJoc_sig(ϊ&ψt_ hι); εlsε; /* do nothing; thεrε are no othεr types for "target Joe sig Jag.type" that are currently usεd whεn outputting all possible εrror records for BS's */ if (error_rec[i] .error NOT invalid) thεn

/* we have a "target bc_sig" for comparing, so get the derivεd loc sig εstimatε obtainεd from thε verified loc sigs in the locatbn signature data base. */ estimated Jocjgjf ] < — estimate Joc_sig rom_DB(target bc.bαtioπ, comparison be sig bagfj]); /* The above call funαion provides an estimated loc sig for the bcation of "targetjoc" and BS[i] using the verifiεd loc sigs of "comparison be sig Jagp]" */ }

/* for each BS whose error record has not been marked "invalid", both "target oc_sig" and "estimated_loc_sig" are now well-defined; so compute an

error record related to the difference between "target_loc_sig" and "estimated_loc_sig". */ for each BS [i] in "BS Ja " with error_rεc[i].error not invalid do /* determine the error records for thesε base stations */

{ /* Notε, the "target Joe g" here is for an MS at or near the locatbn for the center of area for "targetjoc". */ error_rεc[i] < — get ifference_measurement(targεt bc_sig[i], estimated Joe sig [i], comparison loc_sigJag[i], sεarch_area, seareh_criteria);/* gεt a mεasuremεnt of thε difference between thesε two loc sigs. */ error_rec.loc_sigjd <— targεt Joc_sig[i].id; /* this is thε loc sig with which this εrror_rεc is associated */ error rec.comparison bc_sig id bag < — comparison Joc_sig bag[i];

} RETURN(εrror_rec);

ENDOF Determine ocation_Signature_Fit_Errors

estimateJoc_sig_from_DB(loc_for_estimation, loc__sig_bag)

/* This function uses the verified e sigs in "bc_sig_bag" to determine a single estimated (or "typical") loc sig derived from the loc sigs in the bag. Note, it is assumed that all loc sigs in the "bc_sig bag" are associated with the same BS 122 (denotεd thε BS associated with the "bc_sig Jag") and that the loαtions associated with these loc sigs are near "loc for estimation". Furthεr, notε that since the loc sigs are verified, the associated base station was the primary base station when the loc sig signal measurements were sampled. Thus, the measurεmεnts arε as precise as the infrastruαure allows. Note that the steps herein are also provided in flowchart form in Fig.21. Input: loc Jor_estimation A representation of a service area locatbn. be g Jag A colleαion of verified loc sigs, each associated with the same base station and each associated with a service area bcation presumably relatively nεar to thε bcation represented by "bejor stimation". */ est_bc_sig <— extrapolate interpolate a locatbn signature for the bcation at "locjor estimation" based on loc sigs in "loc gjag"; /* Note, "εst loc sig" includεs a loαtion signature and a confidεncε measure. The confidencε mεasure (in the range: [0, 1]) is based on: (a) the number of verifiεd loc sigs in thε sεarch arεa; (b) how wεll they surround the center bcation of the new Joe, and (c) the confidencε faαors of thε be sigs in "loc g Jag" (ε.g., use average confidence value).

Note, for thε extrapolation/interpolation computation hεre, thεrε are many such extrapolation/interpolation mεthods available as one skilled in the art will appreciate. For examplε, in onε εmbodimεnt of an extrapolation/interpolation mεthod, the folbwing steps arε contemplated:

(39.1) Apply any pre-processing constraints that may alter any subsequently computed "est Joe g" values derived below). For examplε, if thε BS associated with "bc_sig Jag" is currently inactive "bcation BS" (i.e., "aαive" meaning the BS is on-line to process bcation information with an MS, "inaα ' rve" meaning the not on-line), then, regardlεss of any valuεs that may bε dεtεrmined hereinbelow, a value or flag is set (for the signal topography characteristics) indicating "no signal" with a confidence value of I is provided. Further, additional pre¬ processing may bε performed when thε BS associatεd with "loc_sig Jag" is a bcation BS (LBS) since the constraint that a pilot channεl from such an LBS is likεly to bε only detectable within a relativεly small distancε from the BS (e.g., 1000 ft). For example, if the MS location, "locjor_εstimation", doεs not intεrsεα thε radius (or arεa contour) of such a bcation BS, then, again , a valuε or flag is sεt (for thε signal topography charaαeristics) indicating "outside of LBS area" with a confidencε value of I is providεd. Alternatively, if (a) a determined area, A, including the MS locatbn, "bcjor_estimation" (which may itsεlf be, and likely is, an area), intersects (b) the signal detectable area about the bcation BS, then (c) thε confidεnce faαor value may be dependent on the ratio of the area of the intersection to the minimum of the size of the area in which the LBS is detectable and the size of the area of "locjor_εstimation", as onε skilled in the art will appreciate.

Furthεr, it is noteworthy that such pre-processing constraints as performed in this step may be provided by a constraint processing expert system, wherein systεm paramεters used by such an expert system are tuned using the adaptation engine 1382.

(39.2) Assuming a value of "no signal" or "outside of LBS area" was not set above (since otherwise no further steps are performed here), for each of thε coordinates (records), C, of the signal topography charaαeristics in the be sig data struαure, generate a smooth surface, S(C), of minimal contour variation for the set of points { (x,y,z) such that (x,y) is a representation of a service area loαtion , and z is a valuε of C at the location (x,y) for somε loc sig in "loc_sig Jag" whεrein (x,y) is a point estimate (likely centroid) of thε loc sig}. Notε that a lεast squares tεchniquε, a partial lεast squares technique, or averaging on "nearby" (x,y,z) points may be used with points from the above set to generate other points on the surface S(C). Additionally, note that for at least some surfaces characterizing signal energy, the genεration procεss for such a surface may usε thε radio signal attenuation formulas for urban, suburban, and rural developed by M. Hata in IEEE Trans, VT-29, pgs.317-325, Aug. 1980, "Empirical Formula For Propagation Loss In Land Mobile Radio" (herein incorporated by referencε).

For εxamplε, Hata's formulas may bε used in: (39.2.1) Determining portions of the surfaces S(C) where there is a low density of verifiεd loc sigs in

"loc Jag". In particular, if thεrε is a very low density of verified loc sigs in "loc sigjag" for the service area surrounding the bcation of "loc for estimation", then by determining the area

typε(s) (e.g., transmission area typε as dεscribεd hereinabove, assuming a .correspondence betwεεn the transmission area typεs and thε more coarsε grained categorization of : urban, suburban, and rural) between this bcation and the base station associated with "loc sig bag", and applying Hata's corresponding formula(s), a signal value z may be estimated according to these type(s) and their corresponding area εxtents betwεεπ thε MS and thε BS. Notε, however, that this option is considered lεss optimal to using thε vεrifiεd loc sigs of "loc_s ' ιg Jag" for dεtermining thε valuεs of a surface S(C). Accordingly, a bwεr confidεncε vaiuε may bε assigπεd thε resulting composite loc sig (i.e., "est_bc_sig") dεtεrminεd in this manner; and relatedly, (39.2.2) Dεtεrminiπg a surface coordinate (x yo ι z o) of S(C) when there are nearby verified loc sigs in "loc sig bag". For example, by using Hata's formulas, an estimated surface value z, at the location

(x 0 ,y 0 ) may be derivεd from estimating a value z ; at (x 0 ,y 0 ) by adapting Nata's formula's to extrapolate/interpolate thε value Z; from a nearby location (X j .y,) having a verified loc sig in "loc_sig Jag". Thus, one or more estimatεs Zj may be obtained used in deriving z 0 as onε skillεd in statistics will appreciate. Note, this technique may be used when there is a moderately low density of verifiεd loc sigs in "bc_sig Jag" for thε service area surrounding the locatbn of

"bcJor_estimation". Howεvεr, sincε such techniques may be also considered less than optimal to using a higher density of verifiεd loc sigs of "loc g Jag" for determining the values of a surface S(C) via a least squares or partial least square techniquε, a lowεr confidεncε vaiuε may bε assignεd thε resulting composite loc sig (i.ε., "est bc_sig") dεtεrmiπεd in this mannεr. Furthεr, recall that thε valuεs, z, for εach loc sig are obtained from a composite of a plurality of signal measurements with an MS, and, that each value z is the most distinct value that stands out above the noise in measurεmεnts for this coordinate, C. So, for εxample in the CDMA case, for each of the coordinates C representing a finger of signal energy from or to some MS at a verifiεd bcation, it is bεiiεved that S(C) will be a smooth surface without undulations that are not intrinsic to the service area near "locjorjstimation". (393) For εach of thε coordinates, C, of thε signal topography charaαeristics, extrapolate/interpolate a C-coordiπate value on S(Q for an estimated point location of "loc Jor_estimation". Further note that to providε more accurate estimates, it is contemplated that Hata's threε geographic catεgoriεs and corresponding formulas may bε usεd in a fuzzy logic framεwork with adaptivε mεchanisms such as thε adaptation εnginε 1382 (for adaptivεfy determining the fuzzy logic classifications). Additionally, it is also within the scope of the presεnt invεntion to usε thε techniques of L. E. Vogler as presεntεd in "Thε

Attεnuation of Elεαromagnεtic Waves by Multiple Knife Edge Diffraction", US Dept of Commercε, NTIA nos, 81-86 (hεrein incorporated by rεference) in the presεnt context for estimating a loc sig betwεεn thε basε station associated with

"loc sig bag" and thε locatbn of "locjorjstimation". */

RETURN (est Jocjig )

ENDOF estimateJ " oc_sig_from_DB

get_area_to_search(loc) f* This function determinεs and returns a represεntation of a gεographic area about a bcation, "loc", wherein: (a) the geographic area has associated MS locations for an acceptablε πumbεr (i.e., at lεast a determiπεd minimal numbεr) of vεrifiεd loc sigs from thε bcation signature data basε, and (b) thε gεographical arεa is not too big. However, if thεre are not εnough loc sigs in εven a largεst acceptablε sεarch area about "be", then this largest search area is returned. Notε that thε stεps herein are also providεd in flowchart form in Figs.22a through 22b. */

{ bc_area_tyρe < — get_area_ type oή /*gεt thε area typε surrounding "loc"; note this may bε a vεαor of fuzzy valuεs associatεd with a central bcation of "loc", or, associated with an area having "loc".

*/ search_area /* this is thε largεst area that will be used */ savεd _search_area < — search_area; // may nεεd it after "sεarch_area" has bεεn changεd sεarch_area_types <— get_area_ r/v earcl rea); //e.g., urban, rural, suburban, mountain, etc. loop until RETURN performed:

{ miπ_acceptable_πbrJoc_sigs <— 0; // initialization for each area ype in "search area ypεs" do { arεa_pεrcεnt <—get_perceπt_of_area_of^xn_ t^ , sεarch_arεa); f* get percεntagε of area having "area type" */ min_accεptablε_πbr Joc_sigs < — min_acceptable_nbr_bc_sigs +

[(gεt_min_accεptab(ε_vεrifed_bc_sig_densityjOr(area_t ypε)) * (SIZEOF(sεarch_area) * area percentt / 100)];

}

/* Now get all verified loc sigs from the bcation signature data basε whose associated MS location is in

"search_area". */ total_πbr Joc igs < — get_all_ verified ^ DB_ loc_ j/ $εarch_area); if (min_accεptablε_nbr_bc_sigs > total_nbr bc_sigs) thεn f* not εnough loc sigs in "search_area"; so return "saved _search_arεa" */ RETU N(saved search area); εlsε /* there is at least enough loc sigs, so see if "search area" can be decreased */ { saved_search_area <— search_area;

sεarch_area < — decrease search a/ea aboul at, sεarch irea);

} } } ENDOF get_area to_search

/* For procεssing various typεs of loc sigs, particular signal procεssing filters may be required. Accordingly, in one embodimεnt of thε presεnt invention, a "filter Jag" objεct class is providεd wherein various filters may be methods of this objeα (in object-oriεnted terminology) for transforming loc sig signal data so that it is comparable with othεr loc sig signal data from, for εxample, an MS of a different classification (e.g., different power classification). It is assumed here that such a "filter bag" object includes (or references) one or more filter objeαs that correspond to an input filter (from the Signal Filtering Subsystem 1220) so that, given a loαtion signature data object as input to the filter bag objeα,, each such filter objeα can output loc sig filtered data corresponding to the filter object's filter. Notε, such a filter Jag objeα may accept raw loc sig data and invoke a corresponding filter on the data. Furthεr, a filter bag objεα may reference filter objects having a wide range of filtering capabilities. For examplε, adjustmεnts to loc sig data according to signal strength may be desired for a particular loc sig comparison operator so that the operator can properly compare MS's of different powεr classes against one another. Thus, a filter may bε providεd that utilizes, for each BS, a corresponding signal strength change topography map (automatically genεrated and updated from thε vεrifiεd loc sigs in thε loαtion signature data basε 1320) yiεiding signal strength changes detected by the BS for vεrifiεd MS location's at various distances from the BS, in the radio coveragε area. Additionally, thεre may also be filters on raw signal be sig data such as quality charaαeristics so that loc sigs having different signal quality charaαeristics may be compared. */

get_difference_measurement(target_loc_sig, estimatedJoc_sig, comparison_loc_sig_bag, search_area, search_criteria)

/* Compare two bcation signatures betwεεn a BS and a particular MS location (εither a vεrifiεd or hypothesized location) for determining a measure of their differencε relative to the variability of thε vεrifiεd bcation signatures in thε

"comparison Joc_sig Jag" from thε bcation signature data basε 1320. Note, it is assumed that "target_loc_sig", "estimated_loc_sig" and the loc sigs in "comparison_loc_sig_bag" are all associated with the same BS 122. Moreovεr, it is assumεd that "targεt bc_sig"and "εstimatεd be sig" are wεll-dεfinεd non-NIL loc sigs, and additionally, that "comparisonJoc_sig bag" is non-NIL. This funαion returns an εrror record, "error_rec", having an error or differencε valuε and a confidεncε valuε for thε εrror valuε. Note, thε signal characteristics of "targεtJoc_sig" and thosε of "εstimatεd Joc_sig" are not assumεd to bε normalized as described in section (26.1) prior to entering this function so that variations in signal characteristics resulting from variations in (for example) MS signal processing and generating charaαeristics of different types of MS's may be reduced, as dεscribεd in the discussion of the loc sig data type hereinabove. It is further assumed

that typically the input loc sigs satisfy the "search riteria". Notε that the steps herein are also provided in flowchart form in Figs. 23a through 23c.

target Joc_sig: The loc sig to which the "error_rec" dεtεrminεd hεre is to be associated. Note that this be sig is associatεd with a bcation denoted hereinbelow as the "particular location".

estimated Joc_sig: The loc sig to compare with the "target Jocjig", this be sig: (a) bεing for thε samε MS locatbn as "targεtjocjig", and (b) dεrivεd from vεrifiεd loc sigs in the bcation signature data base whεnεver possible. However, note that if this be sig is not derivεd from thε signal characteristics of loc sigs in the bcation signature data base, then this parameter provides a e sig that corresponds to a noise levεl at the particular MS bαtion. comparison Joc_sig_bag: The universe of loc sigs to use in determining an error measuremεnt bεtwεεn

"targεt Joe sig" and "estimated Joe ig" . Note, the loc sigs in this aggregation includε all loc sigs for thε associatεd Base Station 122 that are in the "search area" (which surrounds the particular MS bcation for "targetjoc jig") and satisfy the constraints of "search jriteria". It is assumed that there are sufficient loc sigs in this aggregation to perform at least a minimally effective variability measurement in the loc sigs herε. search_area: A representation of the geographical area surrounding the particular MS loαtion for all input loc sigs. This input is used for determining extra information about the search area in problematic circumstances. search riteria: The criteria used in searching the location signature data basε 1320. Thε criteria may include thε following:

(a) "USE ALL LOC SIGS IN DB",

(b) "USE ONLY REPEATABLE LOC SIGS",

(c) "USE ONLY LOC SIGS WITH SIMILAR TIME OF DAY

Howεver, environmental charaαeristics such as: weathεr, traffic, sεason are also contemplated. */

error <— 0; // initialization

/* get identifiers for the filters to be used on the input loc sigs */ filterjag <---

/* It is assumed hεre that each entry in "filterjag" identifies an input filter to be used in the context of determining a difference measurement betwεεn loc sigs. Note, if all be sigs to be used herε arε of thε same type, thεn it may bε that thεre is no neεd for filtering here. Accordingly, "filter bag" can be empty. Alternatively, there may bε one or more filter objeαs in "filterjag".*/

/* initializations */

/* for each filter, determine a difference measurement and confidence */ for each filter bj indicated in filter Jag do {

/* filter "target_ loc ^ sig", "estimated^ loc_ sig" and loc sigs in "comparison_ loc_ sig_ bag"; note, each fifter_obj can determine when it needs to be applied since each loc sig includes: (a) a description of the type (e.g., make and model) of the loc sig's associated MS, and (b) a filter flag(s) indicating filter s) that have been applied to the loc sig. */ targεt Joe jig < — filter tbj(targεt be jig); /* filter at least the signal topography characteristics */ estimated Joe jig < — filter j>bj(estimated be jig); /* filtεr at least the signal topography charaαeristics */ comparisonjocjigjag<— filter )bj(comparisonJocjig Jag); /* filtεr loc sigs hεre too */ }

/* determine a difference measurement and confidence for each signal topography characteristic coordinate */ for εach signal topography characteristic coordinate, C, of thε loc sig data typε do

{ variability nεas tval < — et_ variability_raπge[i, comparison Joe sig bag); /* This funαion providεs a rangε of thε variability of thε C-coordinatε. In onε embodiment this measurement is a range corresponding to a standard deviation. However, other variability measurement definitions are contemplated such as second, third or fourth standard dεviations. */ /* make sure there are enough variability measurements to determine the variability of values for this coordinate. */ if (SIZEOF(comparisonJoc jig Jag) < expected_BS_/oc_s/g_thresbofo{ιmά im, sεarch ritεria)) thεn /* use thε data here, but reduce the confidence in the variability measurement. Note that it is expeαed that this branch is performed only when "comparison Jocjig bag" is minimally big enough to use (since this is an assumption for performing this funαion), but not of sufficient sizε to havε full confidεncε in thε valuεs obtained. Note, a tunable system parameter may also be incorporated as a coefficient in the computation in the statement immediately below. In particular, such a tunable system parameter may be based on "search rεa" or more particularly, area types intersecting "search rea".*/ {

variability jnεasmt conf εduction factor < — SIZEOF(comparison be jig Jag)/ expected_ BS_ loc_ sig_ threshold($Mώ_am, sεarch ritεria);

} εlsε /* Thεrε is a sufficiεnt numbεr of loc sigs in "comparison be jig Jag" so continuε */ { variability mεasmt conf εduαbnjaαor <— 1.0; //i.ε., don't red ucε confidεnce

}

/* Now determine the C-coord difference measurement between the

"target_loc_sig" and the "estimated_loc_sig" */ delta < — /rø(target Jocjig[C] - estimated Joe sig[C]); // get absolute valuε of thε difference if (delta > variability measmt.val) then

{ error < — error + (delta/variability_measmt.val);

} }/* end C-coord processing * ' /

/* construct the error record and return it */ error ecerror <— error;

/* Get an average confidence value for the loc sigs in "comparison_loc_sig_bag" Note, we use this as the confidence of each loc sig coordinate below. */ average onfidεncε < — AVERA6E(\oz sig.confidεncε for locjig in "comparison Jocjig Jag"); εrror εcconfidεncε <— MIN(target Joe jig onfidεncε, εstimatεd locjig.confidεnce, (average confidence * variability nεasmt onf εduαionjaαor)); // presently not used RETURN(error rεc); ENDOF get_difference_measurement

APPENDIX D: Context Adjuster Embodiments

A description of the high level functions in a first embodiment of the Context Adjuster context_adjuster(loc_hypJist) /* This funαion adjusts thε bcation hypothεsεs on thε list, "loc_hyp_list", so that thε confidεncεs of thε bcation hypothεsεs are determined more by empirical data than default values from thε First Order Models 1224. That is, for each input location hypothesis, its confidence (and an MS location area estimate) may be exclusively determined here if there are enough verifiεd bcation signatures avaiiablε within and/or surrounding thε bcation hypothεsis estimate.

This funαion creates a new list of loαtioπ hypotheses from the input list, "locjypjist", wherein the bcation hypothesεs on thε nεw list arε modifiεd vεrsions of those on the input list. For each location hypothesis on the input list, one or more corresponding location hypothεsεs will bε on thε output list. Such corresponding output location hypothεses will differ from their associated input bcation hypothesis by one or more of the following: (a) the "image rea" field (seε Fig.9) may bε assignεd an arεa indicative of where the target MS is estimated to be, (b) if "image rea" is assigned, then the "confidence" field will be the confidence that the target MS is located in the area for "image rea", (c) if there are not sufficient "nearby" verified bcation signature clusters in the ioαtioπ signature data base to entirely rely on a computεd confidεncε using such vεrified bcation signature clusters, then two loαtion hypotheses (having reducεd confidεncεs) will bε returned, one having a reduced computed confidencε (for "imagε rea") using the vεrified clusters in the Location Signature DB, and onε bεing substantially thε samε as the associated input bcation hypothesis except that the confidencε (for thε fiεld "area st") is reducεd to reflect the confidencε in its paired location hypothesis having a computed confidence for "image rεa". Note also, in some cases, the bαtion hypothesεs on thε input list, may havε no change to its confidencε or thε area to which thε confidεncε appliεs. Note that the steps hεrein arε also providεd in flowchart form in Figs.25a and 25b. */

{ nεwjocjypjist <— create_new_empty_list§; for εach loc Jypfj] in loc_hyp_Iist do /* Notε, "i" is a First Ordεr Modεl 1224 indicator, indicating thε modεl that output

"hypjocfi]" */

{

/s? ? f7 e_ >z/i77_//j (1oc_hyp[i] , loc_hyp_Iist); if (NOT loc Jypfj] . adjust) thεn /* no adjustmεnts will bε madε to thε "arεa st" or thε "confidencε" fields since thε "adjust" field indiαtes that there is assurance that these other fields are correα; note that such designations indicating that no adjustment are presently contemplated are only for thε location hypothεses generated by the Home Base Statbn First Order Modεl, the Locatbn Base Station First Ordεr Modεl and the Mobil Basε

Station First Ordεr Modεl. In particular, location hypothesεs from thε Ho ε Base Station model will have confidences of 1.0 indiαting with highest confidεncε that thε targεt MS is within thε arεa estimate for the bcation hypothesis. Alternatively, in the Location Base Station model, generated location hypotheses may have confidences of (substantially) + 1.0 (indicating that the target MS is absolutely in the area for "area st"), or, -1.0 (indicating that thε targεt MS is NOT in the area estimate for the generated loαtion hypothesis).*/ { be Jιyp[i].image_area < — NULL; // no adjustment, then no "image area" add o_list(πew_locJyp_list, bcjyp[i]);//add "be Jypfj]" to thε new list

} else /* the bcation hypothesis can (and will) be modified; in particular, an "image rεa" may be assigned, the

"confidencε" changεd to reflect a confidence in the target MS being in the "image rea". Additionally, in somε casεs, more than one bcation hypothesis may be genεrated from "loc Jypfj]". See the comments on FIG.9 and the comments for "get djusted Joe Jypjist Jor" for a description of the tεrms here. */

{ temp list < — get_ad justed Joc_hypJist Jor(loc_hyp[i]); new Joe Jypjist <— rø77.V/rø /kι(newJoc Jypjist, te pjist);

}

RETURN (new Joe Jypjist); }ENDOF

get_adjustedJoc_hypJist_for(loc_hyp)

/* This funαion returns a list (or more generally, an aggregation objeα) of one or more bcation hypothesεs related to the input bcation hypothesis, "loc_hyp". In particular, the returned locatbn hypothesεs on the list are "adjusted" versbns of "loc Jyp" in that both their target MS I'lO bcation estimates, and confidence placed in such estimates may be adjusted according to archival MS bαtion information in the loαtion signature data base 1320. Note that the steps herein are also providεd in flowchart form in Figs. 26a through 26c. RETURNS: loc_hyp_list This is a list of one or more location hypothesεs related to the input "loc hyp". Each location hypothesis on "loc Jypjist" will typically be substantially the same as the input "loc_hyp" except that there may now be a new target MS estimate in the field, "image rea", and/or the confidence value may be changed to reflect information of verified location signature clusters in the location signature data base. Introductory Information Related to the Function, "get adjusted loc iyp ist for"

This function and functions called by this funαion presuppose a framework or paradigm that requires some discussion as well as the defining of some terms. Note that some of the terms definεd hereinbelow are illustrated in Fig.24.

Dεfinε thε term the "the cluster set" to be the set of all MS bcation point estimatεs (ε.g., thε values of thε "pt st" field of the bcation hypothesis data type), for the presεnt FOM, such that these estimatεs are within a predetermined corresponding area (e.g., "loc _hyp.pt ovεring" bεing this predetermined corresponding area) and thesε point εstimatεs have verified bcation signature clusters in the bcation signature data base.

Note that the predetermined corresponding area above will be denoted as the "cluster set area".

Define the term "image cluster set" (for a given First Order Model identifiεd by "locJyp.FOMJD") to mean the set of verifiεd location signature clusters whose MS location point estimatεs are in "thε clustεr set". Note that an area containing the "image cluster sεt" will bε dεnot d as the "image cluster set area" or simply the

"image area" in some contexts. Further note that the "image cluster set area" will be a "small" area encompassing the "imagε clustεr set". In one embodiment, the image cluster set area will be the smallest covering of cells from the mesh for the present FOM that covers the convex hull of thε image clustεr sεt. Note that preferably, each cell of each mesh for each FOM is substantially contained within a single (transmission) area type. Thus, the present FOM provides the correspondεncεs or mapping betweεn elements of the cluster set and elεmεnts of thε imagε cluster set. */

{ add o_list(loc Jypjist, loc Jyp); /* note the fields of " cjyp" may bε changed below, but add "loc Jyp" to the list,

" e Jypjist herε */ mεsh <— get_ce//_ nesh_for_πιodel(\oc ,'fpSOft_\ >y, I* get the mesh of geographic cells for the First Order Model for this locatbn hypothesis.*/ pt nin rea <—get_/n/n_area_surrounding_pt(\oc \yf), mesh); /* Get a minimal area about the MS location point,

"pt st" of "be Jypfj]" indicating a point bcation of the target MS. Note that eithεr the "pt jst" fiεtd must bε valid or the "area st" field of "loc Jypp]" must be valid. If only the latter field is valid, then the centroid of the "areajst" field is determined and assigned to the "pt st" field in the function called herε. Note that thε mεsh of thε modεl may bε usεful in determining an appropriately sized area. In particular, in one embodimεnt, if "loc _hyp.pt jst" is interior to a cell, C, of the mesh, then "pt nin rea" may correspond to C. Furthεr notε that in at lεast one εmbodimεnt, "pt nin rea" maybe dependent on the area typemtb ' m which "loc Jyp.pt st" resides, since sparsely populated flat areas may be provided with larger valuεs for this identifier. Further, this funαion may provide values accoiding to an algorithm allowing periodic tuning or adjusting of the values output, via, e.g., a Monte Carlo simulation (more generally, a statistical simulation), a regression or a Gεπetic Algorithm. For the present discussion, assume: (i) a cell mesh per FOM 1224; (ii) each cell is contained in substantially a single (transmission) area typε; and (iii) "pt nin rea" represents an area of at least one cell. '/ area < — pt jnin rεa; // initialization

ptjnax rεa <—get_ffm_area_swrotndmg_pt(\otJ,yp, mesh); /* Get the maximum area about "pt st" that is deεmed worthwhile for examining the behavior of the "loc Jyp.FOM JD" First Order Model (FOM) about "pt jst". Note that in at lεast oπε embodiment, this value of this identifier may also be dependent on the area type within which "loc Jyp.pt st" resides. Further, this function may provide values according to an algorithm allowing periodic tuning or adjusting of thε values output, via, e.g., a Monte Carlo simulation (more generally, a statistical simulation or regression) or a Genetic Algorithm. In some embodimεnts of the presεnt invention, the value detεrminεd hεrε may bε a relatively large proportion of thε entire radio coverage area region. However, the tuning process may be used to shrink this value for (for example) various area types as loαtion signature clusters for verifiεd MS location εstimatεs are accumulated in the bcation signature data base. */ min lusters < --- get_miπ_nbr_of Mter4\ot yp.ϊ0l l {_\[), mz); /* Forthε arεa, "arεa", gεt thε minimum numbεr

(" iπ lusters") of archived MS estimatεs, L, desired in generating a new target MS location estimate and a related confidencε, whεrein this minimum number is likely to provide a high probability that this new target MS locatbn estimate and a related confidence are meaningful enough to use in subsequent Loαtion Centεr procεssing for outputting a targεt MS bcation estimate. More precisely, this minimum number, "min lusters," is an estimatε of the archived MS bcation estimatεs, L, required to providε the above mentioned high probability wherein each L satisfies the folbwing conditions: (a) L is in the area for "area"; (b) L is archived in the bcation signature data base; (c) L has a corresponding verifiεd location signature cluster in the bcation signature data base; and (d) L is generated by the FOM identified by "loc JypJOM JD"). In one embodimεnt, "minjlusters" may be a constant; however, in another it may vary according to arεa typε and/or area size (of "area"), in some it may also vary according to the FOM indicated by "loc hyp.FOM JD". */ pt stjag Get the MS location point estimates for this FOM wherein for each such estimate: (a) it corresponds to a verifiεd bcation signature cluster (that may or may not be near its corresponding εstimatε), and (b) each such MS estimate is in "pt nin rea". */ /* Now, if necessary, expand an area initially starting with "pt nin_area" until at least "minjlusters" are obtained, or, until the expanded area gets too big. */ while ((sizeof(pt_est_bag) < min lusters) and (sizeof(area) < = ptjna rεa) do { area < — increasefatti)', minjlusters <---get_mm_nbr_of_clusters(\oc ιy)JOtt_\\), arεa); //update for new "area" ptjstjag } attach_ /ø(loc Jyp.pt ovεring, area); // Makε "arεa" thε "pt covεring" field

if (sizeof(pt st Jag) = = 0) thεn /* there aren't any other FOM MS estimates having corresponding verifiεd location signature clusters; so designate "be Jyp" as part of the second set as describεd above and return. * " /

{ be Jyp.imagε rea < — NULL; // no image area for this loc_hyp; this indicates second set

RETURN(loc Jypjist);

} /* It is now assured that "ptjstjag" is non-empty and "area" is at least the size of a mesh cell. •/

/* Now determine "image trea" field for "loc yp" and a corresponding confidence value using the verified location signature clusters corresponding to the MS point estimates of "area" (equivalently, in "pt est ag"). */

/* There are various strategiεs that may bε usεd in determining confidences of the "image rea" of a location hypothesis. In particular, for the MS location estimatεs (gεnεrated by the FOM of loc Jiyp.FOM ID) having corresponding vεrified loαtion signature clustεrs (that may or may not bε in "area"), if the number of such MS bcation estimates in "area" is deemed sufficiently high (i.e., > = "min lusters" for "arεa"), then a confidence value can be computed for the "image rea" that is prediαive of the target MS being in "image rea". Accordingly, such a new confidencε is used to overwrite any previous confidencε value corresponding with the target MS estimate generated by the FOM. Thus, the initial estimate generated by the FOM is, in a sensε, an index or pointer into the archived bcation data of the bcation signature data base for obtaining a new target MS location estimate (i.e., "imagε rea") basεd on previous vεrifiεd MS locations and a nεw confidence value for this new estimatε. Alternatively, if the number of archived FOM MS estimatεs that are in "arεa," whεrεin εach such MS εstimate has a corresponding verified locatbn signature clusters (in "image area"), is dee εd too small to reliably usε for computing a new confideπcε valuε and consεquently ignoring the original target MS location estimate and confidencε gεnεratεd by the FOM, then strategies such as the folbwing may be implemεntεd.

(a) In one embodimεnt, a determination may be made as to whether there is an alterπativε arεa and corresponding "image rea" that is similar to "area" and its corresponding "image rea" (e.g., in area sizε and type), wherein a confidencε value for the "image area" of this alternative area can be reliably computεd duε to thεrε being a sufficient number of previous FOM MS estimates in the alternative area that have corresponding verified loαtion signature clusters (in the location signature data basε). Thus, in this εmbodiment, thε eonfidεncε of thε alternative "image rea" is assigned as the confidence for thε "imagε rea" for of "area". (b) In another embodimεnt, thε area represented by "pt max rea" may bε madε substantially idεntical with thε

MS location service region. So that in many casεs, thεrε will bε, as "arεa" increases, eventually be enough MS bcation estimates in the cluster set so that at least "minjlusters" will be obtained. Note, a drawback here is that "imagε area" may bε in become inordinately large and thus be of little use in determining a meaningful target MS location estimate.

(c) In anothεr εmbodiment, denotεd hεrein as thε two tiεr strategy, both the original FOM MS bcation estimatε and confidεncε as wεll as thε "imagε rea" MS loαtion εstimatε and a confidence are used. That is, two bcation hypotheses are provided for the target MS bcation, one having the FOM MS location estimatε and one having the MS bcation estimate for "image rεa". Howevεr, thε coπfidencεs of εach of thεse location hypothesεs maybe reduced to reflect the resulting ambiguity of providing two different location hypothesεs dεrivεd from the same FOM MS estimate. Thus, the computations for determining the confidence of "image rea may be performed even though there are less than the minimally required archived FOM estimatεs nεarby to the original FOM target MS estimate. In this embodimεnt, a wεighting(s) may bε used to weight thε confidence valuεs as, for εxample, by a function of the size of the "image cluster sεt". For examplε, if an original confidence value from the FOM was 0.76 and "area" contained only two-thirds of the minimally acceptable number, "min lusters", then if the computation for a confidencε of thε corresponding "image area" yielded a new confidence of

0.43, then a confidencε for thε original FOM target MS estimate may be computed as [ 0.76 * (1/3)] wherεas a confidεncε for thε corresponding "imagε rea" may bε computεd as [0.43 * (2/3)]. Howεvεr, it is within the scope of the presεnt inventbn to use other computations for modifying the confidεncεs usεd hεre. For example, tunable system coefficients may also be applied to the above computed confidencεs. Additionally, note that some embodimεnts may require at least a minimal number of relevant verified bcation signature clusters in the bcation signature data base before a bcation hypothesis utilizes the "image rea" as a target MS bcation estimate.

Although an important aspeα of the presεnt invεntion is that it providεs increasingly more accurate MS location εstimatεs as additional vεrifiεd location signatures are obtainεd (i.e., added to the bcation signature data base), it may be thε casε that for somε areas thεre is substantially no pertinent verified bcation signature clustεrs in thε bcation signature data base (e.g., "imagε jrea" may be undefined). Accordingly, instead of using the original FOM genεrated location hypothεses in the same manner as the loαtion hypothesεs having targεt MS location estimates corresponding to "image reas" in subsequεnt MS bcation estimation processing, these two types of location hypothesεs may be procεssed separately. Thus, a strategy is provided, wherein two sets of (one or more) MS location estimates may result:

(i) one set having the bcation hypothesεs with meaningful "image areas" as their target MS locatbn εstimates and

(ii) a sεcond set having the location hypothεses with their confidence values corresponding to thε original FOM target MS estimates. Since the first of thesε sets is considered, in general, more reliable, the second set may used as a "tie breaker" for detεrmining which of a numbεr of possiblε MS bcation εstimatεs dεtεrminεd using thε first sεt to output by thε Location Cεntεr. Notε, howεvεr, if there are no bcation hypotheses in the first set, then the second set may be used to output a Location Centεr targεt

MS location εstimate. Further note that in determining confidences of this second set, the weighting of confidence values as described above is contemplated. .

The steps provided hereinafter reflect a "two tier" strategy as discussed in (c) above. */

/* The following factor is analogous to the 2 3's factor discussed in (c) above. */ cluster ratio Jaαor <— miπ{(sizεof(pt s tjag) / minjlusters), 1.0};

/* Now use "area" to obtain a new target MS location estimate and confidence based on archived verified loc sigs, but first determine whether "area" is too big to ignore the original target MS location estimate and confidence generated by the FOM . */ if (sizεof(area) > pt nax rεa) thεn f* create a loc_hyp that is essentially a dupliαte of thε originally input "loc Jyp" εxcεpt thε confidεncε is lowεrεd by "(1.0 - clustεr atio Jaαor)". Note that the original "locjyp" will have its confidencε computεd below. */ { nεw Joe Jyp < — II get a copy of the "locjyp" new Joe Jiyp.imagε rea < — NULL; // no image area for this nεw ioc_hyp

/* Now modify the confidεncε of "loc_hyp"; notε, in thε onε εmbodimεnt, a systεm (i.ε., tunablε) paramεter may also bε usεd as a coefficient in modifying the confidence herε. */ new locjyp.confιdεncε < — πεwjocjyp.confidεnce * (1.0 - cluster atio Jaαor) ; addjoJist(loc hypJist, nεwjoc Jyp);

}

/* Now compute the "image irea" field and a confidence that the target MS is in

"image trea" */ image luster jεt < Notε, this statement gets the verifiεd locatbn signature clusters for which the targεt MS point locatbn εstimatεs (for the First Order Model ideπtifiεd by

"loc Jyp.FOM JD") in "pt st Jag" arε approximations. Notε that the set of MS location point estimates reprεsεnted in "pt jst Jag" is defined as a " cluster sef hereinabove.*/ image jrea < — Notε, in obtaining an area herε that contains thεsε verified bcation signature clusters, various embodimεnts arε contemplated. In a first embodiment, a (minimal) convex hull containing thesε clusters may bε provided here. In a second embodimεnt, a minimal covering of cells from the mesh for the FOM identified by "loc Jyp.FOM JD" may be used. In a third embodiment, a minimal covering of mesh cells may bε usεd to covεr thε convεx hull containing the clusters. It is assumed hereinbelow that the first embodimεnt is usεd. Notε, that this area is also denoted the "image cluster set are as is describεd hereinabovε. */ atøc _/O(bcJyp.image rea, image rea); /* Make "image jrea" the "image area" field of "locjyp". */ I* In the following step, determine a confidence value for the target MS bεing in the area for "image rea". */ confidence < — confidence ιdjuster(loc hyp.FOM_ID, imagejrea, image lustεr jet); /* In thε following stεp, reduce the value of confidence if and only if the number of MS point bcation estimatεs in "ptjstjag" is smaller than "min lusters" */

locJyp.confideπce <— confidence * cluster atiojactoπ RETURN(loc Jypjist); }ENθθf get_adjustedJoc_hyp 'ist_for

confidence ιdjuster(FOM_ID, image_area, image_clusteι_set)

/* This funαion returns a confidence value indicative of the target MS 140 being in the area for "image area". Note that the steps herein are also providεd in flowchart form in Figs.27a and 27b.

RETURNS: A confidence value. This is a valuε indiαtivε of the target MS being located in the area represented by "image rea" (when it is assumed that for thε related "locjyp," the "cluster set arεa" is thε

"loc_hyp.ρt overing" and "loc Jyp.FOM JD" is "FOMJD");

Introductory Information Related to the Function, "confidence idjuster" This function (and funαions called by this function) presuppose a framework or paradigm that requires some discussion as well as thε dεfining of tεrms. Define the term "mapped cluster density" to be the number of the verifiεd bcation signature clusters in an

"image cluster set" per unit of area in the "image cluster set area".

It is believed that the higher the "mapped cluster density", thε greater thε confidεncε can be had that a target MS actually rεsidεs in thε "imagε clustεr sεt area" when an estimate for the target MS (by thε prεsεnt FOM) is in the corresponding "the cluster set". Thus, the mappεd cluster density becomes an important faαor in determining a confidence value for an estimated area of a target MS such as, for example, the area represented by "image rea". However, the mapped cluster density value requires modification before it can be utilized in the confidence calculation. In particular, confidencε valuεs must bε in thε raπgε [-1, 1] and a mappεd uster dεnsity doεs not havε this constraint. Thus, a "relativized mapped cluster density" for an εstimatεd MS area is desired, wherein this relativized measurεmεnt is in thε rangε [-1, + 1], and in particular, for positive confidences in the range [0, 1]. Accordingly, to alleviate this difficulty, for the FOM define the term "prediction mapped cluster density" as a mapped cluster density value, MCD, for the FOM and imagε clustεr sεt area wherein:

(i) MCD is sufficiently high so that it correlates (at lεast at a predetermined likelihood threshold levεl) with thε aαual targεt MS location bεing in thε "imagε clustεr sεt arεa" whεn a FOM targεt MS bcation estimate is in the corresponding "cluster set area"; That is, for a cluster set area (ε.g., "loc _hyp.pt jovering") for the presεnt FOM, if thε imagε cluster sεt area: has a mapped cluster density greater than the "prediction mapped cluster density", then there is a high likelihood of thε target MS being in the image cluster set area.

It is beliεvεd that thε prediction mapped cluster density will typically be depεndεnt on onε or more arεa typεs. In particular, it is assumεd that for εach arεa typε, thεrε is a likely rangε of prediαion mapped clustεr dεnsity valuεs that is substantially uniform across thε arεa typε. Accordingly, as discussεd in dεtail hereinbelow, to calculate a prediαion mappεd clustεr density for a particular area type, an estimatε is made of the correlation betweεn thε mapped cluster densities of image areas (from cluster set areas) and the likεlihood that if a vεrifiεd MS location: (a) has a corresponding FOM MS estimatε in the cluster set, and (b) is also in thε particular area type, thεn thε vεrifiεd MS location is also in thε image area.

Thus, if an arεa is within a single area type, then such a "relativized mapped cluster density" measuremεnt for thε area may bε obtained by dividing the mapped cluster density by thε prεdiαion mappεd cluster density and taking the smaller of: thε resulting ratio and 1.0 as the value for thε relativized mapped cluster density. In some (perhaps most) cases, howevεr, an arεa (e.g., an image cluster set area) may havε portions in a numbεr of area typεs. Accordingly, a "composite prediction mapped cluster density" may bε computed, wherein, a weighted sum is computed of the prediction mapped cluster dεnsitiεs for the portions of the area that is in each of the area types. That is, the weighting, for each of the single area type prediction mappεd clustεr dεnsities, is the fraαion of the total area that this area type is. Thus, a "relativized composite mapped cluster density" for the area here may also be computed by dividing the mapped cluster dεnsity by thε composite prediction mapped cluster density and taking the smaller of: the resulting ratio and 1.0 as the value for the relativized composite mappεd clustεr dεnsity.

Accordingly, notε that as such a relativized (composite) mapped cluster dεnsity for an imagε clustεr set area increases/decreases, it is assumεd that the confidencε of the target MS being in the image cluster set area should increase/decrease, respectively. */

prεdiαioπ nappεd cluster Jεnsity < — get_composite_prediction_mapped_cluster_density_with ^igh_certainty

(FOM JD, image rea); /* The function invoked above provides a "composite prediction cluster density" (i.e., clusters per unit area) that is usεd in dεtermining the confidencε that thε targεt MS is in "imagε jrea". That is, the composite prediαion mapped cluster density value provided herε is: high enough so that for a computed mapped cluster density greater than or equal to thε composite prediαion clustεr dεnsity , and the target MS FOM estimate is in the "cluster set area", there is a high expectation that the aαual target MS bcation is in the "image cluster set area" . */ max rea < — get_max_area_for_high_certaint) OWJl, imagejrea); /* Get an area size value wherein it is highly likely that for an area of size, "ma rea", surrounding "image rea", the aαual target MS is located therein. Note, that one skilled in the art will upon contemplation be able to derivε varbus embodiments of this function, some embodiments being similar to the steps described for embodying the function,

"gεt omposite jrediαbn jnapped luster εnsity vithjigh εrtainty" invokεd abovε; i.e., performing a Monte Carlo simulation.

ivεn thε abovε two values, a positive confidεnce value for the area, "image rea", can be calculated based on empirical data.

There are various embodimεnts that may bε usεd to determine a confideπcε for the "image rea". In general, such a confidence should vary onotonically with (a) and (b) below; that is, the confidence should increase (decrease) with: (a) an increase (decrease) in the size of the area, particularly ' the area is deemed close or relεvant to thε bcation of thε targεt MS; and (b) an increase (decrease) in the size of the image cluster set (i.e., the number of verified location signature clusters in the area that each have a bcation estimate, from the FOM identifiεd by "FOM JD", in thε "clustεr sεt" corresponding to thε "imagε lustεrjεt;" ε.g., thε "clustεr set" being a "loc _hyp.pt jovering"). As one skilled in the art will understand, there are many functions for providing confidences that vary monotonically with (a) and(b) above. In particular, for the cluster sεt area being "loc _hyp.pt ovεring", one might be inclined to usε thε (arεa) size of the image cluster area as the value for (a), and the (cardinality) size of the image cluster sεt as thε valuε for (b). Thεn, the folbwing term might be considered for computing the confidencε:

(sizεof(imagε clustεr sεt arεa) * (sizεof(image cluster set)) which, in the present context, is equal to (sizeoff'imagε rεa") * (sizεoffimagε lustεr sεt")).

Howεvεr, since confidεncεs are intended to be in the range [-1,1], a normalization is also desirable for the values corresponding to (a) and (b). Accordingly, in one embodiment, instead of using thε abovε values for (a) and (b), ratios are used. That is, assuming for a "relevant" area, A (ε.g., including an imagε clustεr set area of "loc_hyp.pt covering") that there is a vεry high confidence that the target MS is in A, the folbwing term may be usεd in place of the term, sizeof("imagε_area"), above: min { [sizeoff'imagεjrεa") / sizεof(A)], 1.0 }. [CAM]

Additionally, for thε condition (b) abovε, a similar normalization may bε provided. Accordingly, to provide this normalization, note that the term,

(sizeof(imagεjrea) * prediαbn mapped luster εnsity) [CAl.l.l] is anabgous to sizeof(A) in [CAM]. That is, the expression of [CAl.l.l] gives a threshold for the number of verifiεd location signature clusters that are likely to be neεdεd in ordεr to havε a high confidεπce or likelihood that the target MS is in the area represented by "imagejrea". Thus, the folbwing term may be used for the condition (b): min { (sizeof (image cluster set) /

[(sizεof(imagε rεa) * prεdiαion_mappεd_clustεr_dεnsity], 1.0} [CAI.2]

As an aside, note that siz8θf(image_clusterjet) /[sizeof(image area) * prεdiαbn mappεd cluster density] is equivalεnt to

[sizeof(image clusterjet) / sizeof(image jrea)] / (prediction_mapped_cluster_dεnsity)

and this latter term may be interpreted as the ratio of: (i) the mapped cluster density for "imagejrea" to (ii) an approximation of a cluster density providing a high expectation that the target MS is contained in "imagejrea".

Note that the produα of [CAM] and [CAI.2] provide the above desired charaαeristics for calculating the confidencε. Howεver, there is no guarantee that the range of resulting valuεs from such produαs is consistent with thε interpretation that has bεεn placεd on (positive) confidence values; e.g., that a confideπcε of near 1.0 has a very high likelihood that the target MS is in the corresponding area. For εxample, it can be that this produα rareiy is greater than 0.8, εvεn in thε arεas of highεst coπfidεπcε. Accordingly, a "tuning" function is contεmplatεd which providεs an additional faαor for adjusting of thε confidεncε. This factor is, for εxamplε, a function of thε arεa typεs and thε sizε of εach arεa type in "imagejrea" . Moreover, such a tuning function may be dependent on a "tuning coefficiεnt" per area type. Thus, one such tuning funαion may be: number of area types min(S [tc, * sizeof(arεa typε, in "imagεjrεa") / sizεof ("imagε rεa")] , 1.0) ι = l

whεre tc, is a tuning coεfficiεnt (dεter inεd in background or off-liπε procεssing; ε.g., by a Gεnεtic Algorithm or Montε Carlo simulation or regression) for the area type indexed by "i".

Note that it is within the scope of the presεnt inventbn, that other tuning functions may also be used whose values may be depεndεπt on, for εxamplε, Montε Carlo techniques or Gεnεtic Algorithms. It is interesting to note that in the produα of [CAI.I] and [CAI.2], the "image rea" size cancels out. This appears to confliα with the description above of a desirable confidencε calculation. Howεvεr, the resulting (typical) computed value:

[sizeof(image_cluster_set)] / [maxjrea * prediαion_mapped_clustεr_density] [CAI3] is strongly depεndεnt on "image area" sincε "imagε lustεr jεt" is dεrivεd from "imagε jrea" and "prediction_mapped_clustεr_dεπsity" also dεpεnds on "imagεjrεa". Accordingly, it can be said that the produα [CAI. ] above for the confidencε does not depend on "raw" area size, but rather depεnds on a "relevant" area for locating the target

MS.

An embodiment of the confidence computation follows:

*/ area_ratb < — min((sizεof (imagε area) / max rea), 1.0); clustεr_dεπsity_ratio <— min( ((sizεoffimagε lusterjet) / [sizeof(imagε rea) * (prediαbn_mapped_clustεr_dεnsity)]), 1.0 ); tunablε oπstant < — get_coπfϊdence_tuniπg_constant(\mage_mή', II as discussed in the comment above confidence <— (tunable onstant) * (area atio) * (clustεr_dεnsity_ratio); //This is in thε rangε [0, 1] RETURN(confidence);

} ENDOF confidence adjuster

get :omposite prediction τιapped luster_density_with ^igh ertainty (F0M_ID, image_area);

/* The presεnt function determines a composite prediαion mapped cluster density by determining a composite prediction mapped cluster density for the area represented by "imagejrea" and for the First Order Model identifiεd by "FOM ID". The steps herein are also provided in flowchart form in Fig.28.

OUTPUT: composite napped ensity This is a record for the composite prediαion mapped cluster dεnsity. in particular, thεrε are with two fields:

(i) a "value" field giving an approximation to the prediαion mapped cluster density for the First

Order Modεi having id, FOM ID;

(ii) a "reliability" field giving an indication as to the reliability of the "value" field. The reliability field is in the range [0, 1] with 0 indicating that the "value" field is worthless and the larger the value the more assurance can be put in "value" with maximal assurance indicated whεn "reliability" i l.*/

{

/* Determine a fraαion of the area of "imagejrea" contained in each area type (if there is only one, ε.g., dense urban or a particular transmission area type as discussεd in thε dεtailεd dεscription hereinabove, thεn thεrε would bε a fraαion having a valuε of I for this area type and a value of zero for all others). */ composite mappεd ensity < — 0; // initialization for each area ypε intersecting "imagejrea" do // "area Jype" may be taken from a list of area types . { /* determine a weighting for "area jype" as a fraction of its area in "imagεjrεa" */ intεrsεction <— intersec imigc_aπa, area_foι(zm_typή); weighting < — sizeof(iπtersεαbn) / sizεof(arεajmage);

/* Now compute a prediαion cluster dεnsity that highly correlates with predicting a bcation of thε target MS for this area type. Then provide this cluster density as a factor of a weighted sum of the prediαion cluster densities of each of the area types, wherein the weight for a particular area type's prediction cluster dεnsity is thε fraαion of thε total area of "imagε rea" that is designated this particular area type. Note that the following function call does not utilize information regarding the locatbn of "image rea". Accordingly, this function may accεss a prεcomputεd tablε giving predication mapped cluster densities for (FOM JD, area jype) pairs. Hov/ever, in alternative embodiments of the present invention, the prediction mapped cluster dεnsities may be computed specifically for the area of "image rea" intersect "area ype". */

prediction mapped density <— get_prediction_mapped luster fensityJor(FOM_ID, area_type); composite_mapped Jεnsity <— compositε nappεd εnsity +

( εighting * prεdittion_mappεd_dεπsity);

} RETURN(compositε mappεd dεnsity);

} ENDOF get_composite_prediction_mapped_cluster fensity_withJιigh_certainty

get_prediction ϊiapped lusteι * Jensity_for(FOM_ID, area ype)

/* Thε present funαion determines an approximation to a prediction mapped cluster density, D, for an area type such that if an image cluster set area has a mapped cluster density > = D, then there is a high expectation that the target NS 140 is in the image cluster set area. Note that there are a number of embodimεnts that may bε utilized for this funαion. The steps herein arε also provided in flowchart form in Figs.29a through 29h. OUTPUT: prediction jnapped_cluster iensity This is a value giving an approximation to the prediction mapped cluster density for the First Ordεr Modεl having identity, "FOM JD", and for the area typε represented by "areajypε" */ Introductory Information Related to the Function, "get_predication_mapped_cluster_densityJor"

It is important to note that the computation hεre for thε prediαion mappεd clustεr density may be more intense than somε othεr computations but the cluster densities computed here need not be performed in real time targεt MS bcation procεssing. That is, thε stεps of this funαion may be performed only periodically (e.g., once a week), for each FOM and each area type thereby precomputing the output for this funαion. Accordingly, the values obtained hεre may be stored in a table that is accessed during real time target MS location processing. However, for simplicity, only the periodically performed steps are presented here. Howevεr, onε skillεd in the art will understand that with sufficiently fast computational dεvices, some related variations of this funαion may be performed in real-time. In particular, instead of supplying arεa type as an input to this function, a particular area, A, may be provided such as the image area for a cluster set area, or, the portion of such an imagε arεa in a particular area type. Accordingly, wherever "area Jype" is used in a statement of the embodiment of this funαion below, a comparable statement with "A" can be provided.

{ mesh < — get_mes _Λv(FOM JD); /* get the mesh for this First Order Model; preferably each cell of "mesh" is substantially in a single area type. */

max_nbr simulations area jypε); /* This funαion outputs a value of the maximum number of simulations to perform for estimating the prediction mapped cluster dεnsity. Note that the output here may always be the same value such as 100. */ πbrjimulationsjerformεd <— 0; // initialization whilε (πbr_simulations_performεd < = max brjimulatioπs) do // dεterminε a valuε for thε "avεragε mappεd cluster dεnsity" and a likεlihood of this valuε bεing predictive of an MS locatbn. */

{ representative_cel!_cluster et < — ιl fϊ?_ v? ?/3?jt' ?rar/V_ rι?/_ ^ r/</j/ I t? ϊ_ &/(area_type, mesh); /* Note, each a ivatioπ of this funαion should provide a different set of cell clusters from a covering from "mesh" of an (sub)area of typε, "areajype". There should ideally be at least enough substantially different sεts of representative cell clusters so that there is a distinct sets of cell clusters for each simulation numbεr, j. Furthεr note that, in onε εmbodimεnt, εach of the "representative cell cluster sets" (as used here) may include at least a determined proportion of the number of cells distributed over the area typε. Moreovεr. εach cell cluster (within a representative cell cluster set) satisfies the following: A. Thε cell cluster is a minimal covering (from "mesh") of a non-empty area, A, of typε "area typε" ("A" being referred to herein as the associated area for thε cεll clustεr);

B. Thε cells of the cluster form a conneαed area; note this is not absolutely necεssary; howεvεr, it is preferred that the associated area "A" of "areajype" covered by the cell cluster have a "small" boundary with other area types since the "image jreas" computed below will be less likely to include large areas of othεr area typεs than "arεajypε;"

C. Thεre is at lεast a predetermined minimal number (> = I) of verifiεd bcation signature clusters from thε bcation signature data base whose locations are in the associated area "A".

D. The cell cluster has no cell in common with any other cell cluster output as an εntry in "rεprεsεntativε εll lustεrjεt" . */ if (representative el I lustεrjεt is NULL) thεn /* anothεr representative colleαion of cell clusters could not be found; so ceasε furthεr simulation processing here, calculate return valuεs and return */ break; // jump out of "simulation loop" else /* there is another representative colleαion of cell clusters to use as a simulation */

{ for each cell cluster, C, in "representative ell lusters" do /* determine an approximation to the predittiveness of the mappings bεtwεεn: (a) clustεr sεt areas wherein each cluster set area is an area around a (FOM JD) FOM estimate that has its corresponding vεrifiεd locatbn in "C," and (b) the corresponding image areas for these cluster set areas. Note, the bcation signature data base includes at least one (and preferably more)

location signature clusters having verifiεd locations in each cell cluster C as per the comment at (C) above.

*/ raiidomjist <— raπdomly_select_ f* select one or more vεrified MS locations from C. */ mappεd εnsity jum < — 0; // initialization for εach verified bcation, "rand erif Joe", in "randomjist" do I* Let X denote the MS 140 estimatε by thε present FOM of the verifiεd loαtion signature clustεr of "rand εrif Joe"; let CS(X) denote the cluster sεt obtainεd from thε cluster sεt area (i.e., pt jrea) surrounding X; this loop dεtεrminεs whεthεr thε associatεd imagε arεa for thε set CS(X) - X, (i.e., the image area for CS(X) without "randjerif Joe") includes "rand erifjoc"; i.ε., try to predict the location area of "rand εrifjoc". */ { loc st < — get_ loc_ est_ /ø/(rand_vεrif Joe, FOM JD); /* get the FOM MS bcation estimatε for an MS actually located at "randjerifjoc". */ cluster jet < — get_/oc_ests_surroυnding(\κj!it, mεsh); /* εxpand about "locjst" until a minimal number of other bcation estimatεs from this FOM arε obtainεd that are different from

"loc st", or until a maximum area is rεachεd. Notε, "clustεr set" could be empty, but hopefully not. Also note that in one εmbodimεπt of the function here, thε following functions may bε invokεd: "gεt_min_area_surrounding," "gεt_max rεajurrounding" and "gεt min nbr of lusters" (as in "get djusted Joe Jypjist Jor", the second funαion of Appendix D): */ imagejet < — get_image_ ø/(clu5ter jεt); /* "imagε jet" could be empty, but hopefully not */ imagejrea <— get_image_area(ιm _Mt); /* get convex hull of "imagejet". Note, "imagejrea" could be an empty area, but hopefully not. */ if (randjerifjoc is in imagejrea) then /* this is one indication that the mapped cluster density: (sizeoφmage jet]/image_area) is sufficiently high to be predictive */ predictions <— predictions + I; if (image jεt is not empty) then

{ density < — sizeof(image jet) /sizeof (image rea); I* Get an approximation to thε mappεd duster density that results from "imagejet" and "imagejrea." Note, that thεrε is no guarantee that "imagejrea" is entirely within the area type of "area ype." Also notε, it is assumεd that as this mapped cluster density increasεs, it is more likely that "rndm erif Joe" is in "image rea". */

mapped ensityju <— appεd εnsityjum + dεnsity;

} } /* end loop for predicting bcation of a random MS verifiεd loαtion in cell cluster C. */ total_possible_prediαbns < — sizεof(random Jst); // Onε prεdiαion pεr elemεnt on list. /* Now gεt average mapped density for thε cεll clustεr C. */ avg mapped Jεnsity [C] <— mapped ensityjum /total_possible_prediαbns; /* Now gεt thε prediαion probability for thε cεll clustεr C. */ prediction ρrobabi!ity[C] < — prediαions / total_possible_prεdiαions;

} /* εnd bop ovεr cell clusters C in "represεntativε εl I lustεrs" */ nbrjimulations_performed <— nbrjimulatbns_pεrformεd + I;

} //εnd εlsε

/* It would be nice to use thε sεt of pairs (avg_mapped_density[C], prεdictbnjrobability [C]) for εxtrapolating a mappεd dεnsity valuε for thε area typε that gives a very high prediαion probability. Howεver, duε to the potentially small number of verifiεd MS locations in many cells (and cell clusters), the prediction probabilitiεs may providε a very small number of distinα values such as: 0, 1/2, and I. Thus, by averaging thesε pairs ovεr thε cεll clusters of

"representative ell lustεrs", thε coarsεnεss of thε prediαion probabilities may be accounted for. */ avg jnapped cluste Jεnsity[nbr jimulatioπs_ρerformed] < — avg_ of_ ce/l_ mapped_^ , 77J/ir/ vg_mappεd_dεnsity); avg_prεdittion_probability[nbr_simulations_pεrformεd] < — avg_ of_ cel/_predi(tion_probabi/ώes([>ttά ώonj)ωb \\V(y,

} I* εnd simulation loop */ /* Now dεtεrmine a measure as to how reliable the simulation was. Note that "reliability" computed in the next statement is in the range [0, 1]. */ reliability < — nbr _simulations_pεrformεd /max br simulations; if (reliability < systεm defined jpsilon) thεn /* simulation too unreliable; so use a default high value for

"predittion napped iuster dεnsity" */ prediαion mappεd luster density < — get dεfauit Jigh density alue Jor(area type); else /* simulation appears to be sufficiently reliable to use the entriεs of "avg_mappεd_cluster_density" and "avg prediction probabiHty" */

/* A more εasily discεrniblε pattern betwεεn mappεd cluster density and prεdiαion probability may be provided by the set of pairs:

S = {(avg_mapped luster εnsityfj], avg_prediαbn_probability[j])}, so that a mapped cluster density value having a high prediαion probability (ε.g., 0.95) may be extrapolated in the next statemεnt. Howεvεr, if it is

determined (in the functbn) that the set S does not extrapolate well (duε to for example all ordered pairs of S being clustered in a relatively small region), then a "NULL" value is returned. */ prediαion mappεd luster density < — mapped_ cluster_ density_ f/rø/ a//i? vg_maρpεd_clu5ter_density, avg prεdiction probability, 0.95); if ( (predictbn_mapped lustεr eπsity = = NULL) then

I* set this value to a default "high" value for the present area typε*/ prediαioπ_mapped_clusterJeπsity<— et efaultjigh eπsity aluejor(areajype); else //So both "prediα n mappεd lustεr ensity" and it's reliability arε minimally OK.

/* Now take the "reliability" of the "prediαion_mappεd_clustεr Jεπsity" into account. Accordingly, as thε reliability decreases αn the prediαion mapped cluster density should bε increased. Howεvεr, there is a system defined upper limit on the value to which the prediction mapped cluster density may be increased. The next state εnt is one embodiment that takes all this into account. Of course other embodimεnts are also possible.

*/ prediαion mapped_clustεr εnsity<~ min {(prediction_mapped_cluster density / reliability), gct efaultJigh_deπsity alue_for(arεajypε)}; } //εnd else for simulation appearing reliable RETURN(predictϊon_mapped_clustεr density); }ENDOF get_prediction_mapped_cluster_densityJor

A Second Embodiment of the Context Adjuster.

Note that in this second embodimεnt of the Context Adjuster, it usεs various heuristics to increment/decrement thε confidεncε valuε of thε bαtion hypothεsεs coming from thε First Ordεr Modεls. Thεsε heuristics are implemented using fuzzy mathematics, wherein linguistic, fuzzy "if-then" rules embody the heuristiα. That is, each fuzzy rulε includes terms in both the "if" and the "then" portions that are substantially dεscribεd using natural laπguag — like terms to dεnot varbus parameter value classifications related to, but not equivalent to, probability density funαions. Further note that the Context Adjuster and/or the FOM's may be calibrated using the bcation information from LBSs (Le., fixεd location BS transceivers), via the Loαtion Base Station Model since such LBS's have well known and accurate predetermined locations. Regarding the heuristics of the present embodimεnt of thε context adjuster, the following is an exampiε of a fuzzy rule that might appεar in this embodiment of the Context Adjuster

If <the season is Fall> then <thc confidencε level of Distance Model is increased by 5%> .

In the above sample rule, "Distance Model" denotes a First Order Model utilized by the present invention. To apply this sample rule, the fuzzy system needs a concrete definition of the term "Fall." In traditional expert systems, the term Fall would be described by a particular set of months, for examplε, September through November, in which traditional set theory is applied. In traditional set theory, an entity, in this case a date, is eithεr in a sεt or it is not in a sεt, e.g. its degree of membership in a set is eithεr 0, indicating that thε entity is not in a particular set, or I , indiαting that thε εntity is in thε set. Howevεr, thε traditional sεt theory employed in expert systems does not lend itsεlf wεll to entities that fall on set boundaries. For examplε, a traditional εxpert system could take dramatiαlly different aαions for a date of August 31 than it could for a date of September I because August 1 might belong to the set "Summer" while the date September I might belong to the set "Fall." This is not a desirable behavior since it is extremely difficult if not impossible to determine such lines of demarcation so accurately. Howevεr, fuzzy mathεmatics altaws for the possibility of an entity belonging to multiple sets with varying degrees of confidence ranging from a minimum value of 0 (indicating that the confidencε thε εntity belongs to the particular set is minimum) to I (indicating that the confidencε thε εntity bεlongs to thε particular set is maximum). The "fuzzy boundaries" betwεεn the various sets are described by fuzzy mεmbεrship funαions which providε a membership funαion value for each value on the entire range of a variable. As a consequence of allowing entities to bebng to multiple sets simultaneously, the fuzzy rule base might havε more than onε rule that is applicable for any situation. Thus, the aαions prescribed by the individual rules are averaged via a weighting schemε whεre εach rule is implemented in proportion to its minimum confidence. For further information regarding such fuzzy heuristiα, the following references are incorporated herein by reference: (McNeil and Freibergεr, 1993; Cox, 1994; Klir and Folgεr, 1999; Zim εrman, 1991).

Thus, the rules defined in the fuzzy rule base in conjunction with the membership functions allow the heuristics for adjusting confidencε valuεs to be represented in a linguistic form more readily understood by humans than many other heuristic representations and thereby making it easier to maintain and modify the rules, The fuzzy rule base with its membership funαions an be thought of as an extension

to a traditional expert system. Thus, since traditional expert systems are subsets of fuzzy systems, an alternative to a fuzzy rule base b a traditional expert system, and it is implicit that anywhere in the description of the current inventbn that a fuzzy rule base an be replaced with an expert system.

Also, these heuristics may evolve overtime by employing adaptive mechanisms including, but not limited to, genetic algorithms to adjust or tune varbus system values in accordance with past experiences and past perfor ancε of the Context Adjuster for increasing the accuracy of the adjustments made to loαtbn hypothεsis confidεncε values. For example, in the sample rule presented above:

If <the sεason is Fall> thεn <thε confidεncε level of Distance Model is increased by 5%> an adaptive mechanism or optimization routine an be usεd to adjust thε percent increase in the confidεncε lεvεl of the Distance Model. For examplε, by accessing the MS Status Repository, a genetic algorithm is αpable of adjusting thε fuzzy rules and mεmbe rship funαions such that the bαtion hypotheses are consistent with a majority of the verified MS loαtions. In this way, the Context Adjuster is able to empby a genetic algorithm to improve its performancε ovεr time. For further information regarding such adaptive mechanisms, thε following references are incorporated herein by reference: (Goldberg, 1989; Holland, 1975). For further informatbn regarding thε tuning of fuzzy systems using such adaptive mechanisms, the folbwing references are incorporatεd hεrein by reference: (Karr, 1991a, 1991b). In one embodimεnt, the Context Adjuster alters the confidence values of loαtion hypotheses according to one or more of the following environmental faαors: ( I ) the type of region (e.g., densε urban, urban, rural, εtc), (2) thε month of thε yεar, (3) the time of day, and (4) the operational status of base stations (e.g., on-line or off-line), as well as other environmental faαors that may substantially impaα the confidence placed in a loαtioπ hypothesis. Note that in this embodimεπt, each environmental faαor has an associated set of linguistic heuristics and associated membership functions that prescribe changes to be made to the confidencε valuεs of the input loαtion hypotheses. The context adjuster begins by receiving loαtioπ hypothεsεs and associatεd confidεncε levels from the First Order Models. The Context Adjuster takes this information and improves and refines it based on environmental information using the modules described below.

B.I COA Calculation Module

As mentionεd abovε each loαtion hypothesis provides an approximation to the MS positbn in the form of a geometric shape and an associated confidence value, a. Thε COA calculation modulε dεtεrminεs a center of area (COA) for each of the geometric shapes, if such a COA is not already provided in a bαtion hypothεsis. Thε COA Calculation Modulε receives the following informatbn from each First Order Model: (I ) a gεometriαl shape and (2) an associated confidεncε vaiuε, a. The COA calculation is made using traditional geometric computations (numerical algorithms are readily available). Thus, folbwing this step, each loαtion hypothesis includes a COA as a single point that is assumed to represent the most likely approximation of the loαtbn of the MS. The COA Calculation Module passes the following information to the fuzzifiαtbn module: (I) a geometrical shape associated with each first order model 1224, (2) an associatεd confidence value, and (3) an associated COA.

B.2 Fuzzification Module

A fuzzifiαtion modulε receives thε following information from thε COA Calculation Modulε: (I) a geometrical shape associated with each First Order Model, (2) an associatεd confidεnce valuε, and (3) an associated COA. The Fuzzification Module uses this information to compute a membership funαion value (μ) for each of the M loαtion hypotheses received from the COA calculation module (whεre thε individual modεls are identifiεd with an i iπdεx) for εach of thε N environmental faαors (identified with a j index). In addition to the information received from the COA Calculation Module, the Fuzzifiαtion Module receives information from the Loαtioπ Centεr Supervisor. Thε fuzzifiαtion module uses current environmental information such as the current time of day, month of year, and information about thε base statbns on-line for communicating with the MS associated with a bαtion hypothesis currently being processed (this information may include, but is not limited to, the number of base statbns of a given type, e.g., loαtbn basε statbns, and regular basε stations, that havε a prevbus history of being detected in an area about thε COA for a bαtion hypothεsis). Thε basε station covεragε information is usεd to compute a percentage of base statbns reporting for each loαtbn hypothesis.

The fuzzifiαtion is achieved in the traditional fashion using fuzzy membership funαions for each environmental faαor as, for examplε, is described in the following references incorporated herein by reference: (McNeil and Freiberger, 1993; Cox, 1994; Klirand Folgεr, 1999; Zimmerman, 1991). Using thε geographical area types for illustration purposes herε, thε following procedure might be used in the Fuzzifiαtbn Module. Each value of COA for a loαtion hypothesis is used to compute membership funαion values (μ) for each of five types of areas: (I) dεnsε urban (μ U ), (2) urban (μu), (3) suburban (μ s ), (4) rural plain (μ u ), and (5) rural mountains (μ m ). Thεsε membership funαion values provide the mechanism for representing degrees of membership in the area types, thesε area typεs being determined from an area map that has bεen sectioned off. In accordance with fuzzy theory, there may be geographical locations that include, for example, both dεnse urban and urban areas; dεnsε urban and rural planε arεas; dεnsε urban, urban, and rural plane areas, εtc. Thus for a particular MS loαtbn area estimate (dεscribεd by a COA), it may be both dense urban and urban at the same time. Thε resolution of any apparent coπfliα in applicable rules is later resolved in the Defuzzifiαtion Module using the fuzzy membership fuπαioπ values (μ) computed in the Fuzzification Module. Any particular value of a COA an land in more than one area type. For example, the COA may be in both densε urban and urban. Furthεr, in somε cases a loαtion hypothεsis for a particular Fiπt Ordεr Modεl i may have membership funαioπsμ ou ', μ^μ μ^, andμ RM ' wherein they all potentially havε non-zεro values. Additionally, each geographical area is contoured. Note that the membership function contours allow for one distinα value of membership fuπαioπ to be determined for each COA loαtion (i.e., there will be distinα values of μ^', μ^μ^μ^, and ^' for any single COA value associated with a particular model i). For εxamplε, thε COA would have a deπsε urban membership funαion valuε.μ β u', εqual to Oi. Similar contours would bε used to compute values of μ^μ^μ , and μ^'. Thus, for each COA, there now exists an ai ray or series of membership funαion values; there are K membεrship funαion valuεs (K = numbεr of descriptive terms for the specified environmental faαor) for each of M First Order Models. Each COA calculation has associated with it a definitive value forμou', μ u l $ l w , , t and ^ 1 . Taken collectively, the M loαtion hypotheses with membεrship funαion values for the K descriptive terms for the particular environmental faαor results in a membεrship funαion value matrix. Additionally, similar membership funαbn values are computed for each of the N environmental faαors, thereby resulting in a corresponding membership funαbn value matrix foreach of the N environmental faαors.

The Fuzzifiαtion Module passes the N membership funαion value matrices described above to the Rule Base Module along with ali of thε informatbn it originally recεivεd from the COA Calculation Module. B3 Rule Base Module The Rule Basε Module receives from the Fuzzifiαtbn Module the folbwing information: (I) a geometrical shape associated with each first Order Model, (2) an associated confidencε value, (3) an associated COA, and (4) N membership funαion value matrices. The Rule Base Module uses this informatbn in a manner consistent with typical fuzzy rule bases to determine a set of aαive or applicable rules. Sample rules were provided in the general discussion of the Context Adjuster. Additionally, referencεs have beεn supplied that describe the necessary computations. Suffice it to say that thε Rule Basε Modulεs εmploy thε informatbn providεd by the Fuzzifiαtion Module to compute confidencε value adjustments for εach of thε m loαtion hypothεsεs. Associated with each coπfidencε value adjustment is a minimum membεrship funαion value contained in the membεrship function matrices computed in thε Fuzzifiαtion Modulε.

For εach loαtion hypothεsis, a simple inference enginε driving the rule base queries the performancε database to determine how well the loαtion hypotheses for the first Ordεr Model providing the current loαtion hypothεsis has performed in the past (for a geographic area surrounding thε MS location εstimatε of thε current bαtion hypothesis) under the presεnt environmental conditions. For example, the performance database is consulted to determine how well this particular First Ordεr Modεl has performed in the past in bating an MS for the given time of day, month of year, and area type. Note that the performancε value is a value betwεεn 0 and I wherein a value of 0 indicates that the model is a poor performer, while a value of I indicates that the model is always (or substantially always) accurate in dεtermining an MS loαtion under thε conditions (and in the area) being considered. Thesε performance valuεs are usεd to compute values that are attached to the current confidence of the current loαtion hypothesis; i.e., these performance values serve as the "then" sides of the fuzzy rules; the First Order Models that have been effective in the past have their confidencε levels incremented by large amounts whilε First Ordεr Models that have bεεn ineffective in the past have their confidencε levels incremented by small amounts. This informatbn is received from the Performancε

Databasε in thε form of an environmental faαor, a First Order Model number, and a performance value. Accordingly, an intermediate value for the adjustment of the confidencε value for the current loαtion hypothesis is computεd for εach environmental condition (used by Context Adjuster) basεd on thε pεrformancε value retrieved from the Performance Database. Each of these intermediate adjustment values are computed according to the folbwing equation which is applicable to arεa information:

adjustmeπt j ' = Da' = performance_yalue j * Da REGI0N M "

where a is the confidencε valuε of a particular loαtioπ hypothεsis, performaπce_valuε is thε valuε obtainεd from thε Pεrformancε Database, u G io N is a system parameter that accounts for how important the information is being considered by the context adjuster. Furthermore, this parameter is initially provided by an opεrator in, for εxample, a system start-up configuratbn and a reasonable value for this parameter is believed to be in the range 0.05 to 0.1 , the subscript j represents a particular environmental faαor, and the superscript i represents a particular First Order Model. Howevεr, it is an important aspεtt of thε present invention that this value απ be repeatedly altered by an adaptive mechanism such as a geπεtic algorithm for improving thε MS bcation accuracy of thε present inventbn. In this way, and because thε rules are

"written" using current pεrformance informatbn as stored in thε Pεrformancε Database, thε Rulε Module is dynamic and becomes more accurate with time.

The Rule Base Module passes t e matrix of adjustments to the Defuzzifiαtbn Module along with the membership funαion value matrices received from the Fuzzifiαtion Module. B.6 Defuzzification Module

The Defuzzification Module receives the matrix of adjustments and thε membership function valuε matrices from the Rule Base Module. The final adjustment to the First Order Model confidence values as computed by the Context Adjuster is computed according to:

such as, but not limited to, time of day, month of year, and base statbn coveragε, there are a number of system start-up configuration parameters that n be adjusted in attempts to improve system performance. Thesε adjustmεnts are, in effeα, adjustments computed depending on the previous performance values of each model under similar conditions as being currently considered. These adjustments are summed and forwarded to the blackboard. Thus, the Context Adjuster passes the following information to the blackboard: adjustments in confidεnce values for each of the First Order Models based on environmental faαors and COA values associated with each loαtion hypothesis. Summary The Context Adjuster uses environmental faαor informatbn and past performance informatbn for each of i First Order Models to compute adjustments to the current confidence values. It retrieves informatbn from the First Order Models, interacts with the Supervisor and the Performancε Database, and computes adjustments to the confidencε vaiuεs. Further, the Context Adjuster employs a genetic algorithm to improve the accuracy of its calculations. The algorithm for the Context Adjuster is included in algorithm BE.B below: Algorithm BE.B: Pseudocodε for the Context Adjuster. Context_Adjuster (geometries, alpha)

I* This program implεmεnts the Contεxt Adjuster. It recεives from the First Order Models geometric areas contained in a data struαure αlled geometries, and associated confidence values contained in an array αlled alpha. The program used environmental information to compute improved numerical values of the confidence values. It places the improved values in the array called alpha, destroying the previous values in the process. */

// pseudo code for the Context Adjuster

// assume input from each of i models includes a

//geographical area described by a number of points

//and a confidence value alpha(i). alpha is such //that if it is 0.0 then the model is absolutely //sure that thε MS is not in the prescribed area; // if it is 1.0 then the model is absolutely // sure that thε MS is in thε prescribed area.

//calculate the center of area foreach of the i model areas fori = I to number_of_models αkulatε center of area // termed coa(i) from here on out // xtract information from the "outside world" or the environment find time_of_day find month_of_year find πumber_of_BS_available find number_of_BS_rεportiπg

// calculate peιτent_coverage of base stations pεrcεnt covεrage = 100.0 * (πuπιber_of_BS_reportiπg / numbεr_of_BS_availablε)

//use these j = 4 environmental factors to compute adjustments to the i confidence values //associated with the i models - alpha(i) fori = I to numbεr_of_modεls //loop on thε number of models forj = I to number_εnv_factors // loop on the number of environmental factors for k = I to number_of_fuzzy_classεs // loop on the numbεr of classes // used for each of the environmental //faαors //calculate mu values based on membership function definitions αlculate mu(i,j,k) values //go to the performance database and extract current performance information for each of the i

//models, in the k fuzzy classes, for the j environmental factors fetch performance(i,j,k)

//calculate the actual values for the right hand sides of die fuzzy rules

delta_alρha(i,j,k) = performancε(i,j,k) * delta_alpha_max(j) //dεrta_alpha_max(j) is a maximum amount εach environmental //faαor can alter the confidencε value; it is eventually

//determined by a genεtic algorithm

//compute a weighted average; this is traditional fuzzy mathematics delta_alpha(ι,j,k) = sum[mu(i,j,k) * delta_alpha(ι,j,k)/sum[mu(i,j,k)]

end loop on k // number of fuzzy classes

//compute final delta_alpha values dεlta_alpha(ι) = sum[dεlta_alpha(ι,j)] end bop on j //number of environmental faαors alpha(i) + = delta_alpha(i) end loop on i //number of modεls

//send alpha values to blackboard send delta_alρha(ι) to blackboard

//see if it is time to interact with a genetic algorithm if (in_progress) thεn contmuε to calculate alpha adjustments else all the genetic algorithm to adjust alphajnax parameters and mu funαions

APPENDIX E: Historical Data Confidence Adjuster Program

Historical_data_confidence_adjuster(loc_hyp) f* This funαion adjusts the confidεnce of loαtioπ hypothesis, "locjiyp", according to how well its locatbn signature cluster fits with vεrifiεd loαtion signature clusters in the loαtion signature data basε. */

{ mesh <—get_ esh_ /ø/(loc_hyp.FOMJD); // each FOM has a mesh of the Loαtion Center serv e area covering < — get_ esh_ covering^ of_ MS_ estimate ^ ø/(foc_hyp); /* get thε eεlls of "mεsh" that minimally cover thε most pertinent target MS estimate in "bc_hyp". */ total_ρer_unit_εrror < — 0; // initialization for εach cεll, C, of "covering" do f* detεrminε an εrror mεasurεmεnt bεtwεεn thε location signature clustεr of "loc_hyp" and thε vεrifiεd locatbn signature clusters in thε cεll */

{ centroid <— get_centroid$ error obj < — DB_Loc_Sig_Error_Fit(cεntroid, C, loc_hyp.loc_sig_clustεr, "USE ALL LOC SIGS IN

DB"); /* ' Thε abovε funαion call computes an error object, "error_obj", providing a mεasure of how similar thε location signature clustεr for "bc_hyp" is with thε vεrified bcation signature clusters in thε bcation signature data basε, whεrein the verified bcation signature clusters are in the area represented by the cell, C. See APPENDIX C for details of this funαion. */ total_per_unit_error < — total_per_unit_εrror + [error_obj.εrror * εrror_obj.confidεπcε / sizeof(C)]; /* The above statement computes an "error per unit of cell area" term as: [error_obj.εrror * error_obj.confidεncε /sizeof(C)], wherein the error is the term: error_obj.εrror * εrror_obj.confidεncε. Subsεquεntly, this εrror pεr unit of cεll area term accumulated in "total relative εrror" */

} avg_per_unit_error <-- total_per_unit_error/nbr_cεlls_in(mesh);

/* Now gεt a tunable constant, "tuπable_constant", that has beεn dεter ined by the Adaptation Engine 1382 (shown in Figs. 5, 6 and 8), wherein "tunable_constant" may have been adapted to environmental charaαeristiα. */ tunable_constant loc_hyp);

/* Now dεcrεmεnt thε confidence value of "loc_hyp" by an error amount that is scaled by "tunable_constant"

*/

loc_hyp.confidεncε <-- bc_hyp.confidεnce - [avg_per_unit_εrror * sizεof(covεring) * tunablε_constant]; RETURN(loc yp); }ENDOF Historical_data_confidence_adjuster