This disclosure relates to wireless coverage detection and more particularly to systems and methods for using mobile devices for determining user-perceived holes in wireless communication coverage areas.
Providers of wireless services, such as, for example, cellular telephone service, currently detect holes in their coverage in two ways, drive testing throughout the coverage area and customers calling to report problems. One disadvantage of drive testing is that the RF field is undersampled in time, since each sample covers only a fraction of a second per month at any one location. Another disadvantage of drive testing is that the RF field is also undersampled in space, because most of the major roads are not driven their entire length and only some of the minor roads are driven. Drive testing misses all locations without a road, such as parks, stadiums, homes, offices, conference centers, etc. While drive testing attempts to weigh the samples by their importance (making sure to cover major roads, for example) this weighing is subjective and ad hoc, and applies a single weighing for all customers. In addition, drive testing is labor-intensive and requires a truck full of expensive equipment. A disadvantage of having customers call in complaints is that such a system is subjective and undersamples the signal even more seriously than does drive testing, both in time and space. In addition, called-in information is usually imprecise and it is also labor-intensive to record the called-in data.
There is discussed systems and methods for discovering holes in wireless communication coverage areas. These holes are determined based on the user's view of coverage at various locations within geographical areas covered by a broadcast signal. Thus, even if the wireless signal is technically acceptable at a given location, but users select not to communicate at that location, that location is inferred to be a hole. In one embodiment, the wireless coverage area is a cellular network and the holes are determined by actual cellular phone usage within the network. Location and direction of travel data pertaining to a cellular phone's usage is stored and refined within the cellular phone so as to define areas where the user selects to place calls or selects to terminate calls. The data stored within the cellular phone is from time to time communicated to the central wireless broadcast system. Refinement of the data in the cellular phone allows for long storage periods so that signal quality can be reported over long time spans. By collecting such data from a plurality of such devices, the central system can map coverage holes from a user's perspective.
In one embodiment, a cellular system monitors at least some of the cellular phones operating within its coverage area in order to locate areas where the signal strength is either below user's acceptance levels or users decide not to place calls. Holes in this context may be inferred from user's behavior and their discovered location can be used by the cellular system provider to better adjust its coverage area.
One embodiment for determining holes with wireless coverage areas and for refining the spatial boundaries of the measured holes so as to be able to store the data in a limited memory, such as a cellular phone, is shown in the above-detailed co-pending application. A discussion of
Assume now that the user moves a little bit and spends his/her time in region 12 shown with a ‘B’ at its center. In this situation, region 11 will expand.
The expansion amount could be by just enough to include the user's new location or could be by an integral number of bins (cells), or by doubling the original size, etc.
When the user goes far outside the home region (e.g., flies somewhere), the coordinates (and the data associated with the coordinates) are cached (home coordinate cache) and a new temporary region is created.
In addition, the system periodically increments a count associated with the region the user is currently in and periodically deletes from the cache the region with the smallest count. When one region count exceeds some threshold, the system has established a home region. Using this method, the system establishes which cached region is the user's home region. There may be a tie, or a near-tie, for first place, depending on the usage pattern. However, this does not matter since the important thing is to choose a region where the user spends a lot of time. In the embodiment shown, it takes four numbers to store the region information. The numbers may be, for example, latitude/longitude, or distance (in bins, or some other unit) plus an angle from a known tower, or some other coordinate system (which need not be Cartesian).
By using more numbers: five (2 locations+angle) for a rotated rectangle, six for a triangle, eight for an arbitrary quadrilateral, etc. less restrictive region boundaries can be accommodated. To appreciate the value of less restrictive representations, imagine trying to represent a highway 100 feet wide and 20 miles long, running at a 45° angle. If the rectangle must have horizontal and vertical sides, it will be 14 miles on a side. If the system allows it to be rotated 45°, it only needs to be 100 feet on one side. The cache size of the home coordinate cache (as discussed above) can be as small as desired, as long as it contains at least two elements. The larger the cache, the greater the chance of converging quickly on home.
Process 202 determines whether the user has moved outside of the home region. If the user has moved outside the home region, process 203 determines if the user has moved beyond a given distance. If not, then the boundary is expanded via process 204 as discussed above. If the user has moved beyond a given distance, then the prior region's data is stored in a cache via process 205. Process 206 then determines if the new location is in cache. If so, that cached region becomes the new home region. If not, then process 208 creates a new home region.
Process 209 periodically increments the count for the current region and process 210 periodically shrinks the current region. Either or both of these actions can be performed periodically, such as every minute, every hour, every day, etc., as desired. While uniform shrinking is discussed, an important factor is that shrinkage (whether uniform or nonuniform) is unbiased over the long run. Thus, the shrinkage need not be uniform across the region, and one side could be reduced at one time and a different side reduced at another time. The side or sides to be reduced could be determined in order (north, south, east, west, etc.) or in random order, and any number of sides can be reduced at a time.
As discussed above, this system will continually refine itself so that if a user has moved to a new home region, the new home region will soon become the official home region and the system will continue without anything being done by either the user or the central system to which the device will eventually report. In addition, as discussed above, the size of the area will continually refine downward (or upward) so that as the user's movements reduce (or increase) the home region also reduces (or increases).
As will now be discussed, it is possible to infer from users' behaviors that there are certain geographic areas that they prefer to not use. For example, if a cellular service provider's coverage has a relatively large and stationary hole in a certain location and a user traverses that location regularly, the user often learns to avoid the hole either by waiting until he/she has left the hole area before placing a call or by hanging up a call just before entering the hole. By keeping track of one or more users' behavior patterns over time, an inference can be drawn that the location where users are not on their phones is a hole in coverage. The data pertaining to usage as a function of location is gathered by the mobile device and inferences can be drawn either by the device or by the provider based on data sent from the device to the provider.
Phase 1: Find the user's home region as discussed above with respect to
Phase 2: Learn where the partial edges are of each user-perceived coverage hole.
Often, users will regularly start/end calls at locations which have nothing to do with a coverage hole. For example, a user may call home when he/she leaves work, but that does not mean there is a coverage hole in front of the user's work place. These “holes” will tend to average out across users, but even if they do not, they should be explainable by looking at a map. Also, users will start/end calls at irregular times and places, and these irregular times and places will be ignored since, as will be discussed, the system and methods discussed herein pay attention only to differences which remain sharp even when accumulated over many measurements. In other situations, users may regularly start/end calls at a boundary of a coverage hole which the service provider's measurements do not show. This is important because if the user thinks the coverage is not good enough, then the customer is not happy, or perhaps a safety issue or some other factor is present. Accordingly, even when wireless coverage at a location may be technically acceptable, something may influence a user, or users, to not communicate during a transit of that location. Thus, the principle situation in which a service provider will find these procedures useful is the case in which the service provider's other methods (simulation, drive testing) indicate that service is fine, but users repeatedly avoid placing or continuing calls in certain places. Since it is the users, not the service provider, who are the ultimate judge of what is satisfactory, the procedures discussed herein yield a truer picture of where the provider's service is not good enough. The following discussion will enable one skilled in the art to both identify such region(s) where users tend to end (or start) communications, and to do so with data gathered and stored over long periods inside mobile devices.
Step 1: A grid is constructed over the home region and is made as fine as permitted by the desired memory usage of the mobile device. The grid corresponds to geographical area traversed by a mobile device. Memory in each such mobile device is associated with each grid cell.
Step 2: At each cell, a set of counters is identified, and in process 302 (
Step 3: Whenever the user initiates a call, the current location (or if none is available the next measured location) is noted as shown in process 303,
Step 4: Whenever the user ends a call by hanging up (rather than by having the call dropped, or the other party hanging up), as determined by process 307, the opposite direction counter is incremented as shown by process 315,
Step 5: After a period of time (which may be a time interval, or when the count with the largest value exceeds a threshold, or when the sum of counts exceeds a threshold or even random), process 316,
Process 402 determines if there are any such rectangular regions. If there are, then process 403 coalesces the found region into a single grid element and process 404 sets all counts in the new grid element to zero. The resulting structure is no longer a grid, but can be efficiently represented as a quadtree. See for example U.S. patent application Ser. No. 10/909, 814, filed on Aug. 2, 2004, entitled “SYSTEM AND METHOD FOR WIRELESS COVERAGE DETECTION,” which is hereby incorporated by reference herein. In our example, assume that the only events in the home region are calls placed just after crossing the boundary (grid G12,
Step 6: If process 402 determines that there are no more regions which meet the criteria of process 401, then process 405 determines if there are any other cells. If so, process 406 selects one such cell and process 407 determines if the selected cell size is near the resolution of the phone's location (e.g. 4× the resolution). If the cell size is smaller than the phone's resolution, then process this cell as described in phase 3, i.e., skip the rest of this step, and when appropriate, send the data from the unsplit cells to the service provider. The reason for this is that a phone knows its own location with some finite precision (100 feet, 100 meters, 1 inch). If the size of the grid element is equal to that precision or smaller, then it will not do any good to split the grid element into quadrants because the phone would not know which quadrant it was in, and thus, the recorded data for the quadrant would be random at best. For example (using a one-dimensional example), suppose locations are measured in feet from some origin, and the phone has 10-foot resolution. The phone then reports its location as 0 feet, 10 feet, 20 feet, 30 feet, etc. Suppose there is a grid element at the 20-30 foot position, and suppose its size is equal to the resolution, namely 10 feet. If this is split in two (two, rather than four, because this is a one-dimensional example), then the left half (say) would span 20-24 feet and the right half would span 25-29 feet. But the phone never reports locations in the 25-29 foot range—it always jumps from 20 feet to 30 feet. Step 6 says that if a user is in this situation, or near it, then skip the rest of phase 2 for this cell, i.e., skip step 7 in which the cell is split.
Step 7: If the cell size is not smaller than the phone's resolution and if process 408 determines that there is enough memory to split the cell, then, still following the quadtree representation, split it into four quadrants as shown by process 409. In each quadrant, as shown by process 410, set each counter to ¼ of the count in the parent's corresponding counter. Thus, cell E of
Step 8: Repeat from step 3. For example, after coalescing, cell F would be unchanged and cells G, H, and J would become cells K, L, M, N, P and appear as shown in
The system should not go back to step 3 if one or more of the counters is near overflow, since this could mean that measurements have been taken for a long time and the overall situation may have changed. In such a situation, the procedure should start over from Phase 1.
Phase 3: In phase 3, cells are processed to provide the location and orientation of part of a boundary between good and bad coverage. Phase 3 is shown in
Once the boundary is computed then this set of cells is sent with the data, via process 331, from the cellular phone to the central system. This transfer can occur periodically, randomly, or on command from the central system, and, this time can be once a year, or every several months, or sooner as desired. When this is complete, the system triggers process 302 and phase 2 of embodiment 30 will repeat.
Situations where calls are placed or terminated (or both) while the user is stationary can be addressed by adjusting the way the location history is maintained as discussed above. However, if the time of a call is short, data pertaining to that call is simply not stored. If it had been a user perceived hole, the user most likely would not have attempted to obtain service, i.e., would not have placed the call.
To obtain good statistics, a mobile device must collect data over many calls and many crossings of a boundary. This means that it should have counters which can count fairly high (a few thousand, say). If eight counters per grid element are used, then a 250×250 grid over the home region using 2-byte counters results in 1 megabyte of counters. This can be improved by using 1-byte counters with their range extended as described in Morris, Robert “Counting Large Number Of Events In Small Registers” Communications of the ACM, Volume 21 Number 10, pp. 841-842, October 1978, which is hereby incorporated by reference herein.
This process evolves an ever-more-detailed image of the boundary of coverage holes, in bounded memory and using only 1-byte counters. The two main phases of determining the home region and determining holes could run concurrently or alternately, or by constantly updating the counts in the cache, perhaps at a slower rate, once the system has calculated a home location. Updating home location is necessary because the system might have made a wrong choice, or the user's behavior may have changed.
Although the present invention and its advantages have been described in detail, it should be understood that various changes, substitutions and alterations can be made herein without departing from the invention as defined by the appended claims. Moreover, the scope of the present application is not intended to be limited to the particular embodiments of the process, machine, manufacture, composition of matter, means, methods and steps described in the specification. As one will readily appreciate from the disclosure, processes, machines, manufacture, compositions of matter, means, methods, or steps, presently existing or later to be developed that perform substantially the same function or achieve substantially the same result as the corresponding embodiments described herein may be utilized. Accordingly, the appended claims are intended to include within their scope such processes, machines, manufacture, compositions of matter, means, methods, or steps.
The present application is related to co-pending, and commonly-assigned U.S. patent application Ser. No. 10/909,814, Attorney Docket No. 10040182-1 filed on Aug. 2, 2004, entitled “SYSTEM AND METHOD FOR WIRELESS COVERAGE DETECTION” which is hereby incorporated by reference herein.