UWB相关技术之测距定位方法

UWB测距定位方法

UWB的测距定位方法主要有三种:ToF、TDoA、AoA。
 ToF
ToF(Time of Flight),即飞行时间测量,通过直接计算两点之间的发射波与接收波之间的时间间隔实现距离的测量。
在这里插入图片描述
图 1 ToF原理图
ToF有两种应用方式:发射与接收时间同步、发射与接收时间不同步。

  1. 发射与接收时间同步
    即Time Synchronized Transmitter and Receiver,这种方式下,要求UWB标签Tag与基站之间进行时钟同步,工作过程为:Tag向周围的基站广播信息,由于所有基站与Tag之间时钟同步,故基站根据信息中的发送时间戳与自己的接收时间戳对比,即可确定数据飞行之间,从而判断基站与Tag之间的距离。
    该方式的问题在于:难以实现系统中包括Tag和基站在内的所有设备进行时钟同步。所以,该种方式极少被采用。
  2. 发射与接收时间不同步
    即Unsynchronized Transmitter and Receiver,这种方式下,Tag与基站之间无需进行时钟同步。
    基本原理如下图所示,设备A向设备B发出脉冲,一段时间troundA后接收到设备B返回的脉冲,设飞行时间为tp,则粗略计算得:
    2tp=troundA
    在这里插入图片描述
    图 2 TWR测距原理
    但实际上,troundA还存在设备B的处理延时treplyB,而延时treplyB远远大于传输延时tp,故导致测量存在很大误差。而由于A、B两个设备的时钟不同步,直接使用B设备的treplyB会引入A、B两设备的时钟偏移,故不能直接使用treplyB。
    可以使用SDS-TWR(Symmetric double-sided two-way ranging)的方法时间时钟偏移的消除。基本原理如下:
    a) 设备A在时间点t1向设备B发出脉冲;
    b) 设备B接收到脉冲后,经延时treplyB,在时间点t2从设备B发出回复脉冲;
    c) 设备A在时间点t3接收到设备B发出的回复脉冲,t3-t1=troundA;
    d) 设备A经延时treplyA再次向设备B发出脉冲;
    e) 设备B在时间点t4接收到A发出的最终脉冲,t4-t2= troundB;
    在这里插入图片描述
    图 3 SDS-TER测量原理图
    由此可以计算出:
    a) 2tp=troundA-treplyB
    b) 2tp=troundB-treplyA
    即4tp=troundA- treplyB+ troundB-treplyA= (troundA-treplyA) +( troundB – treplyB)
    由此可以消除A、B两个设备之间的时钟不同步以及时钟偏移。
     TDoA
    TDoA即Time Difference of Arrival,即通过到达时间的不同进行位置测量,原理图下图。
    TDoA要求所有基站进行时钟同步,通过Tag想所有基站广播脉冲,每个基站在不同时刻接收到Tag发送的信息,通过基站接收信息的时间差,可以通过几何方法确定Tag的位置。该方法有以下几个特点:
    a) 至少需要2个基站,基站的坐标需要明确;
    b) 所有基站之间需进行同步,Tag无需与基站之间进行同步;
    c) Tag只发送数据,不进行接收,比较节省功耗;
    d) 基站之间需要严格同步,搭建成本高;
    在这里插入图片描述
    图 4 TDoA测量原理
     AoA
    即Angle of Arrival,通过基站检测Tag的角度实现定位,如下图。
    在这里插入图片描述
    图 5 AoA测量原理
    AoA的测量方式为:每个基站均存在天线阵列,通过基站中某个方向的天线接收到数据时可以确定Tag的方向,通过至少两个基站确定的Tag角度即可确定Tag位置。
    该方法的特点为:
    a) 至少2个基站,每个基站均具有天线阵列;
    b) 检测的精度与天线阵列的个数和排列方式有关;
    c) 该方案的成本与天线阵列中天线的个数强相关;
    d) 不适用于多级转发的场景;

参考:
 DecaWave——APS003 Application Note: Introduction to Real Time Location Systems.

  • 5
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UWB测距在MATLAB中的实现: UWB测距是通过UWB信号在空气中的传播时间来计算距离的。MATLAB提供了一些工具,可以方便地实现UWB测距。 一般来说,UWB测距有两种方法:TOF(Time of Flight)和TDOA(Time Difference of Arrival)。下面分别介绍它们的MATLAB实现方法。 1. TOF测距 TOF测距是通过计算信号发射时间和接收时间之差来得出距离的。 MATLAB中可以使用PulseGenerator和Channel组件来实现TOF测距。PulseGenerator用于产生UWB脉冲信号,Channel用于模拟UWB信号在空气中的传播。可以使用以下代码实现: ```matlab % 产生UWB脉冲信号 pulse = phased.RectangularWaveform('PulseWidth',2e-9,'PRF',200e6); pulses = pulse(); % 创建Channel channel = phased.FreeSpace('PropagationSpeed',3e8,'OperatingFrequency',4e9,'TwoWayPropagation',true); % UWB信号传播 [txsignal,txpos] = channel(pulses,srcpos,rcvpos,txvel,rxvel); ``` 这里的srcpos和rcvpos是发送和接收位置,txvel和rxvel是发送和接收速度。 2. TDOA测距 TDOA测距是通过计算信号到达多个接收器的时间差来得出距离的。MATLAB中可以使用TDOAToAngl和AnglToTDOA组件来实现TDOA测距。 TDOAToAngl将TDOA信息转换为角度信息,AnglToTDOA将角度信息转换回TDOA信息。 以下是TDOA测距的MATLAB实现代码: ```matlab % 创建TDOAToAngl和AnglToTDOA组件 TDOAToAnglComp = phased.TDOAToAngl('SensorArray',array,'OperatingFrequency',Frequency); AnglToTDOAComp = phased.AnglToTDOA('SensorArray',array,'OperatingFrequency',Frequency); % 计算相对距离 relDist = range(rcvpos(:,2:4)-srcpos(:,2:4)); % 计算相对时差 relTimeDelay = relDist/SpeedOfLight; % 将相对时差转换为角度信息 azimuth = TDOAToAnglComp([0,relTimeDelay(:)]','two'); % 将角度信息转换为相对时差信息 relTimeDelay1 = AnglToTDOAComp(azimuth); % 得到距离信息 distMeasured = relTimeDelay1(2:end)-relTimeDelay1(1); ``` 这里的array是接收器阵列。distMeasured是UWB的测量距离,可以用来计算位置。 以上是UWB测距在MATLAB中的实现方法。总体来说,MATLAB提供了丰富的函数和工具来实现UWB测距,使用起来相对简单方便。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值