背景
最近这段时间研究了蓝牙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 )