主要内容

住宅场景下LE广播音频的包传递率估计

本示例向您展示如何使用Bluetooth®工具箱在住宅场景中估计Bluetooth®低能(LE)音频等时广播流的包传递比(PDR)。

使用这个例子,你可以:

  • 创建并配置一个住宅场景来模拟蓝牙LE音频广播网络。

  • 在广播和接收端配置BIG (broadcast isochronous group)参数。

  • 为无线信道添加自定义路径损耗模型。

  • 添加WLAN干扰,并探索有和没有WLAN干扰时LE音频广播网络的性能。

  • 通过热图可视化住宅场景中不同接收器位置的PDR。

LE音频中的同步广播

蓝牙核心规格5.2 [2],由特殊兴趣组(SIG)定义,通过添加将一个或多个音频流广播到LE音频中无限数量的音频接收节点的功能,增强了LE音频技术。为实现此功能,蓝牙核心规范5.2 [2向链路层(LL)状态机定义一个新状态,同步广播。在同步广播状态下,LL在同步物理通道上传输同步数据包。如果蓝牙LE节点处于等时广播状态,则称为等时广播器。

为实现无连接广播同步通信,蓝牙核心规范5.2 [2定义了广播同步流(BIS)和广播同步组(BIG)事件。BIS是一种逻辑传输,使蓝牙LE节点能够传输同步数据(有框或无框)。一个BIG包含一个或多个具有相同等时间隔的bise。

有关BIS和BIG活动的更多信息,请参见蓝牙LE音频

住宅场景描述

本例演示了一个系统级仿真,以评估住宅场景中蓝牙LE广播音频网络的性能。住宅场景包括一栋两层楼的建筑。该图显示了本例中模拟的住宅场景。

residential_small_png.png

以下是住宅场景的特点:

  • 每层楼由四个房间组成,每个房间的尺寸都是8米 × 8米 × 3 m。

  • 该建筑有一个广播器,五个接收器和一个无线局域网干扰器,随机放置在距离地面1.5米高的x和y位置。

  • 每个接收器都与广播器同步。

配置仿真参数

将随机数生成器的种子设置为1,以确保结果的可重复性。种子值控制随机数生成的模式。对于高保真模拟结果,更改种子值并在多个模拟中平均结果。

rng (1,“旋风”);

创建一个无线网络模拟器对象。

networkSimulator = wirelessNetworkSimulator.init;

住宅的场景

场景结构通过使用这些参数来定义住宅建筑的大小和布局。

  • BuildingLayout-指定沿建筑物的长度、宽度和高度排列的房间数。

  • RoomSize-以米为单位指定每个房间的大小。

场景= struct;场景。BuildingLayout = [2 2 2];场景。RoomSize= [8 8 3];%(米)

初始化广播节点

设置广播器在网络中的位置。

broadasterposition = [2 2 1.5];% x-, y-和z-以米为单位的坐标

创建角色为的蓝牙LE节点isochronous-broadcaster.指定发送器属性。

broadasternode = bluetoothLENode(“isochronous-broadcaster”);broadcasterNode。Name =“广播”;broadcasterNode。位置= broadasterposition (1,:);broadcasterNode。TransmitterPower = 10% (dBm)
broadasternode = bluetoothLENode with properties: TransmitterPower: 10 TransmitterGain: 0 ReceiverRange: 100 ReceiverGain: 0 ReceiverSensitivity: -100 NoiseFigure: 0 interferencefidity: 0 Name: " broadcast " Position: [2 2 1.5000] Read-only properties: Role: " isosync -broadcast " BIGConfig: [1x1 bluetoothLEBIGConfig] TransmitBuffer: [1x1 struct] ID: 1

初始化接收节点

指定接收器的数量和它们在网络中的各自位置。

numReceivers = 5;receiverPositions = [9 7 4.5;...4 4 4.5;...12 12 4.5;...3 3 1.5;...14 12 1.5];% x-, y-和z-以米为单位的坐标

创建角色为的蓝牙LE节点synchronized-receiver

receiverNodes = bluetoothLENode.empty(0,numReceivers);rxIdx = 1:numReceivers rxNode = bluetoothLENode(“synchronized-receiver”);rxNode。Name =[“接收方”num2str (rxIdx)];rxNode。Position = receiverPositions(rxIdx,:);receiverNodes(rxIdx) = rxNode;结束

配置BIG参数

使用默认的BIG参数创建蓝牙LE BIG配置对象。

cfgBIG = bluetoothLEBIGConfig
cfgBIG = bluetoothLEBIGConfig with properties: SeedAccessAddress: "78E52493" PHYMode: "LE1M" NumBIS: 1 ISOInterval: 0.0050 BISSpacing: 0.0022 SubInterval: 0.0022 MaxPDU: 251 BurstNumber: 1 PretransmissionOffset: 0 RepetitionCount: 1 NumSubevents: 1 BISArrangement: "sequential" BIGOffset: 0 ReceiveBISNumbers: 1 UsedChannels:[0 12 3 4 5 6 78 9 10 11 12 13 14 15 16 17…BaseCRCInitialization: "1234"

将配置分配给广播节点和接收节点。

rxIdx = 1:numReceivers configureBIG(cfgBIG, broadasternode,receiverNodes(rxIdx));结束

将应用程序流量添加到广播程序

将应用程序流量源附加到广播节点。属性配置开关应用程序流量模式networkTrafficOnOff对象,通过指定应用程序数据速率、包大小以及打开和关闭状态持续时间,在广播器节点上初始化。

trafficSource = networkTrafficOnOff(OnTime=inf,DataRate=500,PacketSize=cfgBIG. com)MaxPDU,...GeneratePacket=true,ApplicationData=randi([0 255], 100, 1));addTrafficSource (broadcasterNode trafficSource);

WLAN信号干扰

如果需要增加WLAN信号干扰,请使能wlanInterference参数。

wlanInterference =真正的

WLAN干扰节点根据配置定时发送WLAN信号,增加蓝牙网络的干扰。它们不模拟WLAN的物理层(PHY)和MAC行为。

设置WLAN干扰节点的属性。指定无线局域网的干扰源WaveformSource参数。helperInterferingWLANNodehelper函数。使用这些选项之一指定WLAN干扰源。

  • “生成”—若要添加WLAN Toolbox™信号干扰蓝牙节点之间的通信,请选择此选项。有关如何添加使用WLAN工具箱功能生成的WLAN信号干扰的详细信息,请参见使用WLAN工具箱功能添加WLAN信号

  • “BasebandFile”—从基带文件中添加WLAN信号(.bb)干扰蓝牙节点之间的通信,请选择此选项。方法指定文件名BasebandFile参数。如果没有指定.bb文件,本例使用默认值.bb文件,“WLANHESUBandwidth20.bb”,添加WLAN信号。

如果wlanInterference wlanNode = helperInterferingWLANNode;wlanNode。Name =“WLAN节点”;wlanNode。位置= [14 14 4.5];% x- y- z-以米为单位的坐标wlanNode。TransmitterPower = 5;% (dBm)结束

创建和模拟广播同步网络

创建由LE音频广播节点和WLAN干扰节点(如果存在)组成的广播同步网络。

addnode (networkSimulator [broadcasterNode receiverNodes]);nodes = num2cell([broadcast node receiverNodes]);如果wlanInterference addnode (networkSimulator wlanNode);nodes = [nodes {wlanNode}];结束

可视化网络

根据场景参数创建建筑三角测量。

buildingTriangulation = hTGaxResidentialTriangulation(场景);

在3d中可视化住宅场景。属性的单独单元格指定要一起标记的节点节点组参数。

nodeGroups = {broadcast node;receiverNodes};图例= [“Bluetooth LE广播”“Bluetooth LE接收器”];如果wlanInterference nodeGroups = [nodeGroups;{wlanNode}];传说=[传说,“干扰WLAN节点”];结束helperVisualizeResidentialScenario (buildingTriangulation节点组,传说,...住宅场景中的蓝牙LE广播音频网络);

图中包含一个轴对象。住宅场景中带有标题蓝牙LE广播音频网络的坐标轴对象包含patch、line、scatter类型的5个对象。这些对象代表蓝牙LE广播器、蓝牙LE接收器、干扰无线局域网节点。

无线信道

设置customPathlossModel为true可添加您自己的自定义路径丢失模型。属性指定自定义模型的函数句柄pathloss参数。如果你设置customPathlossModel对于false,该示例使用自由空间路径损失模型。

customPathlossModel =真正的

本例使用TGax驻留传播模型[4来确定节点之间的路径丢失。路径损失取决于墙的数量、楼层的数量和节点之间的距离。方法创建路径损失模型hTGaxResidentialPathLosshelper函数。使用函数句柄获取网络中每对节点之间的路径损失。在模拟器中添加一个住宅路径损失模型。

如果customPathlossModel propModel = hTGaxResidentialPathLoss(三角测量=建筑三角测量,...FacesPerWall = 1);%传播模型pathloss = helpgeneratepathlosstable (propModel,nodes);%路径损失函数addChannelModel (networkSimulator pathloss);结束

运行模拟

设置模拟时间,单位为秒。

simulationTime = 1;

在指定的模拟时间内运行网络中的所有节点。

运行(networkSimulator simulationTime);

仿真结果

在每个接收节点上,模拟测量这些指标:

  • PDR

  • 平均LL包时延

  • 我的吞吐量

  • 数据包统计在PHY和LL

  • 监听状态和睡眠状态所花费的时间

命令查看统计信息表helperBLEBIGStatisticshelper函数。

receiverStatistics = helperBLEBIGStatistics(nodes)
receiverStatistics =表5×17位置PDR LL平均包时延(秒)成功数据包接收信号总信号有碰撞信号有同信道干扰成功控制报文空报文重复报文PHY解码失败无效访问地址无效有效载荷长度CRC失败监听时间(秒)休眠时间(秒)待机时间(秒)_______________________ ___________________________________ _______________________ ________________ ________________________________________________________________ __________________________ _____________ _________________ _____________________ ______________________ ______________________ ____________ _____________________ ____________________ ______________________ 接收器1 9 7 4.5 0.76617 0.002089 154 201 61 61 0 0 0 0 25 0 21 0.4178 0 0.5822接收器2 4 200 201 61 61 4.5 0.99502 0.002089 0.4178 0 0 0 0 0 0 0 0 0.5822接收机3 12 12 4.5 0.66667 0.002089 134 201 61 61 61 0 0 0 5 0 0 0 0.4178 0.5822接收机4 33 1.5 0.99502 0.002089 200 201 61 61 0 0 0 0 0 0 0 0.4178 0 0.5822 Receiver 5 14 12 1.5 0.85572 0.002089 172 201 61 61 0 0 0 0 7 0 21 0.4178 0 0.5822

进一步的探索

使用WLAN工具箱功能添加WLAN信号

要使用“WLAN工具箱”功能添加WLAN信号,请执行以下步骤:

的值WaveformSource参数。helperInterferingWLANNode'的帮助对象生成的”。

% wlanNode = helperInterferingWLANNode;% wlanNode。WaveformSource = 'Generated';

创建WLAN报文格式配置对象,并分配给节点。

% cfgHT = wlanHTConfig("ChannelBandwidth","CBW40");% wlanNode。FormatConfig = cfgHT;

设置信号的带宽。

% wlanNode。带宽= 40e6;

PDR热图

住宅建筑的楼层被划分成一个网格。网格的每个单元格的中心都有一个接收器。为了观察接收机在建筑物内移动时PDR的变化,您可以使用固定广播器对接收机的不同位置运行模拟。将接收器的位置存储在一个矩阵中,receiverPositions,和列向量中对应的PDR值,pdr.通过使用这段代码片段,观察PDR与广播器之间距离的变化。

% helperVisualizeResidentialScenario (buildingTriangulation, {broadcasterNode; wlanNode},…% ["Bluetooth LE broadcast "," interference WLAN node"],…%“住宅场景中不同接收器位置的PDR热图”);% pdr = receiverStatistics.PDR;% plotHeatmap(场景、receiverPositions pdr);用于绘制PDR值的热图%函数plotHeatmap(场景,receiverPositions, pdr)% numFloors = scenario.BuildingLayout(3);% floorDim = [scenario.RoomSize(1:2).*scenario.BuildingLayout(1:2) scenario.RoomSize(3)];% floorHeights = scenario.RoomSize(3):scenario.RoomSize(3):scenario.RoomSize(3)*numFloors;% %创建x-。以及surf函数的y轴输入% (X, Y) = meshgrid(0:1:马克斯(floorDim (1) floorDim (2)));% for f = 1:numFloors% pdrValues = 0 (size(X));% floorIdx = receiverPositions(:,3)>(floorHeights(f)-floorDim(3)) & receiverPositions(:,3)<=floorHeights(f);% receiversfloor = receiverPositions(floorIdx,:);% receiversPDR = pdr(floorIdx);% for idx = 1: nummel (receiversfloor)/3% index = (X == (receiversfloor (idx,1)) & Y == (receiversfloor (idx,2)));% pdrValues(index) = receiversPDR(idx);%结束% Z = (floorHeights (f) -floorDim(3) / 2) *的(大小(X));%冲浪(X, Y, Z, pdrValues);%结束% c = colorbar;% c.Label.String = 'PDR';% colormap(“喷气机”);% clim([0 1]);%结束

该热图绘制了在0.5米尺寸的单元中每个接收器捕获的pdr集 × 0.5米。模拟通过使用这些配置参数生成热图。

大的配制

  • 等时间隔:0.015秒

  • 子事件数:4

  • 爆发数:4

  • 最大PDU (protocol data unit): 20字节

蓝牙LE广播器配置

  • 发射机功率:5dbm

  • 开关流量:1000kbps的数据速率和20字节的数据包大小

干扰WLAN节点配置

  • 发射机功率:20dbm

  • 带宽:80mhz

heatmap22b.png

通过修改配置参数,可以分析在存在干扰的情况下PDR的改善情况。要观察PDR的增加,您可以:

  • 增加广播节点的传输功率TransmitterPower的属性bluetoothLENode对象。

  • 方法增加重传的次数RepetitionCount的属性bluetoothLEBIGConfig对象。

  • 属性设置非零的预传输偏移量,从而在包的副本中创建时间分集PretransmissionOffset的属性bluetoothLEBIGConfig对象。

  • 方法设置好的频道,避免跳转到坏的频道updateChannelList广播器节点的对象函数。

附录

下面的例子使用了这些helper:

选定的参考书目

[1]蓝牙技术网站。“蓝牙技术网站|蓝牙技术官网。”2021年11月10日访问。https://www.bluetooth.com/

蓝牙特别兴趣小组(SIG)。”蓝牙核心规格5.2版。https://www.bluetooth.com/。

蓝牙特别兴趣小组(SIG)。”蓝牙核心规格5.3版。https://www.bluetooth.com/

[4]”TGax通道模型”,医生。IEEE 802.11 14/0882r4。

另请参阅

功能

对象

相关的话题

Baidu
map