有没有人知道从rssi 计算GSM网络覆盖率(0 ... 100)的公式?对于8位AVR微控制器CPU应该是安全的,没有硬核数学运算,如log或除以不是2 ^ n的东西(首选bitshift)。使用32个可能的百分比值创建数组是不好的解决方案。
可能的rssi值(0..31是有效值):
0 -113 dBm or less
1 -111 dBm
2...30 -109... -53 dBm
31 -51 dBm or greater
99 not known or not detectable
我想要的近似值:
RSSI %
0 0
1 3
2 6
3 10
4 13
5 16
6 19
7 23
8 26
9 29
10 32
11 36
12 39
13 42
14 45
15 48
16 52
17 55
18 58
19 61
20 65
21 68
22 71
23 74
24 78
25 81
26 84
27 87
28 90
29 94
30 97
31 100
99 ?
我没有想法,所以请告诉我!谢谢你的时间!
答案 0 :(得分:2)
(rssi * 827 + 127)>> 8
乘以827,加上127以模拟舍入到最近,然后删除8个低位,全部为整数运算。
答案 1 :(得分:1)
遗憾的是,如果您希望它准确无误,这不是一项简单的任务。
本文最好地解释了任务的复杂性: https://www.adriangranados.com/blog/dbm-to-percent-conversion
答案 2 :(得分:0)
不涉及浮点数:RSSI * 3 + 3将错过高值和低值,但在中间范围内可以正常。如果高值的准确性更重要,则增加3以上,反之亦然。