Support us and view this ad

可选:点击以支持我们的网站

免费文章

1. 引言:UWB 双向测距中的时间戳精度挑战 在基于 IEEE 802.15.4z 标准的 FiRa UWB 系统中,双向测距(TWR)是实现厘米级定位的核心机制。其基本原理是通过测量数据包在设备间的飞行时间(ToF)来估算距离。然而,实际系统中晶振的标称频率(如 38.4 MHz)存在 ±20 ppm 的初始误差,加上温度和老化导致的漂移(可达 ±100 ppm),使得时间戳的测量值偏离真实值。这种偏差在单边双向测距(SS-TWR)中会导致高达数米的测距误差,而在双边双向测距(DS-TWR)中虽能部分抵消,但残留误差仍不可忽视。因此,通过算法补偿晶振漂移并融合卡尔曼滤波进行时间戳平滑,成为提升测距精度的关键。 2. 核心原理:晶振漂移模型与卡尔曼滤波融合 晶振漂移可建模为线性时变系统:设真实时钟频率为 f0,设备 A 的时钟频率偏移率为 eA,则其测量时间间隔 ΔTmeas 与真实间隔 ΔTreal 的关系为:ΔTmeas = (1 + eA) · ΔTreal。 在 DS-TWR 中,设备 A 发送 Poll 包,设备 B 回复 Response 包,A 再发送 Final 包。定义关键时间戳:· Tsp:A 发送 Poll 的本地时间· Trp:B 接收 Poll 的本地时间· Tsr:B 发送 Response 的本地时间· Trr:A 接收 Response 的本地时间· Tsf:A 发送 Final 的本地时间· Trf:B 接收 Final 的本地时间 忽略天线延迟时,飞行时间 Tprop 的经典计算公式为:Tprop = ( (Trr - Tsp) - (Tsr - Trp) + (Trf - Tsr) - (Tsf - Trr) ) / 4。 该公式假设双方时钟同频,但实际中 eA ≠ eB,导致计算出的 Tprop 含有比例误差。补偿方法是在 Final 包中嵌入 Tsp 和 Trr,由 B 端计算漂移率:eAB = (Tsr - Trp) / (Trr - Tsp) - 1,并用此修正 B 端的时间戳,消除一次漂移误差。 为进一步抑制噪声,引入卡尔曼滤波器。状态向量设为 xk = [Tprop, eA, eB]T,观测向量为原始计算出的 Tprop,raw。过程模型假设漂移缓慢变化,测量模型则包含高斯白噪声。滤波器在每次测距循环后更新状态,输出平滑后的飞行时间。 3. 实现过程:C 语言代码示例与状态机 以下伪代码展示了在 B 端(如标签设备)执行漂移补偿与卡尔曼滤波的核心逻辑。实际部署时需移植到 RTOS 环境,并处理 UWB 芯片(如 Qorvo DW3000)的 SPI 中断。 // 伪代码:DS-TWR 漂移补偿与卡尔曼滤波融合 #define KALMAN_Q 0.01f // 过程噪声协方差 #define KALMAN_R 0....

继续阅读完整内容

支持我们的网站,请点击查看下方广告

正在加载广告...

登陆