Patent Publication Number: US-7904092-B2

Title: Locally adjusted radio frequency coverage maps in wireless networks

Description:
TECHNICAL FIELD 
     This disclosure relates generally to wireless networks. 
     BACKGROUND OF THE INVENTION 
     Market adoption of wireless LAN (WLAN) technology has exploded, as users from a wide range of backgrounds and vertical industries have brought this technology into their homes, offices, and increasingly into the public air space. This inflection point has highlighted not only the limitations of earlier-generation systems, but also the changing role that WLAN technology now plays in people&#39;s work and lifestyles across the globe. Indeed, WLANs are rapidly changing from convenience networks to business-critical networks. Increasingly users are depending on WLANs to improve the timeliness and productivity of their communications and applications, and in doing so, require greater visibility, security, management, and performance from their network. Radio frequency (RF) coverage maps, also referred to as a heat maps, provide information regarding coverage of particular wireless access points. RF coverage maps are useful for assessing the area or region of sufficient WLAN service, and for use in locating wireless nodes. RF coverage maps are typically derived from manual site surveys and mathematical modeling techniques. Some method generate RF coverage maps based on received signal strength values associated with transmission signals exchanged between a wireless node and one or more wireless access points. Received signal strength values may be obtained at various locations to generate a coverage map for the wireless access points. RF coverage maps may also be generated by estimation algorithms using, for example, pathloss models and ray tracing. However, shadowing from nearby walls and furniture, and the multipath effects inherent to various RF environments, make high accuracy coverage maps difficult to achieve. 
    
    
     
       DESCRIPTION OF THE DRAWINGS 
         FIG. 1  illustrates an example physical space and radio frequency (RF) coverage map showing offset indications associated with several calibration points. 
         FIG. 2  illustrates an example process flow associated with adjusting an RF coverage map. 
         FIG. 3  illustrates an example of a correction cone. 
         FIG. 4A  illustrates an example of overlapping correction cones. 
         FIG. 4B  graphically illustrates an example relation between the magnitude of a correction cone and a corresponding normalization factor. 
         FIG. 5  illustrates an example computing system architecture that can be used to implement one or more aspects of the functionality described herein. 
     
    
    
     DESCRIPTION OF EXAMPLE EMBODIMENTS 
     A. Overview 
     Particular embodiments of the present invention are directed to locally adjusting an RF coverage map in a wireless network. Generally, an RF coverage map is a data structure including expected or estimated received signal strength parameters for a given wireless access point at a plurality of location bins. According to one implementation, a location server obtains calibration data at selected locations corresponding to location bins of the RF coverage map. In one implementation, the calibration data may include observed received signal strength values at known locations transmitted from a wireless access point. The location server may then determine offset values at the selected location bins by comparing estimated received signal strength values in the RF coverage map to observed signal strength values. The observed signal strength values, however, may be used to adjust estimated signal strength values at surrounding locations. The location server may then generate correction cones that characterize the correction or offset to surrounding locations of the RF coverage map caused by the difference in the observed and estimated signal strength values. In one implementation, the received signal strength error changes the RF coverage map values within a radius R around a given calibration point. The amount of change at a given location equals the observed error at the center of the correction cone (also the location of the calibration point), and decreases, in one implementation, linearly from the center until it tapers to zero at the edge of the correction cone. As discussed below, the offset values that define the correction cones may be normalized and windowed. The location server then applies the correction cones to adjust one or more values of the RF coverage map. 
     B. Local Adjustment to RF Coverage Map 
     As discussed above, particular implementations of the invention are directed to adjusting one or more estimated received signal strength values in corresponding location bins of an RF coverage map.  FIG. 1  illustrates, for didactic purposes, an example physical space and radio frequency (RF) coverage map showing the locations of several calibration points where the received signal strength of a given RF transmitter (such as an access point) have been observed. Each element of the grid (a location bin) represents a discrete region of a physical space. Each element has associated therewith an estimated receive signal strength value for wireless signals transmitted by a RF transmitter at a fixed location. A variety of methods can be used to construct the RF coverage map, such as RF modeling techniques based on the power law path loss model and ray tracing.  FIG. 1  shows an example RF coverage map corresponding to a coverage area at four calibration points (labeled X 5 , X 3 , X 4 , and X 2 ). 
     As described in more detail below, the location server may compare estimated received signal strength values with actual/observed received signal strength data at the selected location bins calibration points). The location server may generate correction cones, which provide offset values, to adjust the estimated received signal strength values of the calibration points and location bins adjacent to the calibration points without having to measure actual/observed received signal strength values at those adjacent location bins. 
       FIG. 2  illustrates an example process flow associated with adjusting an RF coverage map. The location server receives calibration data ( 202 ). In one embodiment, the calibration data may include observed received signal strength values at known locations of the RF coverage map. 
     The location server may then determine offset or correction values ( 204 ) at one or more of the calibration points in the RF coverage map by comparing estimated received signal strength values to the observed signal strength values. For example, an estimated received signal strength value at a given location bin may be −50 dBm, but the actual/observed received signal strength value may be −55 dBm. Accordingly, the offset or correction value at the calibration point can be computed as the difference between the two values. 
     In embodiment, the location server may generate correction cones (e.g. as illustrated in step  206  of  FIG. 2 ) centered at the calibration points where observed received signal strength values were collected.  FIG. 3  illustrates an example of a correction cone. A correction cone, in one implementation, is defined by a radius R, having a height X that is scaled by the magnitude of the offset value computed above. In one implementation, a correction cone may assume linear variation from vertex to base. In another implementation, a correction cone may assume a non-linear variation such as X*min(a/r,1), X*min(a/r 2 ,1), X*min(a/r b ,1), X/(a+r b ) for constants a, b. Such a correction cone may be characterized as a surface of revolution of a linear or non-linear profile. As  FIG. 3  illustrates, the correction cone tapers to a zero value as the distance from the center of the correction cone approaches the radius R. Conceptually, therefore, a positive offset value yields a correction cone that points upwardly, while a negative offset value yields a correction cone that points downwardly. As described in more detail below, the location server utilizes the correction cones to adjust received signal strength values at the calibration points and at adjacent location bins without having to measure actual received signal strength values at the adjacent location bins. As  FIG. 3  shows, a cone has a base having a radius that may be predefined (e.g., 23 feet or 20 meters) and a height representing an offset/correction value (e.g., 5 dB). In one embodiment, the radius of the base may define the offset coverage associated with a particular calibration point, where an offset value may be applied to adjacent location bins within the radius. In one embodiment, the height at different portions of the cone may represent the degrees of correction (e.g., 5 dB). For example, in one embodiment, the maximum offset value may be at the center of the cone. In one embodiment, as the distance from the center increases, the offset value may decrease to a predefined value at the perimeter of the base (e.g., 0 dB). Accordingly, the correction is propagated to each location bin which the base of a given cone overlaps, and the height at of the portion of the cone that overlaps the location may determine the degree of correction. 
     After the correction cones are generated, the location server then superimposes the correction cones (e.g. as illustrated in  208  of  FIG. 2 ) on the RF coverage map, as illustrated in  FIG. 1 . Note that some of the correction cones may overlap, especially for calibration points that are closely spaced. In other words, the location bins that surround a given calibration point may have overlapping correction cones.  FIG. 4A  illustrates an example of overlapping cones. As  FIG. 4A  shows, in one embodiment, one cone associated with one calibration point has a maximum offset value of 5 dB, and the other cone associated with another calibration point has a maximum offset value of 3 db. Both correction cones have a radius of 23 feet or 20 meters. 
     When there are multiple calibration points in close proximity, the scaled cones ( 403 )overlap and are summed at each location where there is an overlap. As well, the algorithm keeps track of the sum of unscaled cones ( 401 ), and after the cones are all overlapped, the sum of scaled cones is normalized by the sum of unscaled cones. In other words, at a given location, the value of each offset corresponding to all correction cones are summed. This value is then divided by the value of an “unscaled” correction cone (i.e., assume a correction cone having a 1 dB error at the center tapering to 0 at the radius R.)  FIG. 4B  illustrates the relation between two scaled correction cones, and their corresponding unscaled correction cones. As  FIG. 4B  illustrates, the height of a scaled correction cone, at the center of the calibration point, is the offset at the calibration point and tapers to zero at the radius R (in one implementation, 23 feet). An unscaled correction cone, on the other hand, simply tapers from 1 to zero and is centered at the corresponding calibration point. The dashed lines denote the location bins ( 411 ). 
     The location server may normalize the superimposed cones in the area of the overlap ( 210 ). In other words, for each location bin where correction cones overlap, the correction value (N) from each correction cone is summed. The summed values are normalized by dividing this aggregate by the sum of the corresponding unscaled cone values (D) at a given location. Repeating this for each location results in a smoothed error matrix. 
     The location server applies a perimeter or window to each normalized cone (e.g. as illustrated in step  212  of  FIG. 2 ). Although the correction cones taper to zero, this behavior is lost after normalization. Therefore tapering is re-applied to the smoothed error matrix by a multiplicative 2-dimensional (2 D) taper matrix. For each location, the distance to the nearest calibration point is recorded. Zero distances have a taper factor of 1, distances above the radius R have a taper factor of 0, and distances between 0 and R vary linearly between 1 and 0. Other embodiments are possible also, such as min(1,D). The taper matrix is pointwise multiplied by the smoothed error matrix. In other words, the weight, W, can be expressed as W=max (1−D/R , 0), where D is the distance to the nearest calibration point; and R is the radius of the correction cone. The location server applies the corrections defined in the tapered and smoothed matrix to the RF coverage map to form a locally adjusted RF coverage map. 
     C. Example System Architecture For RF Coverage Map Generator 
     While particular implementations of the present invention have been described above with reference to specific embodiments, some or all of the elements or operations thereof may be implemented using a computer system having a general purpose hardware architecture.  FIG. 5  illustrates an example computing system architecture, which may be used to implement the above described implementations, which may be used to perform one or more of the processes or elements described herein. In one implementation, hardware system  500  comprises a processor  502 , a cache memory  504 , and one or more software applications and drivers directed to the functions described herein. Additionally, hardware system  500  includes a high performance input/output (I/O) bus  506  and a standard I/O bus  508 . A host bridge  510  couples processor  502  to high performance I/O bus  506 , whereas I/O bus bridge  512  couples the two buses  506  and  508  to each other. A system memory  514  and a network/communication interface  216  couple to bus  506 . Hardware system  500  may further include video memory (not shown) and a display device coupled to the video memory. Mass storage  518  and I/O ports  520  couple to bus  508 . In one implementation, hardware system  500  may also include a keyboard and pointing device  522  and a display  524  coupled to bus  508 . Collectively, these elements are intended to represent a broad category of computer hardware systems, including but not limited to general purpose computer systems based on the Pentium® processor manufactured by Intel Corporation of Santa Clara, Calif., as well as any other suitable processor. 
     The elements of hardware system  500  are described in greater detail below. In particular, network interface  516  provides communication between hardware system  500  and any of a wide range of networks, such as an Ethernet (e.g., IEEE 802.3) network, etc. Mass storage  518  provides permanent storage for the data and programming instructions to perform the above described functions implemented in the RF coverage map generator, whereas system memory  514  (e.g., DRAM) provides temporary storage for the data and programming instructions when executed by processor  502 . I/O ports  520  are one or more serial and/or parallel communication ports that provide communication between additional peripheral devices, which may be coupled to hardware system  500 . 
     Hardware system  500  may include a variety of system architectures; and various components of hardware system  500  may be rearranged. For example, cache  504  may be on-chip with processor  502 . Alternatively, cache  504  and processor  502  may be packed together as a “processor module,” with processor  502  being referred to as the “processor core.” Furthermore, certain implementations of the present invention may not require nor include all of the above components. For example, the peripheral devices shown coupled to standard I/O bus  508  may couple to high performance I/O bus  506 . In addition, in some implementations only a single bus may exist with the components of hardware system  500  being coupled to the single bus. Furthermore, hardware system  500  may include additional components, such as additional processors, storage devices, or memories. 
     As discussed above, in one embodiment, the operations of the RF coverage map generator described herein are implemented as a series of software routines run by hardware system  500 . These software routines comprise a plurality or series of instructions to be executed by a processor in a hardware system, such as processor  502 . Initially, the series of instructions are stored on a storage device, such as mass storage  518 . However, the series of instructions can be stored on any suitable storage medium, such as a diskette, CD-ROM, ROM, EEPROM, etc. Furthermore, the series of instructions need not be stored locally, and could be received from a remote storage device, such as a server on a network, via network/communication interface  516 . The instructions are copied from the storage device, such as mass storage  518 , into memory  514  and then accessed and executed by processor  502 . 
     An operating system manages and controls the operation of hardware system  500 , including the input and output of data to and from software applications (not shown). The operating system provides an interface between the software applications being executed on the system and the hardware components of the system. According to one embodiment of the present invention, the operating system is the Windows® 95/98/NT/XP operating system, available from Microsoft Corporation of Redmond, Wash. However, the present invention may be used with other suitable operating systems, such as the Apple Macintosh Operating System, available from Apple Computer Inc. of Cupertino, Calif., UNIX operating systems, LINUX operating systems, and the like. 
     The present invention has been explained with reference to specific embodiments. For example, while embodiments of the present invention have been described as operating in connection with IEEE 802.11 networks, the present invention can be used in connection with any suitable wireless network environment. Other embodiments will be evident to those of ordinary skill in the art. It is therefore not intended that the present invention be limited, except as indicated by the appended claims.