Path Loss Calculation
Path loss calculation in the standard defines different environment types only and is used for distance calculation using RSSI. This definition is mandated for use with application ID 0x0 only (other application IDs can specify their own figures). As such it is optional with the standard, as you may opt to use a differing type of distance measurement rather than RSSI (such as 802.11mc's fine time measurement functionality).
This does not specify the path loss calculation method required however, as this would be application specific and depend entirely on frequency, minimum supported features (802.11b/g/n), modulation and characteristics of each client device (how RSSI is handled on different smart phones for example) to name a few.
The following path loss coefficients for the appropriate environment types are to be used for application ID 0x0:
Co-efficient Selection | Mu (Co-efficient) | Conditions |
---|---|---|
0 | 1 | No Co-efficient |
1 | 2.0 | Outdoors with clear conditions |
2 | 2.5 | Indoors with clear conditions |
3 | 3.0 | Indoors with moderately clear conditions |
4 | 3.5 | Indoors with moderately bad conditions |
5 | Not Used | Not Used |
6 | Not Used | Not Used |
7 | Not Used | Not Used |
In this instance, the first column (selection value) represents the co-efficient value with it's corresponding environment condition description, as the stored value in the Beacon Frame. In the client code, this selection value will need to be translated to the appropriate Mu value for it to be used with path loss/distance calculation.
An example path loss calculation method (which is used in the Android API) for 802.11b networks, with CCK modulation, at 1Mbps is as follows (Java implementation):
double distance = Math.pow(10.0,(((double)(tx_pwr/10)) - rx_pwr - 10*Math.log10(4*Math.PI/(c/frequency)))/(20*mu));
Where c = 299.792458 if using MHz for frequency.
In dense areas, path loss figures should be restricted or filtered once they reach a certain loss value. This is performed on an application by application basis on the client side and would depend on the number of visible beacon sources.