OpenIPC开源FPV之Adaptive-Link关键RF参数
1. 源由
虽然,OpenIPC作为FPV图传在延时,性能的角度,已经非常棒了。
在权衡一些特殊场景,尤其是FPV穿越机场景,Adaptie Link是一个比较有意思的实现,尽管从目前使用场景看,仍然存在一些问题。
- The Runcam Wifi Link V2 is better than I initially thought - More testing
- Enhancing Packet Loss Handling in FPV Scenarios with Increased FEC #21
换句话说,对于高速穿梭于障碍物环境的穿越机来说,RF信号必须快速应对信号衰减、反射、干扰导致的丢包,进而影响FPV图像质量的问题。
2. 参数
为此,首先对Adaptive Link关键的RF参数做一些基本介绍,以便更好的设置以及算法的优化。
2.1 基本参数
2.1.1 FPS (帧率)
- 定义:FPS 是 Frames Per Second 的缩写,表示每秒钟显示的帧数。它用于衡量视频流的流畅程度。
- 影响:
- 高 FPS(如 60 FPS):视频播放更加流畅,适合快速运动场景,如游戏、高清视频等。
- 低 FPS(如 15 FPS):视频看起来可能卡顿或不流畅,适合低带宽或低质量视频传输场景。
- 应用:FPS 对于视频监控、流媒体、视频编辑等领域非常重要,尤其在需要实时传输或高质量显示时,维持适当的 FPS 是关键。
2.1.2 CPU (CPU 使用率)
- 定义:CPU 使用率表示当前系统 CPU 资源的使用情况,通常以百分比表示。它反映了 CPU 处理任务的繁忙程度。
- 影响:
- 高 CPU 使用率:可能会导致系统响应变慢、延迟增加,甚至可能影响其他程序的正常运行。通常需要对任务进行优化或增加硬件资源。
- 低 CPU 使用率:表示系统资源闲置,通常意味着系统没有过载,工作状态良好。
- 应用:监控 CPU 使用率对于性能优化至关重要,特别是在嵌入式设备或高负载任务(如视频处理、数据分析等)中,保持适当的 CPU 使用率有助于确保系统稳定运行。
2.1.3 TX_TEMP (RF 发射芯片温度)
- 定义:TX_TEMP 是指无线发射芯片(RF 模块)在工作时的温度。该温度通常与无线通信的稳定性和性能直接相关。
- 影响:
- 高温:过高的温度可能导致 RF 模块的功率输出不稳定,甚至损坏硬件。它还可能影响 Wi-Fi 信号质量,增加误码率或导致连接断开。
- 低温:通常没有太大问题,但温度过低也可能影响芯片的正常工作,尤其是在寒冷环境下。
- 应用:通过监控 TX_TEMP 可以预防过热问题,优化设备散热设计,保持无线设备的稳定性和长时间可靠运行。
2.2 模式参数
2.2.1 Time Elapsed (持续时间)
- 解释:指的是当前 Wi-Fi 传输模式或活动已经持续了多长时间。这个参数通常用于统计或监测连接持续时间,并不直接影响 Wi-Fi 性能,但可以用来评估连接的稳定性。
- 影响:持续时间较长可能意味着连接更稳定,但也可能受到环境干扰、网络负载等因素影响,导致性能下降。
2.2.2 Bitrate (比特率)
- 解释:比特率是指单位时间内传输的数据量,通常以 Mbps(兆比特每秒)为单位。它表示网络的传输速度,影响 Wi-Fi 的数据流量和响应速度。
- 影响:
- 提高比特率(通过增加信号强度或改善信号质量)可以提升数据传输速度,但在信号不稳定的环境下,可能会导致丢包或错误增加。
- 降低比特率(降低编码复杂度或减小带宽)可以提高稳定性,但会牺牲传输速率。
2.2.3 Bandwidth (带宽)
- 解释:带宽是指 Wi-Fi 信号能够传输的频率范围,通常以 MHz(兆赫)为单位。带宽越大,Wi-Fi 可以在更高的频率范围内传输数据,从而提高数据速率。
- 影响:
- 增加带宽(如从 20 MHz 增加到 40 MHz 或 80 MHz)会提高吞吐量和数据传输速度,但对环境干扰的容忍度较低,可能会导致信号质量下降。
- 减小带宽(如从 80 MHz 降到 20 MHz)可以增加信号的抗干扰能力,但可能会降低最大传输速率。
2.2.4 GI, Guard Interval (保护间隔)
- 解释:保护间隔是两个符号之间的时间间隔,用来减少多径效应造成的符号间干扰。它通常设置为 400ns(短间隔) 或 800ns(长间隔)。
- 影响:
- 使用短保护间隔(400ns) 可以提高传输速率,因为它减少了每个符号之间的空闲时间,从而提高了数据吞吐量。
- 使用长保护间隔(800ns) 则可以提高信号的鲁棒性,在复杂环境中减少多径干扰,尤其是对于较长距离传输或有较强干扰的环境。
2.2.5 MCS, Modulation and Coding Scheme (调制编码方案)
- 解释:MCS 定义了调制方式(如 BPSK、QPSK、16-QAM、64-QAM)和编码率(如 1/2、2/3、5/6)。它影响 Wi-Fi 的数据传输速率和信号质量。
- 影响:
- 提高 MCS(如从 MCS 1 到 MCS 9) 可以提高吞吐量,适合在信号强、干扰少的环境中使用。
- 降低 MCS(如从 MCS 9 降到 MCS 3) 可以增强抗干扰能力,适用于信号弱或干扰较大的环境,但会降低数据传输速率。
2.2.6 K/N, Coding Rate (编码率)
- 解释:编码率是指传输的有效数据比率,例如 2/3 或 3/4。它表示数据中有效数据比重与总数据的比重,越高意味着数据的冗余越少,效率越高。
- 影响:
- 提高编码率(如从 1/2 到 3/4 或 5/6) 会提高数据传输速率,但在信号质量差的环境下可能会增加错误率。
- 降低编码率(如从 5/6 降到 1/2) 可以提高传输的鲁棒性,在信号差或干扰较大的环境中稳定传输,但会牺牲部分数据吞吐量。
2.2.7 Power (功率)
- 解释:Wi-Fi 信号的功率影响信号的覆盖范围和传输距离。较高的功率可以增强信号强度,使 Wi-Fi 信号能够覆盖更远的距离。
- 影响:
- 提高功率 可以增加信号的覆盖范围,适用于大范围的区域或需要强信号的场景,但可能会引入更多的干扰。
- 降低功率 可以减少干扰,特别是在高密度环境中,但会缩短传输距离。
2.2.8 GOP, Group of Pictures (图像组)
- 解释:GOP 是视频编码中图像帧的组织结构,通常由 I 帧、P 帧和 B 帧组成。它影响视频编码的压缩效率和恢复速度。
- 影响:
- 增加 GOP 大小(较长时间的 I 帧间隔)可以降低带宽消耗,但如果丢失 I 帧,恢复视频画面会比较慢。
- 减小 GOP 大小(更频繁地插入 I 帧)有助于提高视频恢复速度,适用于直播或高互动场景,但会增加带宽占用。
2.3 RF参数
2.3.1 RSSI (Received Signal Strength Indicator)
-
定义:RSSI 是接收信号强度指示符,用于表示接收到的无线信号强度,通常以 dBm(分贝毫瓦)为单位。RSSI 值反映了信号的接收质量,值越大表示信号越强,反之则表示信号较弱。
-
影响:
- 较高的 RSSI 值(如 -30 dBm 到 -50 dBm):表示接收到的信号很强,连接质量好,数据传输速率较高,适合高带宽需求的应用,如高清视频流、文件传输等。
- 较低的 RSSI 值(如 -60 dBm 到 -80 dBm):信号较弱,可能会导致数据传输速率降低、延迟增加,甚至出现连接断开等问题。在弱信号环境下,需要考虑使用信号放大器或更接近的接入点。
- 非常低的 RSSI 值(如 -90 dBm 以下):表示信号非常弱,几乎无法连接,数据传输失败的风险较高。
-
应用:RSSI 是评估无线网络覆盖范围和稳定性的关键参数。高 RSSI 值通常意味着更好的信号质量,低 RSSI 值则表明连接可能不稳定或容易掉线。
2.3.2 SNR (Signal-to-Noise Ratio)
-
定义:SNR 是信号与噪声比,表示接收到的信号强度与背景噪声强度之间的比率,通常以 dB(分贝)为单位。SNR 值越大,意味着信号质量越好,相对于噪声的干扰较小,传输的可靠性更高。
-
影响:
- 较高的 SNR 值(如 30 dB 或更高):表示信号质量非常好,背景噪声对信号的干扰较小,Wi-Fi 连接稳定,数据传输速度较高。
- 中等的 SNR 值(如 15 dB 到 30 dB):信号与噪声的比率适中,连接性能较好,但在噪声较大的环境中可能出现轻微的传输误差或丢包。
- 较低的 SNR 值(如 5 dB 以下):表示噪声强度较大,信号质量差,可能导致数据包丢失、延迟增大、连接不稳定,传输速率明显下降。
-
应用:SNR 是衡量无线信号质量的重要参数。高 SNR 值意味着无线信号较为清晰,干扰较小,适合高带宽应用。低 SNR 值通常意味着信号受到了较强干扰,可能需要降低传输速率,或者改善无线环境来提高稳定性。
2.4 IP报文
2.4.1 FEC 恢复包数量(FEC Recovered Packets)
- 定义:FEC(Forward Error Correction,前向纠错)是一种通过额外的冗余数据在接收端恢复丢失数据包的技术。该参数表示 FEC 成功恢复的数据包数量。
- 影响:
- FEC 恢复的包越多,说明网络环境存在丢包现象,但 FEC 能够有效纠正部分错误,提高传输稳定性。
- FEC 恢复的包较少或为 0,说明丢包较少或 FEC 机制未生效。
- FEC 机制过载(恢复包数量过高)可能导致额外的带宽消耗,影响整体传输效率。
- 优化建议:
- 增加 FEC 码率,提高纠错能力,但会增加额外带宽占用。
- 在丢包严重时,提高 Wi-Fi 信号质量或优化天线布局,减少对 FEC 的依赖。
2.4.2 发送端丢弃包数量(Dropped Packets at Sender)
- 定义:表示发送端因缓存溢出、网络拥塞或带宽不足导致未能成功发送的数据包数量。这些包无法进入无线传输链路,必定丢失。
- 影响:
- 丢弃包数量增加 表示带宽不足、发送端处理能力受限或 QoS(服务质量)设置不合理。
- 过多的丢弃包 会导致数据流中断,影响视频、音频等实时应用的流畅性。
- 优化建议:
- 降低传输速率(Bitrate),减少网络负载。
- 调整 Wi-Fi 信道,避免干扰,提升无线传输能力。
- 增加缓冲区,提高发送端的流量调控能力。
2.4.3 天空端关键帧请求次数(Keyframe Requests from Air Unit)
- 定义:天空端(通常指无人机或无线终端)检测到关键帧间隔内有丢包后,向地面端请求重新发送关键帧的次数。
- 影响:
- 请求次数增加 说明丢包率较高,导致解码器缺少完整的视频数据,可能出现画面卡顿或马赛克现象。
- 过多的关键帧请求会增加额外带宽占用,影响数据流的连续性。
- 优化建议:
- 提高 Wi-Fi 传输质量,减少丢包情况。
- 适当调整关键帧间隔(GOP),避免因频繁请求关键帧导致带宽压力增加。
- 结合 FEC 机制,减少对关键帧重传的依赖。
2.4.4 地面端关键帧请求次数(Keyframe Requests from Ground Unit)
- 定义:地面端(通常指控制端或基站)因接收端丢包或解码失败,向发送端请求关键帧的次数。
- 影响:
- 请求次数增加 说明地面端接收到的信号不完整,可能是信号干扰、带宽不足或 FEC 纠错失败导致的。
- 频繁的关键帧请求会增加带宽消耗,使网络负载加重,影响整体数据传输性能。
- 优化建议:
- 提高 SNR(信号噪声比),减少无线信道干扰。
- 优化 FEC 码率,提升数据恢复能力,减少关键帧请求的必要性。
- 确保地面端的网络环境稳定,避免因丢包导致的过度请求。
3. 评价方法
3.1 RSSI评估
link_health_score_rssi = 1000 + ( rssi_to_use − min_rssi max_rssi − min_rssi ) × 1000 \text{link\_health\_score\_rssi} = 1000 + \left( \frac{\text{rssi\_to\_use} - \text{min\_rssi}}{\text{max\_rssi} - \text{min\_rssi}} \right) \times 1000 link_health_score_rssi=1000+(max_rssi−min_rssirssi_to_use−min_rssi)×1000
3.2 SNR评估
link_health_score_snr = 1000 + ( avg_best_snr − min_snr max_snr − min_snr ) × 1000 \text{link\_health\_score\_snr} = 1000 + \left( \frac{\text{avg\_best\_snr} - \text{min\_snr}}{\text{max\_snr} - \text{min\_snr}} \right) \times 1000 link_health_score_snr=1000+(max_snr−min_snravg_best_snr−min_snr)×1000
3.3 混合评估
- 原始RF质量评估分数
combined_value_float = rssi_score × rssi_weight + snr_score × snr_weight \text{combined\_value\_float} = \text{rssi\_score} \times \text{rssi\_weight} + \text{snr\_score} \times \text{snr\_weight} combined_value_float=rssi_score×rssi_weight+snr_score×snr_weight
- 滤波RF质量评估分数
smoothed_combined_value = ( chosen_smoothing_factor × combined_value_float + ( 1 − chosen_smoothing_factor ) × smoothed_combined_value ) \text{smoothed\_combined\_value} = \left( \text{chosen\_smoothing\_factor} \times \text{combined\_value\_float} + (1 - \text{chosen\_smoothing\_factor}) \times \text{smoothed\_combined\_value} \right) smoothed_combined_value=(chosen_smoothing_factor×combined_value_float+(1−chosen_smoothing_factor)×smoothed_combined_value)
4. EWMA平滑滤波
指数加权移动平均 (Exponentially Weighted Moving Average, EWMA) 是一种平滑滤波算法,常用于信号处理、数据分析和噪声抑制。相比于简单移动平均 (SMA),EWMA 赋予最近的数据点更高的权重,使其能够更快地响应变化,同时减少噪声影响。
- 无线信号处理:平滑 RSSI(信号强度)或 SNR(信噪比)变化,提高信号质量评估的稳定性。
- 网络流量监测:用于计算带宽利用率的平滑值,减少突发流量的影响。
- 金融数据分析:用于计算股票移动平均线,减少短期波动的影响。
- 传感器数据滤波:降低噪声,提高测量稳定性,如温度、压力等物理量。
滤波方法 | 计算复杂度 | 反应速度 | 平滑效果 | 适用场景 |
---|---|---|---|---|
简单移动平均 (SMA) | 低 | 中等 | 适中 | 适用于平稳数据 |
指数加权移动平均 (EWMA) | 低 | 可调 | 可调 | 适用于动态变化数据 |
卡尔曼滤波 (KF) | 高 | 快速 | 适中 | 适用于高精度系统 |
均值滤波 | 低 | 慢 | 强 | 适用于强噪声环境 |
4.1 EWMA 递归公式
S t = α ⋅ X t + ( 1 − α ) ⋅ S t − 1 S_t = \alpha \cdot X_t + (1 - \alpha) \cdot S_{t-1} St=α⋅Xt+(1−α)⋅St−1
其中:
- S t S_t St:当前时刻的平滑值(输出)
- X t X_t Xt:当前时刻的输入值
- S t − 1 S_{t-1} St−1:上一时刻的平滑值
- α \alpha α:平滑因子(范围: 0 < α ≤ 1 0 < \alpha \leq 1 0<α≤1)
4.2 平滑因子 ( α \alpha α) 的影响
- 较大的
α
\alpha
α 值 (接近 1)
- 更关注当前数据点,响应变化更快,但抗噪能力较低。
- 适用于动态变化较快的信号。
- 较小的
α
\alpha
α 值 (接近 0)
- 平滑效果更强,减少噪声,但对变化的反应较慢。
- 适用于长期趋势分析或降低短期波动的影响。
5. 惩罚评估
RF质量惩罚评估值,采用在apply_penalty_for_s
取最小的一个值。
- apply_penalty_for_s
- applied_penalty = min(fec_rec_penalty * recovered, max_fec_rec_penalty)
**感觉不合理!!!**后面有时间,再做深入探讨!!!
6. 参考资料
【1】OpenIPC开源FPV之Adaptive-Link工程解析
【2】OpenIPC开源FPV之Adaptive-Link天空端代码解析
【3】OpenIPC开源FPV之Adaptive-Link地面站代码解析
【4】OpenIPC开源FPV之Adaptive-Link安装