主要内容

使用IEEE 802.15.4z的超宽带测距

这个例子展示了如何根据IEEE®802.15.4z™标准估计两个设备之间的距离[ 2 ]通过使用ZigBee®和UWB附加组件的通信工具箱™库中的功能。

概述

IEEE 802.15.4z修正案[ 2 ]符合IEEE®802.15.4标准b[1]指定MAC和物理层,以及使用超宽带(UWB)通信的相关测距和定位。超宽带非常短的脉冲持续时间允许在时域上有更细的粒度,因此在空间域上有更准确的估计。

802.15.4z修订版的关键测距和定位功能包括三种mac级技术:

  • 单面双向测距(SS-TWR) -一个设备通过在无线802.15.4z链路的两个方向上使用帧传输来估计两个设备之间的距离。

  • 双面双向测距(DS-TWR)——两个设备通过在无线802.15.4z链路的两个方向上使用帧传输来估计两个设备之间的距离。

  • 单向测距/到达时间差(OWR/TDOA) -网络辅助定位,其中一个设备与一组同步节点通信,以估计设备的位置。中演示了该技术使用IEEE 802.15.4z的超宽带定位的例子。

本例通过使用与IEEE 802.15.4标准兼容的PHY帧来演示SS-TWR技术b[1]以及IEEE 802.15.4z修正案[ 2 ]。有关生成phy级IEEE 802.15.4z波形的详细信息,请参阅HRP UWB IEEE 802.15.4a/z波形生成的例子。

单面双向测距(SS-TWR)

双向测距包括在无线802.15.4z链路的两个方向上传输帧。单面测距意味着只有两个设备中的一个估计它们之间的距离。

ssTWR_custom.png

每一帧在其测距标记(RMARKER)处计时,这是帧开始分隔符(SFD)之后的第一个符号的时间。有关传输帧中字段的更多信息,请参见HRP UWB IEEE 802.15.4a/z波形生成的例子。测距应答器设备,在一定的应答时间(Treply)后发送应答帧。测距启动设备将往返时间(round)计算为发送帧的rmarker与响应帧之间的时间距离。Treply由测距应答器与测距启动器通信,使后者估计传播时间(Tprop)为Tprop = (Tround - Treply)/2。

IEEE 802.15.4z修正案[ 2 ]指定共享Treply的多种可能性:

  • 从响应器到启动器的Treply通信被延迟,并与响应帧后面的另一条消息一起执行。

  • 在响应框架中嵌入Treply。

  • 将Treply设置为发起者和响应者之间已知的固定值。

本例考虑两个设备之间固定应答时间的场景。

IEEE 802.15.4b[1]指定交换的帧必须是数据帧及其确认。IEEE 802.15.4z修正案[ 2 ]放宽此规范,允许在任何对传输帧和响应帧上执行测距测量。然而,对于固定的应答时间场景,802.15.4z修正案指定交换加密时间戳序列数据包配置选项3 (SP3)帧。SP3帧包含一个打乱的时间戳序列(STS),没有PHY报头(PHR)或有效负载。

本示例侧重于基本测距交换,而不演示与测距过程相关的前面的设置和后面的完成活动。

设置

确认ZigBee®和UWB附加组件的通信工具箱™库的安装。

comm金宝appSupportPackageCheck (“无线个域网”);

确定实际距离和Tprop,并初始化可视化。配置一个timescope对象来绘制启动器和响应器信号。

C = physconst(“光速”);%光速(m/s)actualDistance = 5;%单位:米actualprop = actualDistance/c;%单位:秒信噪比= 30;%信噪比Symbolrate = 499.2e6;% HRP PHY的符号速率SPS = 10;每个符号的样本百分比Ts =时间范围(SampleRate = sps * symbolrate,ChannelNames = {“启动程序”“应答”},LayoutDimensions = (2 - 1),Name =“SS-TWR”);ts.YLimits = [-0.25 0.25];ts.ActiveDisplay = 2;ts.YLimits = [-0.25 0.25];

传输帧

启动器传输

生成要在设备之间传输的包含SP3 PHY帧(不含MAC帧/PSDU)的波形。在发起者的时间轴上注册传输帧。

sp3Config = lrwpanHRPConfig(模式=“HPRF”STSPacketConfiguration = 3,PSDULength = 0,不等= true);sp3Wave = lrwpanWaveformGenerator([],sp3Config);[transmitFrame,responseFrame] = deal(sp3Wave);%开始传输时的启动器时间initiatorView = transmitFrame;

无线信道

通过AWGN信道过滤传输帧并添加传播延迟。然后,更新两个链路端点的时间轴。

samplesToDelay = actualprop *sp3Config.SampleRate;receivedtransmit = lclDelayWithNoise()transmitFrame samplesToDelay,信噪比);initiatorView = [initiatorView;0 ((samplesToDelay),即:1)];responderView = receivedtransmit;

应答器接收

在响应端,检测802.15.4z PHY帧的序言,然后对传输的帧进行处理。序文检测包括确定在Nsync = PreambleDuration之外的序文的第一个实例。绘制a上的启动器视图和响应器视图timescope

索引= lrwpanhrpfieldindiices (sp3Config);每个字段的%长度(开始/结束)sp3Preamble = sp3Wave(1:ind.SYNC(end)/sp3Config.PreambleDuration);preamPos = helperfindfirstthrppreamble ()receivedTransmitted、sp3Preamble sp3Config);ts (initiatorView responderView);

响应帧

响应者传输

将应答时间设置为三个SP3帧的长度,以指定何时发送响应帧。在响应端将第一个和最后一个RMARKER样本索引设置为第一个post-SFD符号的开始,然后再设置Treply样本。Treply采样后,从响应设备发送响应帧。

Treply = 3*length(sp3Wave);样品百分比在响应端找到rmarkerframeStart = 1+preamPos-ind.SYNC(end)/sp3Config.PreambleDuration;sfdEnd = frameStart + ind.SYNC(end) + diff(ind.SFD);RMARKER_R1 = sfdEnd+1;RMARKER_R2 = RMARKER_R1 + Treply;%重复后传播。找出应答者需要多长时间%保持空闲状态。idleResponderTime = Treply - diff(id . sts)-1 - diff(id . shr)-1;responderView =[responderView;0 (idleResponderTime, 1);responseFrame;0 ((samplesToDelay),即:1)];initiatorView = [initiatorView;0 (idleResponderTime 1)];

无线信道

通过AWGN信道过滤传输帧并添加传播延迟。然后,更新两个链路端点的时间轴。

receivedResponse = lclDelayWithNoise()responseFrame samplesToDelay,信噪比);initiatorView = [initiatorView;receivedResponse];

启动处接待

回到启动端,检测802.15.4z PHY帧的序言,然后处理传输的帧。

txFrameEnd = inds . sts (end);preamPos = helperfindfirstthrppreamble ()initiatorView (txFrameEnd + 1:结束),sp3Preamble, sp3Config);

区间估计

估计传播延迟和两个设备之间的距离。将启动端的第一个和最后一个RMARKER样本索引设置为传输的开始(在t=0时已知)和第一个post-SFD符号的开始。使用rmarker、Tround和Tprop来估计发起者和应答者之间的距离。

rmarker_1 = 1+ind.SFD(end);frameStart = 1+preamPos-ind.SYNC(end)/sp3Config.PreambleDuration;sfdEnd = txFrameEnd + frameStart + ind.SYNC(end) + diff(ind.SFD);rmarker_2 = sfdEnd+1;round = RMARKER_I2 - RMARKER_I1;样品中%Tprop = (Tround-Treply)/(2*sp3Config.SampleRate);%单位:秒estimatedDistance = c*Tprop;%单位:米

timescope如图6-47所示的帧交换[ 2 ]与x轴限制放大,以查看传输帧和响应帧之间的传播延迟。

重置(ts);ts ([initiatorView;0 ((samplesToDelay),即:1)),responderView);释放(ts);

估计的距离与实际距离相差几厘米。

流([实际距离= %d m。'\nEstimated Distance = %0.2f m''\ nererror = %0.3f m (%0.2f%%)\n'],actualDistance estimatedDistance,estimatedDistance-actualDistance,100 * (estimatedDistance-actualDistance) / actualDistance)
实际距离= 5米。误差= 0.015 m (0.29%)

对于依赖于估计飞行时间(TOF)的测距方法,当传播时间(Tprop)不是样本时间的整数倍时,距离估计误差主要产生。这种测距方法的最大距离误差发生在Tprop持续的半个样本时间大于样本时间的整数倍时。当Tprop为采样时间的整数倍时,距离误差最小。对于本例中使用的高速率脉冲重复频率(HRP) PHY的高脉冲重复频率(HRPF)模式,符号速率为499.2 MHz,每个符号的采样数为10,导致Tprop估计的最大误差为 0 5 × c / 499 2 × 10 。因此,默认测距误差在0到3厘米之间。

一般来说,与窄带通信相比,UWB中信道带宽越大,对应的符号持续时间越短,测距误差越小。对于IEEE 802.11az规定的窄带通信,信道带宽范围为20mhz ~ 160mhz。考虑到窄带通信的最大Tprop误差,160 MHz的测距误差估计在0到10 cm之间,20 MHz的测距误差估计在0到75 cm之间。有关IEEE 802.11az范围的更多信息,请参阅使用超分辨率到达时间估计的802.11az定位(WLAN工具箱)的例子。

进一步的探索

本示例使用ZigBee®和UWB附加组件的通信工具箱™库中的这些对象和函数。

  • lrwpanHRPConfigHRP波形配置

  • lrwpanWaveformGenerator创建IEEE 802.15.4a/z HRP超宽带波形

这些实用程序没有文档记录,它们的API或功能将来可能会更改。要查看这些实用程序的源代码,请使用编辑函数。例如,输入:

编辑lrwpanHRPConfig

在MATLAB®命令行打开lrwpanHRPConfig

函数接收= lclDelayWithNoise(发送,samplesToDelay,信噪比)无线信道的操作(传播延迟,AWGN)vfd = dsp.VariableFractionalDelay;% 0 pad @ end,将整个帧从VFD中取出delayedtransmit = vfd([传播;0 ((samplesToDelay),即:1)),samplesToDelay);%添加高斯白噪声:接收= awgn(延迟发送,信噪比);结束

选定的参考书目

1-“IEEE低速率无线网络标准”,IEEE标准802.15.4-2020 (IEEE标准802.15.4-2015修订版),pp.1-800, 2020年7月23日,doi: 10.1109/IEEESTD.2020.9144691。

2 -“IEEE低速率无线网络标准-修订1:增强型超宽带(UWB)物理层(物理层)和相关测距技术”,IEEE标准802.15.4z-2020(修订IEEE标准802.15.4-2020),pp.1-174, 2020年8月25日,doi: 10.1109/IEEESTD.2020.9179124。

相关的话题