光线跟踪
描述
例子
使用光线追踪的障碍物和反射路径
使用射线追踪传播模型显示芝加哥的反射传播路径。
发射场观众与建筑物在芝加哥。有关osm文件的详细信息,请参见[1].
查看器= siteviewer(“建筑”,“chicago.osm”);
在两座不同的建筑物附近创建一个发射机站点和一个接收机站点。
Tx = txsite(“人肉搜索”, 41.8800,“经”, -87.6295,...“TransmitterFrequency”, 2.5 e9);显示(tx) rx = rxsite“人肉搜索”, 41.8813452,“经”, -87.629771,...“AntennaHeight”, 30);显示(rx)
显示视线路径上的障碍物。
洛杉矶(tx, rx)
显示带有反射的传播路径。默认情况下,光线跟踪
函数使用SBR方法并计算带有最多两个反射的传播路径。
光线跟踪(tx, rx)
附录
[1]下载osm文件https://www.openstreetmap.org该网站提供了获取世界各地众包地图数据的途径。这些数据是根据开放数据共享开放数据库许可证(ODbL)授权的,https://opendatacommons.org/licenses/odbl/.
利用射线跟踪传播模型的信号强度
发射场观众与建筑物在芝加哥。有关osm文件的详细信息,请参见[1].
查看器= siteviewer(“建筑”,“chicago.osm”);
在建筑物上创建一个发射机站点。
Tx = txsite(“人肉搜索”, 41.8800,...“经”, -87.6295,...“TransmitterFrequency”, 2.5 e9);
在另一栋建筑附近创建一个接收站点。
Rx = rxsite(“人肉搜索”, 41.881352,...“经”, -87.629771,...“AntennaHeight”, 30);
创建一个射线跟踪传播模型,该模型由MATLAB®使用射线追踪
对象。默认情况下,传播模型使用SBR方法并找到带有两个表面反射的传播路径。
pm =传播模型(“射线”);
利用接收端、发射端和传播模型计算信号强度。
sstwreflflections = sigstrength(rx,tx,pm)
sstwreflections = -54.3015
绘制传播路径。
光线跟踪(tx, rx点)
改变射线追踪
对象查找到的路径5
反射。然后,重新计算信号强度。
点。米一个xNumReflections=5;ssfireflflections = sigstrength(rx,tx,pm)
ssfireflflections = -53.3889
默认情况下,射线追踪
物体假设建筑和地形材料是混凝土。改变建筑和地形材料类型,以模拟完美的电导体。
点。BuildingsMaterial =“perfect-reflector”;ssPerfect = sigstrength(rx,tx,pm)
ssPerfect = -39.6711
为更新的传播模型绘制传播路径。
光线跟踪(tx, rx点)
附录
[1]下载osm文件https://www.openstreetmap.org该网站提供了获取世界各地众包地图数据的途径。这些数据是根据开放数据共享开放数据库许可证(ODbL)授权的,https://opendatacommons.org/licenses/odbl/.
由于材料反射和大气造成的路径损耗
发射场查看器与香港的建筑物。有关osm文件的详细信息,请参见[1].
查看器= siteviewer(“建筑”,“hongkong.osm”);
创建发射机和接收机站点,在密集的城市环境中模拟小型蜂窝场景。
Tx = txsite(“名称”,“小型发射机”,...“人肉搜索”, 22.2789,...“经”, 114.1625,...“AntennaHeight”10...“TransmitterPower”5,...“TransmitterFrequency”, 28日e9);Rx = rxsite(“名称”,“小细胞接收器”,...“人肉搜索”, 22.2799,...“经”, 114.1617,...“AntennaHeight”1);
创建一个射线跟踪传播模型,该模型由MATLAB使用射线追踪
对象。配置模型以使用较低的发射光线之间的平均度数,找到具有最多5条路径反射的路径,并使用模拟完美电导体的建筑和地形材料类型。默认情况下,模型使用SBR方法。
pm =传播模型(“射线”,...“MaxNumReflections”5,...“AngularSeparation”,“低”,...“BuildingsMaterial”,“perfect-reflector”,...“TerrainMaterial”,“perfect-reflector”);
可视化传播路径并计算相应的路径损耗。
光线跟踪(tx, rx,点,“类型”,“pathloss”) raysPerfect = raytrace(tx,rx,pm,“类型”,“pathloss”);plPerfect = [raysPerfect{1}.]PathLoss]
plPerfect =1×13104.2656 103.5699 112.0092 109.3137 111.2840 111.9979 112.4416 108.1505 111.2825 111.3904 117.7506 116.5906 117.7638
将建筑和地形材料类型分别设置为玻璃和混凝土。然后,修正传播路径并重新计算相应的路径损耗。该模型少找到一条路径,因为在默认情况下,模型会丢弃比最强路径弱40分贝以上的路径。第一个路径损耗值不会改变,因为它对应于视距传播路径。
点。BuildingsMaterial =“玻璃”;点。TerrainMaterial =“具体”;光线跟踪(tx, rx,点,“类型”,“pathloss”) raysMtrls = raytrace(tx,rx,pm,“类型”,“pathloss”);plMtrls = [raysMtrls{1}.]PathLoss]
plMtrls =1×12104.2656 106.1290 119.2409 121.2488 122.4103 121.5566 126.9462 124.1624 122.8190 127.5473 139.0664 140.5822
通过在射线追踪模型中添加雨和气体传播模型来合并大气损失。然后,修正传播路径并重新计算相应的路径损耗。
pm = pm +传播模型(“雨”+ propagationModel(“气”);光线跟踪(tx, rx,点,“类型”,“pathloss”) raysatmosphere = raytrace(tx,rx,pm,“类型”,“pathloss”);plAtmospheric = [raysAtmospheric{1}.]PathLoss]
plAtmospheric =1×12105.3245 107.1887 121.8261 123.1442 124.9972 124.1457 129.6641 126.0587 125.4094 130.2653 143.0496 144.5656
附录
[1]下载osm文件https://www.openstreetmap.org该网站提供了获取世界各地众包地图数据的途径。这些数据是根据开放数据共享开放数据库许可证(ODbL)授权的,https://opendatacommons.org/licenses/odbl/.
在会议室中可视化光线追踪
这个例子展示了如何:
缩放STL文件,使模型使用米为单位。
在站点查看器中查看缩放模型。
使用射线跟踪来计算和显示从发射机到接收机的传播路径。
当笛卡儿txsite
而且rxsite
对象需要米为单位的位置坐标,STL文件可能使用其他单位。如果STL文件不使用度量,则必须在将模型导入Site Viewer之前缩放它。
读取STL文件作为三角测量
对象。该文件模拟了一个有一张桌子和四把椅子的小会议室。
TR = stlread(“conferenceroom.stl”);
缩放坐标并创建一个新的三角测量
对象。在本例中,假设从STL单位到米的转换系数为0.9
.
量表= 0.9;scaledPts = TR.Points * scale;TR_scaled =三角测量(TR.ConnectivityList,scaledPts);
查看新三角测量
对象使用站点查看器。或者,您可以保存新的三角测量
对象作为STL文件stlwrite
函数。
查看器= siteviewer(“SceneModel”, TR_scaled);
创建并显示一个靠近墙壁的发送站点和一个桌子下面的接收站点。使用以米为单位的笛卡尔坐标指定位置。
Tx = txsite(“笛卡儿”,...“AntennaPosition”, (-1.25;-1.25;1.9),...“TransmitterFrequency”, 2.8 e9);显示(tx,“ShowAntennaHeight”rx = rxsite(“笛卡儿”,...“AntennaPosition”, (0.3;0.2;0.5]);显示(rx,“ShowAntennaHeight”假)
通过左键单击进行平移,通过右键单击或使用滚轮进行缩放,通过单击中间按钮并拖动或按下来旋转可视化Ctrl左键点击和拖动。
创建一个笛卡尔坐标的射线跟踪传播模型,该模型由MATLAB使用射线追踪
对象。计算到的射线1
反射和1
衍射。设置表面材质为木头。默认情况下,模型使用SBR方法。
pm =传播模型(“射线”,...“CoordinateSystem”,“笛卡儿”,....“MaxNumReflections”, 1...“MaxNumDiffractions”, 1...“SurfaceMaterial”,“木”);
计算传播路径,并将结果作为单元格数组返回comm.Ray
对象。提取并绘制射线。
R = raytrace(tx,rx,pm);R = R {1};图(右)
单击某条射线,查看该射线的信息。
输入参数
tx
- - - - - -发射机的网站
txsite
对象|的数组txsite
对象
发射机站点,指定为txsite
对象的数组txsite
对象。如果指定一个数组,则该函数将绘制从每个发射器到每个接收器站点的传播路径。
处方
- - - - - -接收机的网站
rxsite
对象|的数组rxsite
对象
接收站点,指定为rxsite
对象的数组rxsite
对象。如果指定一个数组,则该函数将绘制从每个发射器到每个接收器站点的传播路径。
propmodel
- - - - - -射线跟踪传播模型
“射线”
(默认)|射线追踪
对象
射线跟踪传播模型,指定为“射线”
或者作为射线追踪
对象。默认为“射线”
该系统使用SBR方法,可以找到最多两次反射和零衍射的路径,并丢弃比最强路径弱40 dB以上的路径。
创建一个射线追踪
对象,使用propagationModel
函数。射线追踪
对象使您能够指定诸如光线跟踪方法、反射和衍射的最大数量、路径损失阈值以及建筑和地形材料等属性。
有关光线追踪方法之间差异的信息,请参见选择一个传播模型.
数据类型:字符
|字符串
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
例子:光线跟踪(tx, rx,类型=“pathloss”)
根据路径损耗对路径进行颜色编码。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来名字
在报价。
例子:光线跟踪(tx, rx,“类型”,“pathloss”)
根据路径损耗对路径进行颜色编码。
类型
- - - - - -要绘制的数量类型
“权力”
(默认)|“pathloss”
要绘制的数量类型,指定为以下选项之一:
“权力”
—以dBm为单位,根据接收功率对路径进行颜色编码。“pathloss”
—以dB为单位,根据路径损耗对路径进行颜色编码。
该函数使用Friis传输方程的修改版本来计算接收功率(以对数单位计算):
地点:
P处方是接收端接收到的功率。
Ptx发送功率是否由
TransmitterPower
发射机站点的属性。Gtx为发射机站点在离角方向上的绝对天线增益。
G处方为接收点在到达角(AoA)方向上的天线绝对增益。
l是发射点和接收机点之间的路径损耗。
ltx系统损耗是否由
SystemLoss
发射机站点的属性。l处方系统损耗是否由
SystemLoss
接收站点的属性。
数据类型:字符
|字符串
PropagationModel
- - - - - -用于射线追踪分析的传播模型类型
“射线”
(默认)|射线追踪
对象
传播模型,指定为“射线”
或者作为射线追踪
对象。默认为“射线”
该系统使用SBR方法,可以找到最多两次反射和零衍射的路径,并丢弃比最强路径弱40 dB以上的路径。
创建一个射线追踪
对象,使用propagationModel
函数。射线追踪
对象使您能够指定诸如光线跟踪方法、反射和衍射的最大数量、路径损失阈值以及建筑和地形材料等属性。
有关光线追踪方法之间差异的信息,请参见选择一个传播模型.
数据类型:字符
|字符串
ColorLimits
- - - - - -颜色地图的颜色限制
二元数字行向量
颜色映射的颜色限制,指定为窗体的双元素数字行向量(最小最大)
.
单位和默认值取决于的值类型
:
“权力”
—单位为dBm,默认值为-120年[5]
.“pathloss”
—单位为dB,默认值为[45 160]
.
颜色限制指示映射到颜色图中第一个和最后一个颜色的值。该函数不会用低于最小颜色限制的值绘制传播路径。
数据类型:双
Colormap
- - - - - -用于着色传播路径的色图
“喷气机”
(默认)|colormap名字|米RGB的-by-3数组
用于对传播路径着色的Colormap,指定为Colormap名称或米-by-3数组的RGB三元组定义米个人色彩。有关色图名称的详细信息,请参见colormap
.
数据类型:字符
|字符串
|双
ShowLegend
- - - - - -在站点查看器中显示颜色图例
真正的
或1
(默认)|假
或0
在站点查看器中显示彩色图例,指定为数字或逻辑1
(真正的
)或0
(假
).
地图
- - - - - -用于可视化或地表数据的地图
siteviewer
对象|三角测量
对象|字符串标量|特征向量
用于可视化或表面数据的地图,指定为siteviewer
对象,三角测量
对象、字符串标量或字符向量。有效值和默认值取决于坐标系统。
坐标系统 | 有效的映射值 | 默认映射值 |
---|---|---|
“地理” |
|
|
“笛卡儿” |
|
|
一个边界和区域标签的对齐是数据供应商提供的特性的表示,并不意味着得到MathWorks的认可®. |
数据类型:字符
|字符串
输出参数
射线
-光线配置
米——- - - - - -N单元格阵列comm.Ray
对象
Ray配置,返回为a米——- - - - - -N单元格阵列comm.Ray
对象,米是发射点的数量和N是接收站点的数量。每个单元格元素都是的行向量comm.Ray
表示在相应的发射站点和接收站点之间发现的传播路径(射线)的对象。
在每个行向量中,函数对comm.Ray
按第一个交互类型按字母顺序排列的对象。当多个射线的第一个交互类型相同时,该函数根据第二个交互类型进行排序,并对后续重复的交互类型重复此行为。当多个comm.Ray
对象以相同的顺序具有相同数量和类型的交互,该函数通过增加传播距离对对象进行排序。如果存在视线路径,则函数将其作为第一个元素包含。
版本历史
R2019b引入R2023a:光线跟踪模型基于路径损耗丢弃路径
射线跟踪传播模型基于路径损耗阈值丢弃传播路径。默认情况下,当您指定propmodel
输入参数为“射线”
或者一个射线追踪
对象时,传播模型会丢弃比最强路径弱40 dB以上的路径。
结果,光线跟踪
函数在R2023a中可以返回与以前版本不同的值。为了避免根据相对路径损耗阈值丢弃路径,可以创建射线追踪
对象(通过使用propagationModel
函数)并设置其MaxRelativePathLoss
财产正
.对象的输入光线跟踪
函数。
R2023a:射线跟踪与SBR方法计算路径使用提高精度
方法查找传播路径时光线跟踪
函数与射线追踪模型,使用射击和反弹射线(SBR)方法,MATLAB®使用双精度浮点计算计算结果。在以前的版本中,该函数使用单精度浮点计算。
结果,光线跟踪
函数可以返回不同的comm.Ray
与之前的版本相比,R2023a的对象。
R2023a:NumReflections
已删除名称-值参数
的NumReflections
已删除名称-值参数。
方法创建传播模型propagationModel
函数,并指定MaxNumReflections
名称-值参数。然后,使用光线跟踪
使用传播模型作为输入的函数。这段代码显示了推荐的工作流。
pm =传播模型(“射线”MaxNumReflections = 3);射线= raytrace(tx,rx,pm);
R2022b:SBR方法具有精确的几何精度
当您使用SBR方法找到传播路径时,MATLAB会使用单精度浮点计算对结果进行修正,以便每个路径的几何精度是精确的。在以前的版本中,路径具有近似的几何精度。
例如,这段代码通过使用默认的SBR方法查找发射器和接收器之间的传播路径,并将路径返回为comm.Ray
对象。在R2022b中,光线跟踪
函数找到7条传播路径。在早期版本中,该函数近似于8条传播路径,其中一条是重复路径。
(建筑=“hongkong.osm”);tx = txsite(纬度=22.2789,经度=114.1625,天线高度=10,...TransmitterPower = 5, TransmitterFrequency = 28 e9);rx = rxsite(纬度=22.2799,经度=114.1617,天线高度=1);rSBR = raytrace(tx,rx)
R2022b | R2022a |
---|---|
rSBR = 1×1单元阵列{1×7 com . ray} |
rSBR = 1×1单元阵列{1×8 com . ray} |
R2022b中使用SBR方法计算的路径与使用图像方法计算的路径更接近。图像方法以精确的几何精度找到所有可能的路径。例如,这段代码使用图像方法来查找同一发射机和接收机之间的传播路径。
(建筑=“hongkong.osm”);tx = txsite(纬度=22.2789,经度=114.1625,...AntennaHeight = 10, TransmitterPower = 5,...TransmitterFrequency = 28 e9);rx = rxsite(纬度=22.2799,经度=114.1617,...AntennaHeight = 1);pm =传播模型(“射线”方法=“图像”, MaxNumReflections = 2);rmage = raytrace(tx,rx,pm)
图像= 1×1单元阵列{1×7 com . ray}
在这种情况下,SBR方法与图像方法找到相同数量的传播路径。一般情况下,SBR方法查找图像方法找到的路径的子集。当图像和SBR方法都找到相同的路径时,路径上的点在单精度浮点值的机器精度公差范围内是相同的。
这段代码比较路径损耗,误差范围为0.0001
,采用SBR法和图像法计算。
abs([rSBR{1}.PathLoss]-[rImage{1}.PathLoss]) < 0.0001
Ans = 1×7逻辑阵列1 1 1 1 1 1 1 1
路径损耗在规定的公差范围内是相同的。
结果,光线跟踪
函数可以在R2022b中返回与以前版本不同的结果。
该函数可以返回不同数量的
comm.Ray
对象,因为它会丢弃无效或重复的路径。函数可以返回不同的值
comm.Ray
对象,因为它计算精确路径而不是近似路径。
R2022a:NumReflections
名称-值参数将被删除
的NumReflections
名称-值参数发出警告,表示将在将来的版本中删除该参数。
R2021b:光线跟踪
函数采用SBR方法
从R2021b开始,光线跟踪
函数使用射击和反射射线(SBR)方法,默认情况下最多计算两次反射。在以前的版本中,光线跟踪
函数使用图像方法并计算最多一个反射。
若要使用图像方法显示或计算RF传播射线,请使用propagationModel
函数。然后,使用光线跟踪
使用传播模型作为输入的函数。这个例子展示了如何更新代码。
pm =传播模型(射线追踪的,“方法”,“图像”);光线跟踪(tx, rx点)
有关SBR和图像方法的信息,请参见选择一个传播模型.
从R2021b开始,所有RF传播函数默认使用SBR方法并计算最多两次反射。有关更多信息,请参见默认的建模方法是射击和反射射线方法.
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。