Patent Publication Number: US-11035946-B2

Title: Accurate localization of client devices for wireless access points

Description:
BACKGROUND 
     In recent years, radio-frequency (RF) based localization systems have attracted a great deal of attention from industry. Many RF-based localization systems can be implemented using wireless access points (APs) without using additional costly infrastructure such as cameras and depth sensors. Such RF-based localization systems are useful for many applications, such as navigation in large buildings or stadiums, device-to-device localization to connect people in physical proximity, occupancy detection, virtual and augmented reality generation, and vehicle tracking. Unlike acoustic-based or visible light-based localization systems, RF-based localization systems typically do not require Line-Of-Sight (LOS) communication between APs and client devices and can work over relatively long distances. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Various features and advantages of the invention will become apparent from the following description of examples of the invention, given by way of example only, which is made with reference to the accompanying drawings, of which: 
         FIG. 1  illustrates an environment in which a mWaveloc system can be implemented, according to one example. 
         FIG. 2  illustrates a detailed view of an access AP, a driver, and firmware, according to one embodiment. 
         FIG. 3  provides example plots of PDPs of directional beams to illustrate some of the concepts discussed herein, according to one example. 
         FIG. 4  illustrates an example table of aggregate gain values for directions and a resulting region for which a centroid indicates an estimated direction of an LOS path, according to one example. 
         FIG. 5  illustrates functionality for an AP as described herein, according to one example 
     
    
    
     DETAILED DESCRIPTION 
     Despite the great potential that RF-based localization systems offer, extensive field trials have shown that existing RF-based localization systems still suffer from high error rates and other practical challenges. Specifically, recent studies reveal that the location-estimation error for existing RF-based localization systems can be up to several meters in realistic indoor scenarios. Moreover, existing RF-based localization systems often entail dense infrastructure deployment (e.g., of Wi-Fi APs or Bluetooth Low-Energy (BLE) beacons). Furthermore, existing RF-based localization systems often call for APs to operate on the same channel or to incorporate special antenna technology. These types of constraints impose high overheads in networks in which existing RF-based localization systems are implemented, thus limiting the practicality of such systems. 
     Recently, millimeter-wave (mmWave) wireless networks have become a notable technology for 5G mobile broadband connectivity, gigabit-speed wireless local-area network (WLAN) connectivity, and wireless backhaul connectivity. These mmWave networks enable new possibilities for device localization and tracking. Due to their high operational frequency (e.g., 60 gigahertz (GHz) for networks that conform to the Institute of Electrical and Electronics Engineers (IEEE) 802.11ad standard, which is hereby incorporated by reference) and their short wavelength (e.g., 5 millimeters (mm) for 802.11ad networks), mmWave wireless signals can help track a device&#39;s position at a very fine (e.g., millimeter-level) resolution. 
     However, in spite of the potential that mmWave networks have, state-of-art mmWave-based localization systems are still at a very early stage of development, adoption, and deployment for several reasons. First, mmWave-based localization systems often require specialized hardware, a priori knowledge of the physical environments in which they operate, and multiple APs to estimate a device&#39;s position. Also, the performance of such mmWave-based localization systems has been mainly evaluated through Software Defined Radios (SDRs) with horn antennas or through simulations; such evaluation approaches fail to consider the limitations of commodity mmWave hardware. 
     Some approaches to localization focus on Multiple-Input Multiple-Output (MIMO) mmWave wireless networks. Such approaches, which presume that mmWave devices are equipped with digital phased arrays, estimate the signal Angle-of-Arrival (AoA) using angular spectrum analysis. However, such approaches are not applicable to devices that conform to the IEEE 802.11ad standard because such devices are not MIMO-capable and only support analog phased arrays. Another approach is to emulate a digital phased array by collecting samples of the same signal using different weights (e.g., from a codebook) at an analog phased array receiver, isolating the signals on each antenna element, and applying various techniques to estimate the AoA and Angle-of-Departure (AoD) of each mmWave propagation path. However, in practice, the weight vectors of phased arrays are predefined and built into hardware for devices that comply with the 802.11ad standard. By contrast, systems described herein work with off-the-shelf devices that comply with the 802.11ad standard without requiring MIMO or any firmware modifications. 
     Another approach to localization is based on phase tracking. This approach involves tracking a device&#39;s trajectory by tracking signal phase shifts. However, channel measurements from off-the-shelf mmWave platforms are generally phase-incoherent due to the lack of carrier phase tracking across different packets. As a result, phase shifts up to 136° can occur even in scenarios where a device is not in motion. 
     Another approach to localization is based on non-coherent path tracking. This approach involves estimating the direction of the LOS path between a transmitter-receiver pair by correlating the radiation patterns with the Signal-to-Noise Ratios (SNRs) of a selected set of beams. However, this approach is highly inaccurate due to the imperfect beam patterns used by commodity devices that conform to the 802.11ad standard. 
     This disclosure presents a high-accuracy three-dimensional (3D) localization system that can be implemented using for commodity hardware (e.g., that conforms to the 802.11ad standard and operates in 60 GHz frequency range). The systems described herein leverage the existing 802.11ad network infrastructure, which is becoming increasingly popular for both indoor and outdoor connectivity. As a shorthand, the 3 d localization systems described herein will be referred to as “mWaveLoc systems.” 
     While much of this disclosure discusses indoor applications, the mWaveLoc systems described herein can also be used for outdoor applications (e.g., vehicle positioning and tracking). Also, while much of this disclosure discusses how to implement the concepts disclosed herein in mmWave networks, many of the concepts disclosed herein can be implemented in other types of wireless networks (e.g., cellular networks) without departing from the spirit and scope of the disclosure. 
     The mWaveLoc system overcomes the constraints of existing systems in a number of ways. For example, the mWaveLoc system achieves a localization accuracy (decimeter level) than existing deployed RF-based systems (which typically provide meter-level accuracy). Furthermore, unlike existing WiFi systems that support 2D space localization, the mWaveLoc system can track a device&#39;s position in 3D space. This makes the mWaveloc system suitable for applications such as mobile robot navigation and position-dependent virtual reality (VR) or augmented reality (AR). 
     Also, unlike existing systems, the mWaveLoc system does not require a dense, centrally controlled wireless infrastructure. Instead, the mWaveLoc system can successfully identify the location of a client device using a single AP. This allows low-latency tracking that is useful for VR/AR applications as well as device-to-device location applications. 
     The mWaveLoc system can also provide accurate localization with a 60 GHz operational link even under conditions that challenge existing systems, such as when a device to be localized is moving or when environmental blockages obstruct signal paths. Unlike existing systems that focus on short range (3-4 meters) tracking, the mWaveLoc system can support longer range (e.g., greater than 20 meters) tracking. 
     Furthermore, unlike existing systems, the mWaveLoc system can be implemented off-the-shelf hardware that complied with the IEEE 802.11ad standard without requiring any specialized, expensive hardware. Also, the mWaveLoc system can be fully implemented at the AP side without requiring any changes to the client devices that are to be located. 
     To provide the advantages listed above (and other advantages), the mWaveLoc can leverage several properties of 60 GHz networks that comply with the IEEE 802.11ad standard. For example, mmWave devices use phased array antennas to focus RF energy through directional beams (i.e., beamforming), thereby compensating for the attenuation loss that occurs in high frequency (60 GHz) bands. When an AP is communicating with a wireless client device, the beams with relatively high signal strength are more likely to be aligned with the direction of the Line-of-Sight (LOS) wireless propagation path between the AP and the device. Through techniques described herein, the mWaveLoc system can use beams identified through the beamforming process to help find the direction of the LOS path and the position of the device. 
     Another feature of mmWave devices that the mWaveLoc system can leverage is the relatively short wavelength of communications. The granularity of an estimate of a distance between two devices is generally proportional to the carrier frequency (and hence to the wavelength) of wireless communications between the two devices. Since devices that comply with the 802.11ad standard operate 60 GHz (a 5 mm wavelength), the mWaveLoc system can leverage communications between the devices through techniques described herein to yield accurate, high-granularity estimates of the distance between two devices (e.g., an AP and a client device). 
     Empirical results suggest that the mWaveLoc system can be implemented in the kernel of a commodity 802.11ad AP platform without necessitating any modifications to any core functions described in the 802.11ad standard (e.g., beam selection, codebook design, etc.). In addition, empirical results suggest that the mWaveLoc system is effective in many different surroundings and scenarios involving pedestrians, blockages (e.g., buildings or other obstacles, and device motion), and distances ranging from 0.25 meters to 22 meters. In most of these scenarios, mWaveLoc systems achieves decimeter-level 3D localization accuracy (e.g., estimation error less than one meter) with a median estimation error of about 75 centimeters. Even when blockages, AP-client antenna misalignments, and long AP-client separation distances are present, mWaveLoc systems still typically achieve decimeter-level 3D localization accuracy in the majority of the cases. By contrast, existing systems (e.g., that apply non-coherent path tracking) achieve a median estimation error of about 2.7 meters. 
       FIG. 1  illustrates an environment  100  in which a mWaveloc system can be implemented, according to one example. As shown, the environment  100  includes a wireless access point (AP)  110  and a client device  120 . A driver  112  and firmware  114  execute on the AP  110 . The direction of an LOS path  130  between the AP  110  and the client device  120  can be quantified in spherical coordinates by an azimuth  140  and an elevation  150 . 
     In this context, the azimuth  140  and the elevation  150  are angles used to define the position of the client device  120  relative to the AP  110 . The azimuth  140  may be a compass bearing (relative to true north) of the client device  120  relative to the AP  110 . In general, compass bearings are measured clockwise in degrees from true north. The elevation  150  of the client device can be defined as the angle between the azimuth and the LOS path  130 . 
     The firmware  114  collects Channel Impulse Response (CIR) measurements (e.g., while performing a beam scan as described in the 802.11ad standard) for wireless communications exchanged between the AP  110  and the client device  120 . The driver  112 , which implements aspects of the mWavLoc system, sanitizes the CIR measurements for the directional beams supported by the AP  110  (e.g., available beams per the 802.11ad platform). Next, upon analyzing the CIR measurements (as described in greater details below with respect to  FIG. 2 ), the driver  112  extracts the LOS path for each beam and excludes non-LOS (NLOS) paths from strong reflectors. Next, the driver  112  selects a subset of the beams that strongly amplify the LOS path. In one embodiment, the number of beams included in this high-LOS-amplitude subset is a predefined constant. The driver  112  correlates amplitudes of the beams included in the high-LOS-amplitude subset with the beam patterns of those beams (which are predefined at the AP  110 ) to identify a region in which the azimuth  140  and the elevation  150  of the LOS path  130  (and hence the client device  120 ) are likely located. Next, the driver  112  pinpoints the LOS path  130  toward the client device  120  within the region. (The process for identifying the region and estimating the LOS path  130  is described in greater detail below with respect to  FIG. 2 ) Empirical results show that the LOS path  130  can be estimated very accurately despite the fact that many beams are imperfect (e.g., many beams include strong side lobes) in commodity 802.11ad devices. 
     The driver  112  is also configured to determine the distance between the AP  110  and the client device  120  in the direction of the LOS path  130 . The firmware  114  performs a Fine Timing Measurement (FTM) protocol (e.g., as described in the 802.11ad standard), thereby gathering Time-of-Arrival (ToA) and Time-of-Departure (ToD) measurements for frames sent between the AP  110  and the client device  120 . The driver  112  creates a refined set of ToA and ToD measurements by excluding ToA and ToD measurements for frames that were sent using beams for which at least one NLOS path had a higher amplitude than the LOS path. Using this refined set of ToA and ToD measurements, the driver  112  determines the measure the Time of Fight (ToF), which is the round-trip propagation time for signals transmitted between the AP  110  and the client device  120 . Using the ToF, the driver  112  estimates the distance between the AP  110  and the client device  120 . Unlike existing systems that estimate distances via erroneous phase-shift tracking, the driver  112  estimates the distance using techniques that are robust to phase incoherence that is often observed in commodity 802.11ad platforms. 
       FIG. 2  illustrates a detailed view of the AP  110 , the driver  112 , and the firmware  114 , according to one embodiment. As shown, the driver  112  comprises a CIR sanitizer  201 , an LOS-path extractor  202 , a beam selector  203 , an angle identifier  204 , a ToF refiner  205 , and a distance estimator  206 . The firmware  114  comprises a beam scanner  207  and a Fine Timing Measurement (FTM) module  208 . 
     When the AP  110  establishes a wireless communication link with the client device  120 , the beam scanner  207  applies a beamforming training (BFT) process to discover the transmit (Tx) and receive (Rx) beams that currently have the highest signal strength between the AP  110  and the client device  120 . For example, if the beam scanner  207  applies the BFT process described in the IEEE 802.11ad standard, the beam scanner  207  performs a Sector Level Sweep (SLS) phase and, optionally, a Beam Refinement Phase (BRP). During the BFT process, the beam scanner  207  collects Channel Impulse Response (CIR) feedback (e.g., measurements) for each available beam. 
     To estimate the LOS path  130 , the driver  112  can leverage two specific properties of mmWave channels: channel sparsity and beam-independent path extraction. In practice, an mmWave channel is often sparse (e.g., containing 1-3 dominating wireless signal propagation paths). The number of propagation paths and the signal amplitudes of those propagation paths can be extracted by using the CIR feedback to identify the LOS path  130  and the beams that align the most with the path. While changing beam patterns at a transmitter (e.g., the AP  110 ) leads to different CIR measurements at a receiver (e.g., the client device  120 ), the underlying signal paths traversed by the different beams is the same. Typically, the amplitudes of CIR measurements for beams whose radiation patterns overlap more favorably with those signal propagation paths will be higher than the amplitudes for beams whose radiation patterns focus in other directions. 
     Based on these properties, the driver  112  can detect the composition of the multipath environment (i.e., the signal propagation paths) and use this information to extract the LOS path  130  between the AP  110  and the client device  120 . Specifically, the driver  112  can identify a subset of M beams (where M is a positive integer that is less than the total number of available beams) that align more favorably with the LOS path  130 . By correlating the LOS-path CIR amplitudes for the M beams with their beam patterns for the M beams (e.g., as described below), the driver  112  can estimate the direction of the LOS path  130 . 
     The mmWave signals from the AP  110  to the client device  120  arrive along S distinct paths (where S is a positive integer). Each individual path included in the S distinct paths is described by that individual path&#39;s amplitude a s , phase Ø s , azimuth θ s   az , and elevation θ s   el , where s=1, 2, . . . , S. The direction of a path can be represented by the pair (θ s   az , θ s   el ). The driver  112  is configured to extract the amplitude and angular information for the LOS path  130 , which can collectively be represented by the 3-tuple (a s , θ s   az , θ s   el ). To this end, the driver  112  uses the CIR measurements for each beam to measure the amplitude of the different wireless propagation paths (e.g., both direct and reflected) for that beam. If the AP  110  and the client device  120  comply with the 802.11ad standard, the driver  112  can measure potential paths with an arrival time difference of 0.57 nanoseconds. 
     However, before the driver  112  proceeds to path extraction, the CIR sanitizer  201  separates dominating path signals (which appear as high-amplitude local maxima) from weak reflected signals or noises (which appear as low-amplitude local maxima) in the Power Delay Profile (PDP) of a beam (e.g., a plot of the CIR measurements for the beam against time). The CIR sanitizer  201  identifies the dominating paths by identifying the local maxima whose amplitudes are smaller than the highest-amplitude local maxima α peak  of the PDP by less than a predefined threshold. Specifically, if α(t) is the amplitude at time t a sanitizer function α′(t) can be formally defined as: 
     
       
         
           
             
               
                 α 
                 ′ 
               
               ⁡ 
               
                 ( 
                 t 
                 ) 
               
             
             = 
             
               { 
               
                 
                   
                     
                       
                         α 
                         ⁡ 
                         
                           ( 
                           t 
                           ) 
                         
                       
                     
                     
                       
                         
                           if 
                           ⁢ 
                           
                               
                           
                           [ 
                           
                             
                               α 
                               ⁡ 
                               
                                 ( 
                                 t 
                                 ) 
                               
                             
                             &gt; 
                             
                               α 
                               ⁡ 
                               
                                 ( 
                                 
                                   t 
                                   - 
                                   1 
                                 
                                 ) 
                               
                             
                           
                           ] 
                         
                         ⋂ 
                         
                           [ 
                           
                             
                               α 
                               ⁡ 
                               
                                 ( 
                                 t 
                                 ) 
                               
                             
                             &gt; 
                             
                               α 
                               ⁡ 
                               
                                 ( 
                                 
                                   t 
                                   + 
                                   1 
                                 
                                 ) 
                               
                             
                           
                           ] 
                         
                         ⋂ 
                         
                           [ 
                           
                             
                               α 
                               ⁡ 
                               
                                 ( 
                                 t 
                                 ) 
                               
                             
                             &gt; 
                             
                               
                                 α 
                                 peak 
                               
                               - 
                               
                                 A 
                                 tr 
                               
                             
                           
                           ] 
                         
                       
                     
                   
                   
                     
                       0 
                     
                     
                       otherwise 
                     
                   
                 
                 , 
               
             
           
         
       
     
     where A tr  is the threshold amount. The sanitizer function has the effect of flattening regions of the PDP that differ from α peak  by more than A tr , thereby leaving only local maxima that represent dominating signal paths. Empirical results suggest that setting A tr  to five decibels (dB) typically leads to successful identification of the dominating signal paths. 
     Once sanitization is complete, the LOS-path extractor  202  can identify the local maxima that correspond to the LOS path  130  for each of the available beams. In general, the first local maximum to occur in a sanitized PDP corresponds to the LOS path  130  because reflected signals that arrive via reflected paths travel longer distances (and therefore show up as local maxima that are later in time than the local maximum that corresponds to the LOS path  130 .) Although signals that arrive via the LOS path  130  travel a shorter distance, the local maximum that corresponds to the LOS path  130  may have a lower amplitude than a local maximum that corresponds to a reflected path if the directional radiation pattern of the beam under consideration does not align well with the LOS path  130 . 
     Although phase can be incoherent between back-to-back samples in devices that conform to the 802.11ad standard, empirical results show that this approach to path extraction is robust to such deviations. 
     Once the LOS-path extractor  202  has identified the local maxima that correspond to the LOS path  130  for each of the available beams, the beam selector  203  identifies a high-LOS-amplitude subset of the beams (i.e., the M beams with higher LOS-path amplitudes than the remainder of the N available beams, where N is a positive integer and N&gt;M). Note that, in some cases, some of the M beams may not be the have higher SNRs than the remainder of the N available beams because the LOS path extractor  202  ignores the local maxima that correspond to strong reflected paths. 
     Next, the angle identifier  204  can identify the azimuth and elevation of the LOS path  130 , which can be referred to as ({circumflex over (θ)} az , {circumflex over (θ)} el ), in the following manner. Specifically, for each direction (θ az , θ el ) in a plurality of possible directions, the angle identifier  204  can calculate a respective aggregate beam gain G a (θ az , θ el ) according to the following equation: 
     
       
         
           
             
               
                 
                   G 
                   a 
                 
                 ⁡ 
                 
                   ( 
                   
                     
                       θ 
                       az 
                     
                     , 
                     
                       θ 
                       el 
                     
                   
                   ) 
                 
               
               = 
               
                 
                   ∑ 
                   
                     m 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     ϵ 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     M 
                   
                 
                 ⁢ 
                 
                   
                     
                       
                         A 
                         m 
                       
                       ⁡ 
                       
                         ( 
                         
                           
                             θ 
                             az 
                           
                           , 
                           
                             θ 
                             el 
                           
                         
                         ) 
                       
                     
                     
                       
                         max 
                         
                           
                             ∀ 
                             
                               m 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               ϵ 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               M 
                             
                           
                           , 
                           
                             ∀ 
                             
                                 
                             
                             ⁢ 
                             
                               θ 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               ϵ 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               Θ 
                             
                           
                         
                       
                       ⁢ 
                       
                         { 
                         
                           
                             A 
                             m 
                           
                           ⁡ 
                           
                             ( 
                             
                               
                                 θ 
                                 az 
                               
                               , 
                               
                                 θ 
                                 el 
                               
                             
                             ) 
                           
                         
                         } 
                       
                     
                   
                   · 
                   
                     α 
                     los 
                     m 
                   
                 
               
             
             , 
           
         
       
     
     where M refers to the M beams in the high-LOS-amplitude subset, Θ refers to the set of angles that make up the directions being considered (e.g., from 0 degrees to 360 degrees in increments of 1), A m (θ az , θ el ) refers to the gain of beam m, and α los   m  refers to the amplitude of the LOS path  130  for beam m. 
     Once the aggregate beam gains are calculated, the angle identifier  204  could simply use the direction with the highest aggregate gain as an estimate for the direction of the LOS path  130 . However, empirical results suggest that the following approach is more effective. 
     First, the angle identifier  204  identifies a high-gain subset of the directions. The high-gain subset includes R of the directions, where R is a positive integer that is less than the total number of directions for which aggregate gains were calculated. The aggregate gains for the directions included in the high-gain subset are greater than the aggregate gains for the directions that are not included in the high-gain subset. 
     Next, the angle identifier  204  determines an azimuth upper limit, and azimuth lower limit, an elevation upper limit, and an elevation lower limit for the directions included in the high-gain subset. The angle identifier  204  determines the centroid of a graphical region (e.g., in a Cartesian graph where one axis denotes azimuth values and another axis represents elevation values) bounded by the azimuth upper limit, the azimuth lower limit, the elevation upper limit, and the elevation lower limit. The angle identifier  204  selects the direction specified by the azimuth elevation coordinates of the centroid as the estimate for the direction of the LOS path  130 . 
     The driver  112  is also configured to estimate the distance between the AP  110  and the client device  120 . The FTM module  208  gathers ToA and ToD measurements for radio frames sent between the AP  110  and the client device  120 . In some embodiments, the driver  112  can estimate the ToF (the round-trip propagation time for signals transmitted between the AP  110  and the client device  120 ) based on the FTM protocol provided in the 802.11ad standard without taking any additional actions. However, empirical results that the driver  112  can estimate the ToF more accurately by performing the following actions. 
     First, the ToF refiner  205  identifies an exclusion subset of the beams. For each individual beam in the exclusion subset, the respective amplitude of the LOS path  130  (i.e., the local maximum corresponding to the LOS path  130 ) for the individual beam is less than the highest local maximum for the individual beam (which corresponds to a reflected path). 
     Once the exclusion subset has been identified, the ToF refiner  205  creates a refined set of ToA and ToD measurements by excluding ToA and ToD measurements for frames that were sent from the AP  110  to the client device  120  using beams included in the exclusion subset. 
     Next, the ToF refiner  205  estimates the ToF using the only the ToA and ToD measurements found in the refined set (e.g., by applying the FTM scheme described in the 802.11ad standard to the refined set). The distance estimator  206  then estimates the distance between the AP  110  and the client device  120  using the ToF as estimated (e.g., by applying methods described in the 802.11ad standard). 
       FIG. 3  provides example plots of PDPs of directional beams to illustrate some of the concepts discussed above, according to one example. Persons of skill in the art will understand that the PDPs for beams in other use cases may differ (e.g., in terms of the number of local maxima, the timing at which the local maxima occur, the amplitude levels, the amount of noise, etc.). 
     Plot  310   a  shows a curve  311   a  for a first beam as determined by CIR measurements for the first beam. As shown, the curve  311   a  includes local maximum  312   a , local maximum  313   a , and local maximum  314   a  (which is the highest local maximum for curve  311   a ). Curve  311   a  also includes other local maxima that represent noise. 
     Similarly, plot  320   a  shows a curve  321   a  for a second beam as determined by CIR measurements for the second beam. As shown, the curve  321   a  includes local maximum  322   a , local maximum  323   a  (which is the highest local maximum for curve  320   a ), and local maximum  324   a . Curve  321   a  also includes other local maxima that represent noise. 
     Graph  310   b  shows the data that result when the CIR measurements depicted by the curve  311   a  in plot  310   a  are sanitized. Bar  312   b  corresponds to the local maximum  312   a , while bar  313   b  corresponds to local maximum  313   a  and bar  314   b  corresponds to local maximum  314   a . The sanitization process removed local maxima that correspond to noise, so bar  312   b , bar  313   b , and bar  314   b  each represent the amplitude of a distinct signal path for the first beam, respectively. Since bar  312   b  is first in time, the height of bar  312   b  represents the amplitude of the LOS path. Since bar  313   b  and bar  314   b  have lower heights than bar  312   b , the LOS path has the highest amplitude of any of the signal paths for the first beam during the time period depicted on graph  310   b . Thus, the radiation pattern of the first beam aligns well with the LOS path. 
     Similarly, graph  320   b  shows the data that result when the CIR measurements depicted by the curve  321   a  in plot  320   a  are sanitized. Bar  322   b  corresponds to the local maximum  322   a , while bar  323   b  corresponds to local maximum  323   a  and bar  324   b  corresponds to local maximum  324   a . The sanitization process removed local maxima that correspond to noise, so bar  322   b , bar  323   b , and bar  324   b  each represent the amplitude of a distinct signal path for the second beam, respectively. Since bar  322   b  is first in time, the height of bar  322   b  represents the amplitude of the LOS path. However, although the amplitude of the LOS path is relatively high, bar  323   b  has a greater height than bar  322   b  or bar  324   b . This means that the NLOS path corresponding to bar  323   b  has the highest amplitude of any of the signal paths for the second beam during the time period depicted on graph  320   b . Thus, the radiation pattern of the second beam aligns reasonably well with the LOS path, but an NLOS (e.g., reflected) path still yields a higher amplitude. 
       FIG. 4  illustrates an example table  401  of aggregate gain values for directions and a resulting region  443  for which a centroid  444  indicates an estimated direction of an LOS path, according to one example. 
     The table  401  includes ten entries total. Thus, in this example, the value of R (i.e., the cardinality of the high-gain subset) is ten. However, persons of skill in the art will understand that the value of R may vary in other examples. 
     In the table  401 , column  410  specifies the azimuth values for the directions included a high-gain subset, column  420  specifies the elevation values for the directions in the high-gain subset, and column  430  specifies the aggregate gain for the directions included in the high-gain subset. As shown, the highest azimuth value that occurs in column  410  is 5 degrees. For this reason, the azimuth upper limit for the directions in the high-gain subset in this example is 5 degrees. The lowest azimuth value that occurs in column  410  is −5 degrees, so the azimuth lower limit for the directions in the high-gain subset in this example is −5 degrees. Similarly, the highest elevation value that occurs in column  420  is 30 degrees, so the elevation upper limit for the directions in the high-gain subset in this example is 30 degrees. The lowest elevation value that occurs in column  420  is −20 degrees, so the elevation lower limit for the directions in the high-gain subset in this example is −20 degrees. (Persons of skill in the art will recognize that the upper and lower limits of the azimuth and elevation may vary in other examples.) 
     Graph  440  includes an elevation axis  441  and an azimuth axis  442 . As shown, region  443  is bounded by the azimuth upper limit, the azimuth lower limit, the elevation upper limit, and the elevation lower limit. Hence, in this example, the coordinates of the centroid  444  would be selected as an estimate of the LOS path. 
       FIG. 5  illustrates functionality  500  for an AP as described herein, according to one example. The functionality  500  may be implemented as a method or can be executed as instructions on a machine (e.g., by one or more processors), where the instructions are included on at least one computer-readable storage medium (e.g., a transitory or non-transitory computer-readable storage medium). While only seven blocks are shown in the functionality  500 , the functionality  500  may include other actions described herein. Also, some of the blocks shown in the functionality  500  may be omitted without departing from the spirit and scope of this disclosure. 
     As shown in block  510 , the functionality  500  includes receiving, at a wireless AP, CIR measurements for a plurality of directional beams used to exchange wireless communications between the AP and a client device. In some examples, the AP complies with the IEEE 802.11ad standard. 
     As shown in block  520 , the functionality  500  includes, for each individual beam in the plurality of directional beams, determining a respective amplitude of a LOS path between the AP and the client device based on a portion of the CIR measurements that corresponds to the individual beam. 
     In some examples, determining the respective amplitude of the LOS path may comprise: identifying a plurality of local maxima in a Power Delay Profile (PDP) for the individual beam; identifying, from among the local maxima in the PDP, a highest local maximum for the individual beam; and sanitizing the PDP by flattening any of the local maxima that are more than a threshold amount less than the highest local maximum, wherein a remaining local maximum that is first in time in the PDP after the sanitizing represents the respective amplitude of the LOS path. The threshold amount may be, for example, about five decibels. 
     Also, determining the ToF may comprise: receiving Time-of-Arrival (ToA) and Time-of-Departure (ToD) measurements for the radio frames; identifying an exclusion subset within the plurality of beams, wherein, for each individual beam in the exclusion subset, the respective amplitude of the LOS path for the individual beam is less than the highest local maximum for the individual beam; creating a refined set of ToA and ToD measurements by excluding ToA and ToD measurements for frames that were sent from the AP to the client device using beams included in the exclusion subset; and determining the ToF based on the refined set of ToA and ToD measurements. 
     As shown in block  530 , the functionality  500  includes identifying a high-LOS-amplitude subset of the beams. The respective amplitudes of the LOS path for the beams included in the high-LOS-amplitude subset are greater than the respective amplitudes of the LOS path for the beams that are not included in the high-LOS-amplitude subset. In some examples, the cardinality of the high-LOS-amplitude subset is predefined. Also, in some examples, the AP operates in a millimeter-wave (mmWave) spectrum. 
     As shown in block  540 , the functionality  500  includes determining, based on predefined radiation patterns associated with the beams included in the high-LOS-amplitude subset, a direction of the LOS path between the AP and the client device. 
     In some examples, determining the direction of the LOS path may comprise: for each individual direction in a plurality of directions: for each individual beam in the high-LOS-amplitude subset, calculating a respective gain of the individual beam for the individual direction; and determining an aggregate gain for the individual direction based on the respective gains of the beams in the high-LOS-amplitude subset for the individual direction. 
     In some examples, determining the aggregate gain for the individual direction may comprise: for each individual beam in the high-LOS-amplitude subset: determining a quotient by dividing the respective gain of the individual beam for the individual direction by a highest respective gain of any of the beams in the high-LOS-amplitude subset for the individual direction; determining a product by multiplying the quotient by the respective amplitude of the LOS path for the individual beam; and adding the product to a sum that represents the aggregate gain for the individual direction. 
     Also, in some examples, determining the direction of the LOS path may further comprise: identifying a high-gain subset of the directions, wherein the aggregate gains for the directions included in the high-gain subset are greater than the aggregate gains for the directions that are not included in the high-gain subset; determining an azimuth upper limit of the directions included in the high-gain subset; determining an azimuth lower limit of the directions included in the high-gain subset; determining an elevation upper limit of the directions included in the high-gain subset; determining an elevation lower limit of the directions included in the high-gain subset; and determining a centroid of a graphical region bounded by the azimuth upper limit, the azimuth lower limit, the elevation upper limit, and the elevation lower limit, wherein the direction of the LOS path is represented by an azimuth coordinate of the centroid and an elevation coordinate of the centroid. 
     As shown in block  550 , the functionality  500  includes determining a ToF for radio frames exchanged between the AP and the client device via the plurality of directional beams. 
     As shown in block  560 , the functionality  500  includes determining a distance between the AP and the client device based on the ToF. 
     As shown in block  570 , the functionality  500  includes determining a location of the client device relative to the AP based on the direction of the LOS path and the distance. 
     In some examples, the functionality  500  may also include sending a wireless communication to the client device from the AP to indicate the location of the client device. 
     While the present techniques may be susceptible to various modifications and alternative forms, the examples discussed above have been shown only by way of example. It is to be understood that the techniques are not intended to be limited to the particular examples disclosed herein. Indeed, the present techniques include all alternatives, modifications, and equivalents falling within the true spirit and scope of the appended claims.