无线感知理论基础笔记(五)——无线测距:基于传播时间测距

基于信号强度的测距收到环境的影响很大,一般误差会比较大,也很少在真实系统中使用。在实际系统中,较为常用的时基于信号传播时间来进行测距。

信号传播时间或者叫飞行时间(ToF,Time of Flight),指信号在介质内传播时间。已知信号在介质中传播速度的情况下,使用飞行时间可以估算出信号经过的距离。

ToF测距原理

同步测量方法

如果发送端和接收端的精确时间同步,从发送方发送一个数据包到达接收方,如果能够准确记录发送和接收时间的话,是可以准备测量信号飞行时间的。即在发送端和接收端时间同步的前提下,接收端就可以记录发送端在哪一时刻开始传输;随后,在收到信号的第一时间,接收端记录信号到达时刻的时间戳;最后,利用接收时间戳减去发送时刻即可得到信号飞行时间。 使用d表示发送端到接收端的距离,c表示信号的传播速度(例如声速),t表示测量得到的飞行时间,那么可以得到:

d=c×t

因此如何解决时钟同步问题,是飞行时间测距工作的一个重点,也是难点。传统网络工作中提出了多种网络时间同步机制,例如网络时间协议(Network Time Protocol, NTP),它也是互联网的时间同步机制。此外,全球定位系统(GPS)技术也能为不同设备提供全局时间同步,它的原理是在GPS卫星上运行一个高精度的铯原子钟,GPS客户机通过接收卫星发送的伪随机序列,实现与卫星时钟的同步。

现有的时间同步方法在实际使用中仍存在较大的局限性。例如NTP协议主要针对静态网络,并且需要频繁交换消息来不断校准时钟频率偏移带来的误差。此外,NTP协议毫秒级的精度无法满足高精度测距等应用场景的需求。GPS能达到纳秒级精度的同步,但GPS受环境遮挡影响大,只适用于室外空旷无遮挡的环境,无法适用于室内低功耗物联网节点。

利用信号反射实现

由于直接ToF测距,同步发送端和接收端时间存在困难,因此有方法提出令接收端和发送端为同一设备,从而在计算飞行时间时避免收发机的时间同步。

  1. 第一种常见的做法是令测距对象作为反射体,直接反射传输的信号。这种方法要求反射体具有一定的体积,并且收发机能在全双工模式工作,即发送信号的同时能接收来自目标对象反射的信号。

    使用FMCW测量ToF:

    FMCW(Frequency Modulated Continuous Wave,调频连续波)是一种在高精度雷达测距中使用的技术,FMCW是频率随着时间线性增长的信号。FMCW技术有很长的使用历史,使用范围非常广泛。近些年来,FMCW在物联网的定位和感知的场景里面使用很多。很多前沿的研究工作,利用基于电磁波或者声波的FMCW信号,来进行定位和感知的应用。 FMCW最直接的一个应用是利用反射信号与发射信号混频得到的频率偏移来进行ToF的测量。

    如下图实线所示,FMCW雷达将信号调制为一种特制的FMCW信号,其频率周期性地随时间递增(从fminfmax)或递减(从fmaxfmin)。一个频率变换周期为T的递增FMCW信号R(t)可以表示为:

    R(t)=cos(2π(fmin+B2Tt)t)

    其中B=fmaxfmin表示频率变化的带宽。

    image-20220320202252227

    FMCW雷达在扫频周期内发射频率变化的连续波,发射出去的信号被物体反射后的回波与发射信号叠加在一起被接收到。实际收到的信号会呈现上图的特点,反射信号与发射信号存在着时间差。这个时间差在实际系统中不太好直接精确地测量出来(虽然也有一些研究工作试图这么来做)。为了解决这一问题,这个时间差可以转化为对应的频率差,通过测量频率差可以获得目标与雷达之间的距离信息,这也是FMCW好用的主要原因。

    差频信号频率较低,一般为KHz,因此硬件处理相对简单、适合数据采集并进行数字信号处理。FMCW雷达具有容易实现、结构相对简单、尺寸小、重量轻以及成本低等优点,有广泛的应用前景。

    由于反射回来的信号和原始信号的频率差值Δf,和信号的传输时间Δt有线性变化关系,因此可以将对ToF的测量转换为对信号频率变化的测量。假设接收端和发送端之间的距离为d,因为传输时间Δt是往返的总时间,那么可以得到:

    d=cΔt2

    同时,根据图中的三角函数关系,可以得到:

    Δt=TBΔf

    综上计算出距离的为:

    d=cT2BΔf

    至于Δf的计算,需要计算出信号的起始频率,实际上我们给定一个包含了多个FMCW信号的解码窗口,如果我们能够算出每个信号的起始频率,也就能算出两个信号的频率差了。

    此外,补充一些关于FMCW测距的知识点:

    1. 发射信号和反射信号同时收到的时候,两个信号经过混频器,产生IF信号。混频器的性质为:

      输入x1=sin[ω1t+ϕ1]

      输入x2=sin[ω2t+ϕ2]

      输出xout=sin[(ω1ω2)t+ϕ1ϕ2]

      因此IF信号为与距离成正比的一个单频正弦信号。

    2. image-20220320212313435

      对于多物体,不同的距离可以导致不同的频率差,即通过混频器产生不同的单频信号。但是观测窗口长度有限,当观测窗口较小时,在频域上不足以区分两个波峰,即不足以区分两个距离相近的物体。

      image-20220320213309444

      image-20220320213325367

      通过增加观测窗口的时间可以使两种频率的信号的差距变大,以至于能够在频域区分不同的波形。

      image-20220320213552309

      image-20220320213607692

      当观测窗口变大时,带宽B同比例放大,预示着更大的带宽可能具有更好的距离分辨率。

      由于观测窗口T一般可以分隔频率之差高于1THz的信号频率分量。

      Δf=2ΔdBcTc=S2Δdc>1TcS=BTc

      其中的Tc为IF信号的持续时间,也即观测窗口的时间。

      只需要满足

      Δd>c2B

      即最小分辨距离为c2B,意味着提高带宽B可以提高分辨精度。

    3. 对于B相同的两组线性调频脉冲,显然它们的最小分辨距离是相同的,但是它们可能有不同的Tc(这里的Tc表示扫频周期),我们接下来讨论由此带来的差异。

      image-20220320214831991

      当我们获得不同频率的IF信号时,我们首先让其通过一个低通滤波器,然后由ADC进行数字化,接着被发送到合适的处理器,如DSP。

      image-20220320215213538

      当我们对信号进行数字化时,我们需要知道目标带宽,以便适当地设置低通滤波器和ADC采样率。

      低通滤波器的截止频率应大于等于IF的最大频率。ADC采样率也应大于该值。不过确切地说,为了信号重建,根据奈奎斯特采样定理,这里的Fs应该大于二倍的IF最大频率。

      Fs 2fIFmax=S4dmaxc=B4dmaxTc

      dmax=Fsc4S=TcFsc4B

      也就是说,为了达到相同的最大可测量距离,当B相同时,越大的扫频周期可以使用更小的ADC采样频率,对ADC的采样频率限制将更宽松。

  2. 第二种方法是利用两个设备分别作为发送端和接收端:发送端于时刻t0发送信号,接收端收到信号后,等待时间Δt后返回同样的波,发送端记录收到回复的时刻t1,从而得到距离:d=(v(t1t0Δt))/2。这种方法既不要求接收端和发送端时钟同步,也不需要设备具有全双工功能。

    1. 单边双向测距(Single-Sided Two-Way Ranging)

      image-20220320224730287

      如上图所示,通信由设备A发起。在t1时刻,A发送Poll包给B,B在t2时刻收到Poll包,然后在t3时刻发送Resp包给A,最后A在t4时刻收到Resp数据包。

      Tf=(t4t1)(t3t2)2

      误差分析:我们假设误差来自于硬件的时钟漂移,因此我们对设备A,B的时钟进行如下建模:

      t^a=(1+ea)ta(a=1,4)t^b=(1+eb)tb(b=2,3)

      其中ea,eb分别为设备A,B的时钟误差。我们将ta,tb代入Tf,得到考虑时钟偏移后的结果:

      \hat{T}_{f} &=\frac{\left(\hat{t}_{4}-\hat{t}_{1}\right)-\left(\hat{t}_{3}-\hat{t}_{2}\right)}{2} \\

      因此误差为:

      err=T^fTf=eaTf+t3t22(eaeb)

      不妨假设Tf=100ns, 则t3t21ms,设备的时钟漂移为20ppm,那么我们可以计算得到误差约为20ns,对应6m的测距误差。从上面分析,我们可以知道单边双向测距方法的主要误差来自于两个设备时钟的漂移。所以我们如果在此基础上采用一些常见的同步方法,可以有效的消除误差。而接下来要介绍的双边双向测距的方法,就是一种基于单边双向测距的可行的同步策略。

    2. 双边双向测距(Double-Sided Two-way Ranging)

      简而言之就是比上述的单边双向测距多传一次数据。

      image-20220320225925108

      Tf=((t4t1)(t3t2))+((t6t3)(t5t4))4

      t^a=(1+ea)ta(a=1,4,5)t^b=(1+eb)tb(b=2,3,6)

      T^f=((t^4t^1)(t^3t^2))+((t^6t^3)(t^5t^4))4

    \begin{aligned}
    e r r &=\hat{T}{f}-T \
    &=\frac{1}{2} T_{f}\left(e_{a}+e_{b}\right)+\frac{1}{4}\left(e_{a}-e_{b}\right)\left(\left(t_{3}-t_{2}\right)-\left(t_{5}-t_{4}\right)\right)
    \end{aligned}

    B$Tf$=100ns,使DecawaveDW1000$((t3t2)(t5t4))(0ns,8ns)$8ns20ppm2ps0.6mm

上述的过程中两个设备之间实际上通过了数据交换实现了同步的效果。但实际实现时,由于设备软硬件调度、延迟等不确定因素,接收端很难控制等待时间恰好为Δt,很难做到精准的时间控制,因此实际测得的距离也存在较大误差。

利用波速差实现

如果可以利用两种不同的信号的话,两种信号之间的波速差也可以被用来作为测距。

例如我们可以令发送端同时发送一道电磁波和声波,然后在接收端记录电磁波的到达时刻tr和声波的到达时刻ts。则根据这两个不同的到达时刻,可以计算出发送端与接收端之间的距离:

d=vr×vs×(tstr)vrvs

由于vr=3×108m/s远大于vs=340m/s,因此距离计算式可简化为:

d=vs×(tstr)

posted @   六十里  阅读(1290)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示