OpenIPC开源FPV之RSSI/SNR/Link评估模型
- 1. 源由
- 2. 类比
- 3. 问题
- 4. 理论
- 4.1 SNR 信噪比
- 4.2 Shannon 定理
- 4.3 FSPL + SNR 联合模型
- 5. 模型
- 5.1 LOS距离评估
- 5.2 通信速率评估
- 5.3 链路自适应
- 6. 总结
- 7. 参考资料
1. 源由
在前面《OpenIPC开源FPV之RSSI衰减模型》中,主要谈自由空间路径损耗的:
- 定义
- 概念
- 出处
实际信号或者链路带宽取决因素并不是单一RSSI原因,RSSI 只是衡量“接收到的总功率”,它不包括噪声信息,因此不能完全决定能否使用高比特率传输。
现实世界并非屏蔽箱环境,周边有大量的电气设备,辐射出各种频率,甚至某些设备就工作在当前信道/频率上。这些辐射功率和工作频率带来了另一个众所周知的概念:SNR (Signal-to-Noise Ratio)。
2. 类比
- RSSI:A说话音量、频率
- SNR:A说话音量、频率,以及旁人说话音量、频率
场景:20多个人,同时、同地说话
假设:小孩音频类似、男声音频低、女声音频高;音量大小基本相似
- 【RSSI】说话音量大小 – 振幅
- 【SNR】聆听说话音量与噪音音量大小比值;
- 【BAND】音频差异,男人、女人、小孩;
3. 问题
- 问题1:RSSI 与 Bitrate 的关系
RSSI(Received Signal Strength Indicator)表示接收信号的强度,一般是负值(如 -30 dBm 表示强,-90 dBm 表示弱)。
理论上,RSSI 越高(越接近0),可以支持更高的 modulation scheme(调制方式)和 coding rate,从而支持更高的 bitrate(数据速率)。
但 RSSI 只是衡量“接收到的总功率”,它不包括噪声信息,因此不能完全决定能否使用高比特率传输。
- 问题2:FSPL(Free Space Path Loss)与 RSSI 的关系
FSPL 给出在理想自由空间条件下的路径损耗,计算公式如下:
FSPL(dB) = 20 log 10 ( d ) + 20 log 10 ( f ) + 20 log 10 ( 4 π c ) \text{FSPL(dB)} = 20 \log_{10}(d) + 20 \log_{10}(f) + 20 \log_{10}\left(\frac{4\pi}{c}\right) FSPL(dB)=20log10(d)+20log10(f)+20log10(c4π)
其中:
- d d d:距离(米)
- f f f:频率(Hz)
- c c c:光速(约 3 × 1 0 8 3 \times 10^8 3×108 m/s)
结合发射功率 P t x P_{tx} Ptx、天线增益 G t x G_{tx} Gtx、 G r x G_{rx} Grx,以及路径损耗 FSPL,可估算 RSSI:
RSSI = P t x + G t x + G r x − FSPL \text{RSSI} = P_{tx} + G_{tx} + G_{rx} - \text{FSPL} RSSI=Ptx+Gtx+Grx−FSPL
所以 FSPL 影响 RSSI,详见:《OpenIPC开源FPV之RSSI衰减模型》。
- 问题3:为什么 RSSI 满足,但 bitrate 上不去?
这就涉及 SNR(Signal-to-Noise Ratio) 了:
- 即使 RSSI 足够高,如果噪声功率(Noise Floor)也很高,SNR 仍然低;
- SNR 决定了 modulation/coding 可选的等级(比如 QPSK vs 64-QAM);
- SNR 不足 → 系统自动降速 → bitrate 降低(即 WiFi 自动选择更稳定但速度更低的 MCS level)。
4. 理论
4.1 SNR 信噪比
信噪比(SNR, Signal-to-Noise Ratio)定义为:
- 线性值(无单位)
SNR = P signal P noise \text{SNR} = \frac{P_{\text{signal}}}{P_{\text{noise}}} SNR=PnoisePsignal
- 对数形式(dB)
SNR(dB) = 10 ⋅ log 10 ( P signal P noise ) \text{SNR(dB)} = 10 \cdot \log_{10}\left( \frac{P_{\text{signal}}}{P_{\text{noise}}} \right) SNR(dB)=10⋅log10(PnoisePsignal)
- 与 RSSI 的关系
SNR(dB) = RSSI(dBm) − NoiseFloor(dBm) \text{SNR(dB)} = \text{RSSI(dBm)} - \text{NoiseFloor(dBm)} SNR(dB)=RSSI(dBm)−NoiseFloor(dBm)
- RSSI(Received Signal Strength Indicator) 是接收信号的绝对强度(dBm)
- 噪声通常用 Noise Floor 表示,也以 dBm 表示(如 -95 dBm)
- 信噪比的意义
- SNR 越高,通信越可靠
- SNR 决定可使用的调制方式(MCS)
- SNR 也用于链路质量评估、自动功率控制、速率自适应等机制
4.2 Shannon 定理
香农定理描述了信道容量与 SNR 的关系:
C = B ⋅ log 2 ( 1 + SNR ) C = B \cdot \log_2(1 + \text{SNR}) C=B⋅log2(1+SNR)
其中:
- C C C:最大理论比特率(bps)
- B B B:带宽(Hz)
- SNR \text{SNR} SNR:以线性值表达(如 10 表示 10:1,而不是 dB)
这说明 SNR 是决定可达比特率的核心物理量,而 RSSI 是 SNR 的一部分输入变量。
4.3 FSPL + SNR 联合模型
FSPL 是影响信号强度的一个因素,但不是唯一因素,真正影响 bitrate 的,是 SNR 和无线链路质量。
SNR (dB) = RSSI − Noise Floor \text{SNR (dB)} = \text{RSSI} - \text{Noise Floor} SNR (dB)=RSSI−Noise Floor
RSSI = P t x + G t x + G r x − FSPL \text{RSSI} = P_{tx} + G_{tx} + G_{rx} - \text{FSPL} RSSI=Ptx+Gtx+Grx−FSPL
最终决定比特率的是:
Bitrate ∝ log 2 ( 1 + SNR ) \text{Bitrate} \propto \log_2(1 + \text{SNR}) Bitrate∝log2(1+SNR)
所以:
- FSPL 影响 RSSI
- RSSI 与 Noise Floor 决定 SNR
- SNR 决定 modulation/coding → 决定 bitrate
5. 模型
5.1 LOS距离评估
在自由空间(Line-of-Sight)条件下估算无线通信距离,完整自由空间距离估算模型:
d = 1 0 ( P t + G t + G r − RSSI − 20 log 10 ( f ) − 32.44 20 ) d = 10^{\left( \frac{P_t + G_t + G_r - \text{RSSI} - 20\log_{10}(f) - 32.44}{20} \right)} d=10(20Pt+Gt+Gr−RSSI−20log10(f)−32.44)
参数 | 含义 | 单位 |
---|---|---|
d d d | 估算距离 | 公里(km) |
P t P_t Pt | 发射功率(Tx Power) | dBm |
G t G_t Gt | 发射天线增益(Tx Gain) | dBi |
G r G_r Gr | 接收天线增益(Rx Gain) | dBi |
RSSI \text{RSSI} RSSI | 实际接收信号强度(接收功率) | dBm |
f f f | 频率(WiFi常用如2400或5800) | MHz |
示例:
假设:
- P t = 20 dBm P_t = 20 \, \text{dBm} Pt=20dBm
- G t = 3 dBi G_t = 3 \, \text{dBi} Gt=3dBi
- G r = 2 dBi G_r = 2 \, \text{dBi} Gr=2dBi
- RSSI = − 65 dBm \text{RSSI} = -65 \, \text{dBm} RSSI=−65dBm
- f = 2400 MHz f = 2400 \, \text{MHz} f=2400MHz
代入:
d = 1 0 ( 20 + 3 + 2 − ( − 65 ) − 20 log 10 ( 2400 ) − 32.44 20 ) d = 10^{\left( \frac{20 + 3 + 2 - (-65) - 20 \log_{10}(2400) - 32.44}{20} \right)} d=10(2020+3+2−(−65)−20log10(2400)−32.44)
先计算:
- 20 + 3 + 2 − ( − 65 ) = 90 20 + 3 + 2 - (-65) = 90 20+3+2−(−65)=90
- 20 log 10 ( 2400 ) ≈ 67.6 20 \log_{10}(2400) ≈ 67.6 20log10(2400)≈67.6
再:
d = 1 0 ( 90 − 67.6 − 32.44 20 ) = 1 0 ( − 10.04 20 ) ≈ 1 0 − 0.502 ≈ 0.314 km = 314 米 d = 10^{\left( \frac{90 - 67.6 - 32.44}{20} \right)} = 10^{\left( \frac{-10.04}{20} \right)} ≈ 10^{-0.502} ≈ 0.314 \, \text{km} = 314 \, \text{米} d=10(2090−67.6−32.44)=10(20−10.04)≈10−0.502≈0.314km=314米
5.2 通信速率评估
香农定理(Shannon-Hartley 定理)给出初步的通信速率评估公式:
Bitrate max = B ⋅ log 2 ( 1 + SNR linear ) \text{Bitrate}_{\text{max}} = B \cdot \log_2(1 + \text{SNR}_{\text{linear}}) Bitratemax=B⋅log2(1+SNRlinear)
参数 | 含义 | 单位 |
---|---|---|
B B B | 信道带宽 | Hz(如 WiFi 20MHz = 20×10⁶) |
SNR linear \text{SNR}_{\text{linear}} SNRlinear | 线性信噪比(非 dB) | 无单位 |
Bitrate max \text{Bitrate}_{\text{max}} Bitratemax | 最大理论比特率 | bit/s |
注:该公式为理论最大值,实际使用中比特率还受限于调制方式、协议开销、误码率、安全编码、MCS 等因素。
实际中的修正模型(考虑系统效率),经验上可乘一个系统效率系数(一般 0.6 ~ 0.9):
Bitrate real ≈ η ⋅ B ⋅ log 2 ( 1 + 1 0 ( RSSI − NoiseFloor ) / 10 ) \text{Bitrate}_{\text{real}} \approx \eta \cdot B \cdot \log_2 \left(1 + 10^{(\text{RSSI} - \text{NoiseFloor}) / 10} \right) Bitratereal≈η⋅B⋅log2(1+10(RSSI−NoiseFloor)/10)
其中 η \eta η 是效率因子,比如:
- WiFi 理论 vs 实际效率通常约为 70%(0.7)
5.3 链路自适应
实际使用中比特率受限于调制方式、误码率、安全编码、MCS 等因素。
注:协议开销属于逻辑上开销,而这里重点侧重在RF侧。
- 调制方式(如 BPSK/QPSK/16-QAM/64-QAM/256-QAM)
- 编码率(如 1/2、2/3、3/4、5/6)
- 比特率(bitrate)
- 最小所需的 SNR(dB)
上述内容 厂商根据实验和标准测试确定的表格,虽然不同厂商的容错可能略有差异,但基本遵循一定规律。
典型 MCS 与所需最小 SNR 表(以 WiFi 为例)
MCS Index | Modulation | Coding Rate | Required SNR (dB, 20MHz) | Typical Bitrate (Mbps) |
---|---|---|---|---|
0 | BPSK | 1/2 | ~4 | 6.5 |
1 | QPSK | 1/2 | ~7 | 13 |
2 | QPSK | 3/4 | ~9 | 19.5 |
3 | 16-QAM | 1/2 | ~12 | 26 |
4 | 16-QAM | 3/4 | ~15 | 39 |
5 | 64-QAM | 2/3 | ~18 | 52 |
6 | 64-QAM | 3/4 | ~21 | 58.5 |
7 | 64-QAM | 5/6 | ~24 | 65 |
8 | 256-QAM | 3/4 | ~27 | 78 |
9 | 256-QAM | 5/6 | ~30 | 86.7 |
- 上表假设 1 spatial stream,20 MHz 带宽(如 802.11n 情况)
- 如果带宽加倍(如 40MHz),比特率也大致加倍
- 多天线(MIMO)下,每个 spatial stream 可独立使用一个 MCS
实际系统使用 MCS 表:
设备通常会:
- 根据当前 SNR 自动选择最佳 MCS
- 低 SNR → 低速率,采用稳健的调制方式(如 BPSK)
- 高 SNR → 高速率,采用高阶调制(如 256-QAM)
这个过程叫做 link adaptation 或 rate adaptation,其逻辑关系:
RSSI + Noise Floor ⇒ SNR ⇒ MCS ⇒ Bitrate \text{RSSI} + \text{Noise Floor} \Rightarrow \text{SNR} \Rightarrow \text{MCS} \Rightarrow \text{Bitrate} RSSI+Noise Floor⇒SNR⇒MCS⇒Bitrate
6. 总结
基于上述分析,我们可以更加清晰的看到,硬件RF厂商提供的硬件特性和图传链路自适应算法对整个RF链路的稳定性,高效性至关重要!
- OpenIPC开源FPV之Adaptive-Link日志分析
- OpenIPC开源FPV之Adaptive-Link新版本算法v0.60.0
- OpenIPC开源FPV之Adaptive-Link天空端代码解析
- OpenIPC开源FPV之Adaptive-Link地面站代码解析
以上对OpenIPC自适应链路的算法逻辑的分析,以及测试数据看,与本章节RSSI/SNR/Link评估模型有些许出入。若有机会从设计角度,抽象出自适应链路算法逻辑框架,提供更好的API算法抽象,提供各种算法模型、参数,应用与各种使用环境,将会对自适应链路的稳定性,健壮性,高效性有所帮助!
希望,后续能看到更多的进展,同时也不断了解、补充、完善相关产品设计!
7. 参考资料
【1】OpenIPC开源FPV之Adaptive-Link关键RF参数
【2】OpenIPC开源FPV之Adaptive-Link信号干扰
【3】OpenIPC开源FPV之Adaptive-Link新版本算法v0.60.0
【4】OpenIPC开源FPV之Adaptive-Link日志分析
【5】OpenIPC开源FPV之RSSI衰减模型
【6】OpenIPC开源FPV之Adaptive-Link天空端代码解析
【7】OpenIPC开源FPV之Adaptive-Link地面站代码解析
【8】OpenIPC开源FPV之Adaptive-Link工程解析