信号强度从百分比到分贝的转换
Radio Frequency(RF)信号强度测量单位
有四种测量单位可以用来表示RG信号强度。分别为:nw(milliwatts),dBm(db-milliwatts),RSSI(Received Signal Strength Indicator,接收的信号强度指示)以及百分比。所以的测量单位都是两两相关的,而且可以相互转换(存在不同程度的精度)。
mw和dBm的测量单位
相信这个大家并不陌生。通常我们衡量RF能量大小都是以 mw 为单位的,但并不方便,着不仅是以为信号强度值不是呈线性衰减,而是符合平方反比定律(inverse square law)。即如果移动2倍的距离,对应的信号强度将衰减为原来的1/4。这也是为什么引入指数的测量方式的其中一个原因。分贝,就是对信号强度的对数测量方式。mw值将转换为以10为底的对数,而因为其值很小,所以把结果再乘以10。举例:
转换公式为:
RSSI(接收的信号强度指示)
IEEE标准定义了一种机制来衡量无线网卡接收到的RF能量值。其数值为0~255的整数,即我们所说的RSSI.当然没有厂商真把信号值分成256个不同等级,但是每个厂商都指明了自己NIC的最大RSSI值(RSSI_MAX),比如Symbol使用RSSI_MAX=31(Atheros的为60)。注意这里说的完全跟 mw和dBm没有关系。RSSI是定义在802.11标准的任意整数,供本地/内部(Internally)使用,比如用于设备驱动开发等。比如,当适配器要发送一个包,它必须检查当前信道是否可用(clear),如果RSSI值小于某个值,那么芯片就知道信号时可用的,这个值就成为"Clear Channel Threshold",并赋予某个具体RSSI值。同样还有"Roaming Threshold“,不同的厂商,这两个值是不同的,因为它们定义了不同的RSSI_MAX.所以RSSI值只能以一种相对方式使用,没有决定的精确值。
RSSI测量粒度
粒度概念在这里很重要。因为RSSI值是一个整数,它必然以某种整数(梯度)递增或者消减。比如,Symbol提供了32梯度。不论测量那个范围的能量,它必须RSSI范围所定义的一个整数梯度值。因此,如果RSSI值改变1,那么意味在能量在可测的范围内变化一定的比例。要了解RSSI,首先必须了解能量测量范围。其次是要意识到不是所有的能量等级都可以要整数的RSSI值表示的。所以选择合适的测量范围很重要,记住,RSSI是用在"Clear Channel assessmet"和用于决定"Roaming Threshold",只有在这个范围内的所提供的精确值才有意义。
能量测量范围的最小值
802.11的NIC有一个接受可用RF能量值的最小值,称为"[Receive sensitivity(RS]"(dBm)。比如,厂商会指明特定的网卡的RS值为-96dBm(1Mb/sec)。如果这种网卡接收到的信号值小于这个值,那么它将无法区分出信号和噪声。通常,我们把网卡的RS这个dBm值用RSSI=0来表示。即如果RSSI的值为0的话,那么表示接收到的信号强度值小于RS.
使用百分比制
百分比表示的是特定包(Particular packet)的RSSI值与RSSI_MAX值的商。比如,50%,那么Symbol的网卡将把这个值转为RSSI=16(因为RSSI_MAX=31)。所以当100%的时候,信号很好。当信号衰减20%,那么就到了"Roaming Threshold"。
0%的信号强度
正如前面说的,如果信号强度衰减到0%,那么对应的RSSI=0.这样的话,信号强度就是等于或者小于RS值,但网卡却不能报告说某个packet是0%的信号强度,因为这个时候网卡已经分辨不出信号和噪声,即所谓的信号不可用,所以也变没有packet可测量。
百分比转换为分贝
然而使用dbm的测量单位在实际网络的troubleshooting exercise?中并不高效,因为绝大多数的NIC只支持RSSI的范围都是小于-10dBm的,并且所以大于这个值的都是映射到RSSI_MAX值,即表示为百分比形式。而当我们接收到信号强度值大于-10dBm,比如20dBm,那么这个测量就超出了RSSI的范围(多数NIC而言)。
有两个步骤可以把接收到的百分比值转换为dBm值。首先要知道网卡的RSSI_MAX值,因为是通过这个值才把RSSI转换为百分比的。一旦有了这个值,只需要把RSSI值代入厂商提供的RSSI与dBm转换表(或者公式)得到dBm值。比如对于Symbol来说:
至于怎么得到准换表,或者公式,每个厂商不同的RSSI_MAX值不同,自然也不同。参考下网卡说明书吧。不多介绍了。
不明白的参考:http://www.wildpackets.com/elements/whitepapers/Converting_Signal_Strength.pdf
有四种测量单位可以用来表示RG信号强度。分别为:nw(milliwatts),dBm(db-milliwatts),RSSI(Received Signal Strength Indicator,接收的信号强度指示)以及百分比。所以的测量单位都是两两相关的,而且可以相互转换(存在不同程度的精度)。
mw和dBm的测量单位
相信这个大家并不陌生。通常我们衡量RF能量大小都是以 mw 为单位的,但并不方便,着不仅是以为信号强度值不是呈线性衰减,而是符合平方反比定律(inverse square law)。即如果移动2倍的距离,对应的信号强度将衰减为原来的1/4。这也是为什么引入指数的测量方式的其中一个原因。分贝,就是对信号强度的对数测量方式。mw值将转换为以10为底的对数,而因为其值很小,所以把结果再乘以10。举例:
转换公式为:
RSSI(接收的信号强度指示)
IEEE标准定义了一种机制来衡量无线网卡接收到的RF能量值。其数值为0~255的整数,即我们所说的RSSI.当然没有厂商真把信号值分成256个不同等级,但是每个厂商都指明了自己NIC的最大RSSI值(RSSI_MAX),比如Symbol使用RSSI_MAX=31(Atheros的为60)。注意这里说的完全跟 mw和dBm没有关系。RSSI是定义在802.11标准的任意整数,供本地/内部(Internally)使用,比如用于设备驱动开发等。比如,当适配器要发送一个包,它必须检查当前信道是否可用(clear),如果RSSI值小于某个值,那么芯片就知道信号时可用的,这个值就成为"Clear Channel Threshold",并赋予某个具体RSSI值。同样还有"Roaming Threshold“,不同的厂商,这两个值是不同的,因为它们定义了不同的RSSI_MAX.所以RSSI值只能以一种相对方式使用,没有决定的精确值。
RSSI测量粒度
粒度概念在这里很重要。因为RSSI值是一个整数,它必然以某种整数(梯度)递增或者消减。比如,Symbol提供了32梯度。不论测量那个范围的能量,它必须RSSI范围所定义的一个整数梯度值。因此,如果RSSI值改变1,那么意味在能量在可测的范围内变化一定的比例。要了解RSSI,首先必须了解能量测量范围。其次是要意识到不是所有的能量等级都可以要整数的RSSI值表示的。所以选择合适的测量范围很重要,记住,RSSI是用在"Clear Channel assessmet"和用于决定"Roaming Threshold",只有在这个范围内的所提供的精确值才有意义。
能量测量范围的最小值
802.11的NIC有一个接受可用RF能量值的最小值,称为"[Receive sensitivity(RS]"(dBm)。比如,厂商会指明特定的网卡的RS值为-96dBm(1Mb/sec)。如果这种网卡接收到的信号值小于这个值,那么它将无法区分出信号和噪声。通常,我们把网卡的RS这个dBm值用RSSI=0来表示。即如果RSSI的值为0的话,那么表示接收到的信号强度值小于RS.
使用百分比制
百分比表示的是特定包(Particular packet)的RSSI值与RSSI_MAX值的商。比如,50%,那么Symbol的网卡将把这个值转为RSSI=16(因为RSSI_MAX=31)。所以当100%的时候,信号很好。当信号衰减20%,那么就到了"Roaming Threshold"。
0%的信号强度
正如前面说的,如果信号强度衰减到0%,那么对应的RSSI=0.这样的话,信号强度就是等于或者小于RS值,但网卡却不能报告说某个packet是0%的信号强度,因为这个时候网卡已经分辨不出信号和噪声,即所谓的信号不可用,所以也变没有packet可测量。
百分比转换为分贝
然而使用dbm的测量单位在实际网络的troubleshooting exercise?中并不高效,因为绝大多数的NIC只支持RSSI的范围都是小于-10dBm的,并且所以大于这个值的都是映射到RSSI_MAX值,即表示为百分比形式。而当我们接收到信号强度值大于-10dBm,比如20dBm,那么这个测量就超出了RSSI的范围(多数NIC而言)。
有两个步骤可以把接收到的百分比值转换为dBm值。首先要知道网卡的RSSI_MAX值,因为是通过这个值才把RSSI转换为百分比的。一旦有了这个值,只需要把RSSI值代入厂商提供的RSSI与dBm转换表(或者公式)得到dBm值。比如对于Symbol来说:
至于怎么得到准换表,或者公式,每个厂商不同的RSSI_MAX值不同,自然也不同。参考下网卡说明书吧。不多介绍了。
不明白的参考:http://www.wildpackets.com/elements/whitepapers/Converting_Signal_Strength.pdf