channel sounding基于探测序列的时延和相位差算法

背景

最近这段时间研究了蓝牙6.0测距算法,所以仔细研究和阅读了core spec关于channel sounding相关章节,结合自己的数字信号知识,基于探测序列的求得时延和相位差算法数学实现的核心思想:TX端通过构造经GFSK调制的[0,1]探测序列或者未经调制的恒定CS Tone,RX端通过IQ混频低通滤波采样计算相位或时间差

目前基于channel sounding测距的芯片精度如何,还望有粉丝告知,我还是处于理论学习阶段,感觉工程实现还是挺难的。

基于sounding sequence的分数时延估算

定时估计可从调制的重复 [0 1] 比特序列中推导。调制方式为 LE 1M PHY、LE 2M PHY 或 LE 2M 2BT PHY。该序列的周期性会在输出频谱中产生两个不同的音调,其周期性分量与两个符号的基本重复相关联。在 1 Msym/s 速率下,周期为 2 µs;在 2 Msym/s 速率下,周期为 1 µs。

  • ( f ) 表示复正弦波的频率,
  • ( α\alphaα ) 表示这两个信号的公共复增益。

则两个复正弦基带信号可表示为:

S+(f,t)=αe+j2πftS_{+}(f, t) = \\alpha e\^{+j2\\pi ft}S+(f,t)=αe+j2πft

S−(f,t)=αe−j2πftS_{-}(f, t) = \\alpha e\^{-j2\\pi ft}S−(f,t)=αe−j2πft

设接收端的采样周期为 TsT_sTs,
nnn 表示从时间 ttt 开始的复正弦波的采样点数,
MMM 表示积分周期(以复正弦波的完整周期为单位)。

则积分周期内的采样点数 LLL 表示为:
L=MfTs−1 L = \frac{M}{f T_s} - 1 L=fTsM−1

将包含调制重复序列 [0 1] 的信号记为:
Sn,t=s(t+nTs) S_{n,t} = s(t + n T_s) Sn,t=s(t+nTs)

通过以下两个相关运算测量两个复正弦波的相位:
ϕ(t,+f)=∠∑n=0LSn,t×e−j2πfnTs(EQ 4) \phi(t, +f) = \angle \sum_{n=0}^{L} S_{n,t} \times e^{-j 2\pi f n T_s} \quad \text{(EQ 4)} ϕ(t,+f)=∠n=0∑LSn,t×e−j2πfnTs(EQ 4)
ϕ(t,−f)=∠∑n=0LSn,t×e+j2πfnTs \phi(t, -f) = \angle \sum_{n=0}^{L} S_{n,t} \times e^{+j 2\pi f n T_s} ϕ(t,−f)=∠n=0∑LSn,t×e+j2πfnTs

由于接收端的时间量化误差和随机采样时钟偏移,基于接收端采样时钟率估计的到达时间(ToA)与实际 ToA 不同。设接收端天线端口测得的同步序列起始粗估计为 tsynct_{\text{sync}}tsync。利用上述两式,分数延迟计算为:
Δt=ϕ(tsync,+f)−ϕ(tsync,−f)4πf \Delta t = \frac{\phi(t_{\text{sync}}, +f) - \phi(t_{\text{sync}}, -f)}{4\pi f} Δt=4πfϕ(tsync,+f)−ϕ(tsync,−f)

最后公式的推导

公式的目标是通过相位差 Δϕ=ϕ(tsync,+f)−ϕ(tsync,−f)\Delta \phi = \phi(t_{\text{sync}}, +f) - \phi(t_{\text{sync}}, -f)Δϕ=ϕ(tsync,+f)−ϕ(tsync,−f) 计算时间偏移 Δt\Delta tΔt。其推导过程如下:

1. 相位与时间偏移的关系

复正弦波 ej2πfte^{j 2\pi f t}ej2πft 的相位为 2πft2\pi f t2πft。若存在时间偏移 Δt\Delta tΔt,相位变化量为:
Δϕ=2πfΔt \Delta \phi = 2\pi f \Delta t Δϕ=2πfΔt

2. 正负频率的相位差

对于频率 +f+f+f 和 −f-f−f,相位差 Δϕ\Delta \phiΔϕ 实际为两者相位变化的叠加:

  • 频率 +f+f+f 的相位变化:+2πfΔt+2\pi f \Delta t+2πfΔt
  • 频率 −f-f−f 的相位变化:−2πfΔt-2\pi f \Delta t−2πfΔt
    总相位差为两者之差:
    Δϕ=(+2πfΔt)−(−2πfΔt)=4πfΔt \Delta \phi = (+2\pi f \Delta t) - (-2\pi f \Delta t) = 4\pi f \Delta t Δϕ=(+2πfΔt)−(−2πfΔt)=4πfΔt

3. 解算时间偏移

将 Δϕ\Delta \phiΔϕ 表达式变形,得到时间偏移 Δt\Delta tΔt:
Δt=Δϕ4πf \Delta t = \frac{\Delta \phi}{4\pi f} Δt=4πfΔϕ

物理意义

通过正负频率的相位差消除共模误差(如时钟漂移),仅保留与时间偏移线性相关的分量,从而精确估计 Δt\Delta tΔt。

基于sounding sequence的相位PCT估算

设:

  • φ₀ₐ 表示设备A发射信号的射频初始相位
  • φ₀ᵦ 表示接收设备B观测到的信号射频接收相位
  • ωₗₒ 表示信号的载波频率
  • ωₘ 表示调制音调的频率

设备A发射的调制信号[0 1]的复数表示为:

Srf_a(t)=ej(ωlot+ϕ0a)⋅(e+jωmt+e−jωmt)S_{rf\\_a}(t) = e\^{j(\\omega_{lo}t + \\phi_{0a})} \\cdot \\left( e\^{+j\\omega_m t} + e\^{-j\\omega_m t} \\right)Srf_a(t)=ej(ωlot+ϕ0a)⋅(e+jωmt+e−jωmt)

设:

  • D 表示传播距离
  • C 表示光速

在接收设备B处,接收信号的表示为:

Srf_b(t)=ej(ωlot+ϕ0a−ωloDC)⋅(e+jωmt+e−jωmt)S_{rf\\_b}(t) = e\^{j\\left(\\omega_{lo}t + \\phi_{0a} - \\frac{\\omega_{lo}D}{C}\\right)} \\cdot \\left( e\^{+j\\omega_m t} + e\^{-j\\omega_m t} \\right)Srf_b(t)=ej(ωlot+ϕ0a−CωloD)⋅(e+jωmt+e−jωmt)

接收端处理后,上式可表示为:

Srf_b(t)=ej(ϕ0a−ϕ0b−ωloDC)⋅(e+jωmt+e−jωmt)S_{rf\\_b}(t) = e\^{j\\left(\\phi_{0a} - \\phi_{0b} - \\frac{\\omega_{lo}D}{C}\\right)} \\cdot \\left( e\^{+j\\omega_m t} + e\^{-j\\omega_m t} \\right)Srf_b(t)=ej(ϕ0a−ϕ0b−CωloD)⋅(e+jωmt+e−jωmt)

相位相关计算

根据第3.3节的相关运算,等式X对两个复正弦信号生成以下相位结果:

SS_PCT1=ϕt+f=∑n=0LSrf_b(n,t)×e−j2πfnTsSS\\_PCT1 = \\phi_t + f = \\sum_{n=0}\^L S_{rf\\_b}(n, t) \\times e\^{-j2\\pi f n T_s}SS_PCT1=ϕt+f=∑n=0LSrf_b(n,t)×e−j2πfnTs

SS_PCT2=ϕt−f=∑n=0LSrf_b(n,t)×e+j2πfnTsSS\\_PCT2 = \\phi_t - f = \\sum_{n=0}\^L S_{rf\\_b}(n, t) \\times e\^{+j2\\pi f n T_s}SS_PCT2=ϕt−f=∑n=0LSrf_b(n,t)×e+j2πfnTs

本地振荡器相位校正

在设备B处,为校正发射时本地振荡器的相位变化,需对两个相关结果进行复数乘法校正:

校正因子=exp⁡(j×phase_correction)\\text{校正因子} = \\exp(j \\times \\text{phase\\_correction})校正因子=exp(j×phase_correction)

其中相位校正值以弧度表示,参考点为本地设备的天线。

相位旋转与测距公式推导

相位差计算简化

假设相关性计算起始时间为任意时刻tit_iti,相位差可简化为:
φ(ti+f)=ej(φ0a−φ0b−ωloDC)⋅e+jωmtiφ(ti−f)=ej(φ0a−φ0b−ωloDC)⋅e−jωmti \begin{aligned} \varphi(t_i + f) &= e^{j(\varphi_0^a - \varphi_0^b - \frac{\omega_{lo}D}{C})} \cdot e^{+j\omega_m t_i} \\ \varphi(t_i - f) &= e^{j(\varphi_0^a - \varphi_0^b - \frac{\omega_{lo}D}{C})} \cdot e^{-j\omega_m t_i} \end{aligned} φ(ti+f)φ(ti−f)=ej(φ0a−φ0b−CωloD)⋅e+jωmti=ej(φ0a−φ0b−CωloD)⋅e−jωmti

设备间相位旋转结果

从设备A到设备B的相位旋转结果为:
φab=∠φ(ti+f)+∠φ(ti−f)2=φ0a−φ0b−ωloDC \varphi_{ab} = \frac{\angle \varphi(t_i + f) + \angle \varphi(t_i - f)}{2} = \varphi_0^a - \varphi_0^b - \frac{\omega_{lo}D}{C} φab=2∠φ(ti+f)+∠φ(ti−f)=φ0a−φ0b−CωloD

双向测距模型

设备B反向传输后,设备A到设备B的相位旋转结果为:
φba=φ0b−φ0a−ωloDC \varphi_{ba} = \varphi_0^b - \varphi_0^a - \frac{\omega_{lo}D}{C} φba=φ0b−φ0a−CωloD

两者结合可得两设备间距离估计:
Φ2w(ωlo,D)=φab+φba=−2ωloDC \Phi_{2w}(\omega_{lo}, D) = \varphi_{ab} + \varphi_{ba} = -\frac{2\omega_{lo}D}{C} Φ2w(ωlo,D)=φab+φba=−C2ωloD

多频解模糊方法

为消除2π2\pi2π模糊,需结合多个频率的测量结果:
ΔΦ=Φ2w(ωlo1,D)−Φ2w(ωlo0,D)D=C2Δωlo(ΔΦmod  C2Δωlo) \begin{aligned} \Delta\Phi &= \Phi_{2w}(\omega_{lo1}, D) - \Phi_{2w}(\omega_{lo0}, D) \\ D &= \frac{C}{2\Delta\omega_{lo}} \left( \Delta\Phi \mod \frac{C}{2\Delta\omega_{lo}} \right) \end{aligned} ΔΦD=Φ2w(ωlo1,D)−Φ2w(ωlo0,D)=2ΔωloC(ΔΦmod2ΔωloC)

调制调制重复序列 [0 1] 公式解释

给定的表达式为:

Srfa(t)=ej(ω0t+ϕa)⋅(e+jωmt+e−jωmt)\\text{Srf}_a(t) = e\^{j(\\omega_0 t + \\phi_a)} \\cdot \\left( e\^{+j\\omega_m t} + e\^{-j\\omega_m t} \\right)Srfa(t)=ej(ω0t+ϕa)⋅(e+jωmt+e−jωmt)

表达式简化

利用欧拉公式 ( ejθ+e−jθ=2cos⁡θe^{j\theta} + e^{-j\theta} = 2\cos\thetaejθ+e−jθ=2cosθ ),可以将表达式简化为:

Srfa(t)=ej(ω0t+ϕa)⋅2cos⁡(ωmt)\\text{Srf}_a(t) = e\^{j(\\omega_0 t + \\phi_a)} \\cdot 2\\cos(\\omega_m t)Srfa(t)=ej(ω0t+ϕa)⋅2cos(ωmt)

进一步整理:

Srfa(t)=2cos⁡(ωmt)⋅ej(ω0t+ϕa)\\text{Srf}_a(t) = 2 \\cos(\\omega_m t) \\cdot e\^{j(\\omega_0 t + \\phi_a)}Srfa(t)=2cos(ωmt)⋅ej(ω0t+ϕa)

物理意义

该表达式描述了一个幅度调制信号:

  • 载波信号为 ( ej(ω0t+ϕa)e^{j(\omega_0 t + \phi_a)}ej(ω0t+ϕa) ),频率为 ( ω0\omega_0ω0 ),初始相位为 ( ϕa\phi_aϕa )。
  • 调制信号为 ( 2cos⁡(ωmt)2 \cos(\omega_m t)2cos(ωmt) ),频率为 ( ωm\omega_mωm )。

复数形式展开

将复数形式展开为实部和虚部:

Srfa(t)=2cos⁡(ωmt)\[cos⁡(ω0t+ϕ0)+jsin⁡(ω0t+ϕ0)\]\\text{Srf}_a(t) = 2 \\cos(\\omega_m t) \\left\[ \\cos(\\omega_0 t + \\phi_0) + j\\sin(\\omega_0 t + \\phi_0) \\right\]Srfa(t)=2cos(ωmt)\[cos(ω0t+ϕ0)+jsin(ω0t+ϕ0)\]

实部:

Re{Srfa(t)}=2cos⁡(ωmt)cos⁡(ω0t+ϕa)\\text{Re}\\{\\text{Srf}_a(t)\\} = 2 \\cos(\\omega_m t) \\cos(\\omega_0 t + \\phi_a)Re{Srfa(t)}=2cos(ωmt)cos(ω0t+ϕa)

虚部:

Im{Srfa(t)}=2cos⁡(ωmt)sin⁡(ω0t+ϕa)\\text{Im}\\{\\text{Srf}_a(t)\\} = 2 \\cos(\\omega_m t) \\sin(\\omega_0 t + \\phi_a)Im{Srfa(t)}=2cos(ωmt)sin(ω0t+ϕa)

该信号是一个双边带调制(DSB)信号,包含两个边频:

  • 上边频:( ω0+ωm\omega_0 + \omega_mω0+ωm )
  • 下边频:( ω0−ωm\omega_0 - \omega_mω0−ωm )
相关推荐
地平线开发者2 小时前
征程 6 算法工具链 | PTQ 深度使用指南
算法·自动驾驶
Xの哲學2 小时前
Linux 软中断深度剖析: 从设计思想到实战调试
linux·网络·算法·架构·边缘计算
暴风游侠2 小时前
如何进行科学的分类
笔记·算法·分类
leaves falling3 小时前
冒泡排序(基础版+通用版)
数据结构·算法·排序算法
C雨后彩虹3 小时前
无向图染色
java·数据结构·算法·华为·面试
坚持就完事了3 小时前
扫描线算法
算法
鱼跃鹰飞3 小时前
Leetcode尊享面试100题:252. 会议室
算法·leetcode·面试
程序员-King.3 小时前
二分查找——算法总结与教学指南
数据结构·算法
Zevalin爱灰灰3 小时前
现代控制理论——第三章 线性控制系统的能控性和能观性
线性代数·算法·现代控制