RayTracing
Ray tracing propagation model
Description
RayTracing
objects are propagation models that compute
propagation paths using 3-D environment geometry. For more information about the model, see
[1] and [2]. Represent a ray tracing model by
using a RayTracing
object.
This ray tracing model:
Is reasonable from 100 MHz to 100 GHz.
Computes multiple propagation paths. Other propagation models compute only single propagation paths.
Supports 3-D outdoor and indoor environments.
Determines the path loss and phase shift of each ray using electromagnetic analysis, including tracing the horizontal and vertical polarizations of a signal through the propagation path. The path loss calculations include free-space loss, reflection losses, and edge diffraction losses. For each reflection and edge diffraction, the model calculates losses on the horizontal and vertical polarizations by using the Fresnel equation, the Uniform Theory of Diffraction (UTD), the geometric angle, and the complex permittivity of the interface materials [3][4] at the specified frequency.
You can create ray tracing models that use either the shooting and bouncing rays (SBR) method or the image method.
Creation
Create a RayTracing
object by using the propagationModel
function.
Properties
Ray Tracing
Ray tracing method, specified as one of these values:
"sbr"
— Use the shooting and bouncing rays (SBR) method, which supports up to 100 path reflections and two edge diffractions. The SBR method calculates an approximate number of propagation paths with exact geometric accuracy. The SBR method is generally faster than the image method. The model calculates path loss from free-space loss, reflection and diffraction losses due to interactions with materials, and antenna polarizations."image"
— Use the image method, which supports up to two path reflections. The image method calculates an exact number of propagation paths with exact geometric accuracy. The model calculates path loss from free-space loss plus reflection losses due to material and antenna polarizations.
Specify the maximum number of path reflections by using the MaxNumReflections
property. Specify the maximum number of edge diffractions by using the MaxNumDiffractions
property.
When both the image and SBR methods find the same path, the points along the path are the same within a tolerance of machine precision for single-precision floating-point values. For more information about differences between the image and SBR methods, see Choose a Propagation Model.
Data Types: char
| string
Average number of degrees between launched rays, specified as
"high"
, "medium"
, "low"
, or
a numeric scalar in degrees in the range [0.05, 10]. If you specify a numeric value,
then the ray tracing algorithm might use a lower value than the value you
specify.
This table describes the behavior of the "high"
,
"medium"
, and "low"
options.
Option | Approximate Numeric Equivalent | Range of Numeric Values | Number of Launched Rays |
---|---|---|---|
"high" | 1.0781 | [0.9912, 1.1845] | 40,962 |
"medium" | 0.5391 | [0.4956, 0.5923] | 163,842 |
"low" | 0.2695 | [0.2478, 0.2961] | 655,362 |
To improve the accuracy of the number of paths found by the SBR method, decrease
the value of AngularSeparation
. Decreasing the value of
AngularSeparation
increases the amount of time MATLAB® requires to perform the analysis.
When you first use a given value of AngularSeparation
in a
MATLAB session, MATLAB caches the geodesic sphere associated with that value for the duration
of the session. As a result, the first use of that value of
AngularSeparation
takes longer than subsequent uses within the
same session. For more information about geodesic spheres, see Shooting and Bouncing Rays Method.
Tips
When you perform ray tracing with diffractions or create coverage maps using the
coverage
function, you can speed up the calculations by choosing a lower angular separation
and maximum number of reflections.
Dependencies
To enable this argument, the value of the Method
property
must be "sbr"
(the default).
Data Types: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| char
| string
Maximum number of path reflections to search for using ray tracing, specified as
an integer. Supported values depend on the value of the Method
property.
When
Method
is"image"
, supported values are0
,1
, and2
.When
Method
is"sbr"
, supported values are in the range [0, 100].
Maximum number of edge diffractions to search for using ray tracing, specified as
0
, 1
, or 2
.
When you use a RayTracing
object as input to the coverage
or
sinr
function, the
value of this property must be 0
or 1
.
Dependencies
To enable MaxNumDiffractions
, the value of the Method
property
must be "sbr"
.
Maximum absolute path loss, in dB, specified as a positive numeric scalar. This
property enables you to discard propagation paths based on an absolute threshold. For
example, you can discard paths with more than 100 dB of path loss by specifying this
property as 100
. The default is Inf
, which does
not discard propagation paths based on absolute threshold.
The MaxAbsolutePathLoss
and
MaxRelativePathLoss
properties work together. For a propagation
path with path loss pl
, the ray tracing model discards the path
when pl
is more than whichever is lower between
MaxAbsolutePathLoss
and MaxRelativePathLoss
+
plsr
, where plsr
is the path loss of the strongest
ray.
Maximum relative path loss, in dB, specified as a nonnegative numeric scalar. This
property enables you to discard propagation paths based on a threshold relative to the
strongest ray. The default is 40
, which discards paths that are
more than 40 dB weaker than the strongest path.
The MaxRelativePathLoss
and
MaxAbsolutePathLoss
properties work together. For a propagation
path with path loss pl
, the ray tracing model discards the path
when pl
is more than whichever is lower between
MaxAbsolutePathLoss
and MaxRelativePathLoss
+
plsr
, where plsr
is the path loss of the strongest
ray.
Coordinate system of the site location, specified as
"geographic"
or "cartesian"
. If you specify
"geographic"
, define material types by using the BuildingsMaterial
and TerrainMaterial
properties. If you specify "cartesian"
, define material types by
using the SurfaceMaterial
property.
Data Types: string
| char
Since R2025a
Option to perform ray tracing on a GPU, specified as one of these values:
"off"
— Use the local CPU."on"
— Use the local GPU."auto"
— Use the local GPU if one is available. Otherwise, use the local CPU.
To perform ray tracing analysis on a GPU, you must have Parallel Computing Toolbox™ and a supported GPU device. For more information about supported devices, see GPU Computing Requirements (Parallel Computing Toolbox).
Using a GPU can accelerate ray tracing analysis when the GPU meets these conditions:
The GPU includes dedicated ray tracing cores.
The GPU outperforms the CPU on single-precision floating-point operations.
The GPU has sufficient memory to accommodate the complexity of the scene and the requirements of the ray tracing model. You can change the requirements of the ray tracing model by setting properties of the
RayTracing
object. For example, you can adjust the number of launched rays by using theAngularSeparation
property, specify the maximum number of reflections by using theMaxNumReflections
property, and specify the maximum number of diffractions by using theMaxNumDiffractions
property.
Note that the GPU and CPU results might not match. While the results match in many cases, the results can differ due to small differences in algorithms and hardware implementations. The algorithms for both the CPU and the GPU apply path corrections to the rays.
For an example that shows how to perform ray tracing analysis using a GPU, see Accelerate Ray Tracing Analysis Using GPU.
Dependencies
To enable this argument, the value of the Method
property
must be "sbr"
(the default).
Data Types: char
| string
Buildings Material
Surface material of geographic buildings, specified as one of these values:
"auto"
— Use building materials derived from the OpenStreetMap® file or geospatial table that specifies the scene. If the file or table does not specify materials, then use concrete for all the buildings. If the file or table specifies a material that the ray tracing analysis does not support, then use concrete instead of the unsupported material. When you import the file or table into Site Viewer, you can view the material names by querying theMaterials
property of the Site Viewer object. (since R2023b)"custom"
— Custom material. Specify the real relative permittivity and the conductivity of the material by using theBuildingsMaterialPermittivity
andBuildingsMaterialConductivity
properties.A material name from this table.
Common Building Materials Metals Terrestrial Materials Theoretical Materials "acrylic"
— Acrylic"brick"
— Brick"ceiling-board"
— Ceiling board"chipboard"
— Chipboard"concrete"
— Concrete"floorboard"
— Floorboard"foam"
— Foam"FR4"
— FR-4 (fiberglass)"glass"
— Glass"marble"
— Marble"metal"
— Metal"plasterboard"
— Plasterboard"plywood"
— Plywood"polystyrene"
— Polystyrene"Teflon"
— Teflon® (PTFE)"wood"
— Wood
"aluminum"
— Aluminum"brass"
— Brass"copper"
— Copper"gold"
— Gold"Invar"
— Invar"iron"
— Iron"lead"
— Lead"silver"
— Silver"steel"
— Steel"tungsten"
— Tungsten"zinc"
— Zinc
"air"
— Air"ice"
— Ice"loam"
— Loam"seawater"
— Seawater"snow"
— Snow"tree"
— Tree"vegetation"
— Vegetation"water"
— Water
"PEC"
— Perfect electrical conductor"vacuum"
— Vacuum (free space)
The model uses the material type to calculate path loss involving interactions with building surfaces. For more information, see Permittivity and Conductivity Values for Common Materials.
Dependencies
To enable BuildingsMaterial
, the value of the CoordinateSystem
property must be "geographic"
.
Data Types: char
| string
Real relative permittivity of the surface materials of the buildings, specified as a nonnegative scalar. Real relative permittivity is expressed as the real part of the ratio of complex absolute material permittivity to the absolute permittivity of vacuum. The model uses this value to calculate path loss involving interactions with building surfaces. The default value corresponds to concrete at 1.9 GHz.
Dependencies
To enable BuildingsMaterialPermittivity
, you must set the
CoordinateSystem
property to "geographic"
and the BuildingsMaterial
property to "custom"
.
Data Types: double
Conductivity of the surface materials of the buildings, specified as a nonnegative scalar in S/m. The model uses this value to calculate path loss involving interactions with building surfaces. The default value corresponds to concrete at 1.9 GHz.
Dependencies
To enable BuildingsMaterialConductivity
, you must set the
CoordinateSystem
property to "geographic"
and the BuildingsMaterial
property to "custom"
.
Data Types: double
Terrain Material
Surface material of the geographic terrain, specified as one of these values:
"custom"
— Custom material. Specify the real relative permittivity and the conductivity of the material by using theTerrainMaterialPermittivity
andTerrainMaterialConductivity
properties.A material name from this table.
Common Building Materials Metals Terrestrial Materials Theoretical Materials "acrylic"
— Acrylic"brick"
— Brick"ceiling-board"
— Ceiling board"chipboard"
— Chipboard"concrete"
— Concrete"floorboard"
— Floorboard"foam"
— Foam"FR4"
— FR-4 (fiberglass)"glass"
— Glass"marble"
— Marble"metal"
— Metal"plasterboard"
— Plasterboard"plywood"
— Plywood"polystyrene"
— Polystyrene"Teflon"
— Teflon (PTFE)"wood"
— Wood
"aluminum"
— Aluminum"brass"
— Brass"copper"
— Copper"gold"
— Gold"Invar"
— Invar"iron"
— Iron"lead"
— Lead"silver"
— Silver"steel"
— Steel"tungsten"
— Tungsten"zinc"
— Zinc
"air"
— Air"ice"
— Ice"loam"
— Loam"seawater"
— Seawater"snow"
— Snow"tree"
— Tree"vegetation"
— Vegetation"water"
— Water
"PEC"
— Perfect electrical conductor"vacuum"
— Vacuum (free space)
The model uses the material type to calculate path loss involving interactions with terrain surfaces. For more information, see Permittivity and Conductivity Values for Common Materials.
Dependencies
To enable TerrainMaterial
, you must set the CoordinateSystem
property to "geographic"
.
Data Types: char
| string
Real relative permittivity of the terrain material, specified as a nonnegative scalar. Real relative permittivity is expressed as the real part of the ratio of complex absolute material permittivity to the absolute permittivity of vacuum. The model uses this value to calculate path loss involving interactions with terrain surfaces. The default value corresponds to concrete at 1.9 GHz.
Dependencies
To enable TerrainMaterialPermittivity
, you must set the
CoordinateSystem
property to "geographic"
and the TerrainMaterial
property to "custom"
.
Data Types: double
Conductivity of the terrain material, specified as a nonnegative scalar in S/m. The model uses this value to calculate path loss involving interactions with terrain surfaces. The default value corresponds to concrete at 1.9 GHz.
Dependencies
To enable TerrainMaterialConductivity
, you must set the
CoordinateSystem
property to "geographic"
and the TerrainMaterial
property to "custom"
.
Data Types: double
Surface Material
Surface material of Cartesian map surface, specified as one of these values:
"auto"
— Use surface materials derived from the file that specifies the scene. For glTF™ files, use materials derived from the file. If the file does not specify materials, or if the file specifies a material that the ray tracing analysis does not support, then use concrete instead of the absent or unsupported material. For STL files and triangulation objects, use concrete. When you import the file into Site Viewer, you can view the material names by querying theMaterials
property of the Site Viewer object. (since R2023b)"custom"
— Custom material. Specify the real relative permittivity and the conductivity of the material by using theSurfaceMaterialPermittivity
andSurfaceMaterialConductivity
properties.A material name from this table.
Common Building Materials Metals Terrestrial Materials Theoretical Materials "acrylic"
— Acrylic"brick"
— Brick"ceiling-board"
— Ceiling board"chipboard"
— Chipboard"concrete"
— Concrete"floorboard"
— Floorboard"foam"
— Foam"FR4"
— FR-4 (fiberglass)"glass"
— Glass"marble"
— Marble"metal"
— Metal"plasterboard"
— Plasterboard"plywood"
— Plywood"polystyrene"
— Polystyrene"Teflon"
— Teflon (PTFE)"wood"
— Wood
"aluminum"
— Aluminum"brass"
— Brass"copper"
— Copper"gold"
— Gold"Invar"
— Invar"iron"
— Iron"lead"
— Lead"silver"
— Silver"steel"
— Steel"tungsten"
— Tungsten"zinc"
— Zinc
"air"
— Air"ice"
— Ice"loam"
— Loam"seawater"
— Seawater"snow"
— Snow"tree"
— Tree"vegetation"
— Vegetation"water"
— Water
"PEC"
— Perfect electrical conductor"vacuum"
— Vacuum (free space)
The model uses the material type to calculate path loss involving interactions with surfaces. For more information, see Permittivity and Conductivity Values for Common Materials.
Dependencies
To enable SurfaceMaterial
, you must set the CoordinateSystem
property to "cartesian"
.
Data Types: char
| string
Real relative permittivity of the surface material, specified as a nonnegative scalar. Real relative permittivity is expressed as the real part of the ratio of complex absolute material permittivity to the absolute permittivity of vacuum. The model uses this value to calculate path loss involving interactions with surfaces. The default value corresponds to concrete at 1.9 GHz.
Dependencies
To enable SurfaceMaterialPermittivity
, you must set the
CoordinateSystem
property to "cartesian"
and the SurfaceMaterial
property to "custom"
.
Data Types: double
Conductivity of the surface material, specified as a nonnegative scalar in S/m. The model uses this value to calculate path loss involving interactions with surfaces. The default value corresponds to concrete at 1.9 GHz.
Dependencies
To enable SurfaceMaterialConductivity
, you must set the
CoordinateSystem
property to "cartesian"
and the SurfaceMaterial
property to "custom"
.
Data Types: double
Examples
Show reflected propagation paths in Chicago by using the SBR and image methods.
Create a Site Viewer with buildings in Chicago. For more information about the OpenStreetMap® file, see [1].
viewer = siteviewer(Buildings="chicago.osm");
Create a transmitter site on a building and a receiver site near another building.
tx = txsite(Latitude=41.8800, ... Longitude=-87.6295, ... TransmitterFrequency=2.5e9); show(tx) rx = rxsite(Latitude=41.8813452, ... Longitude=-87.629771, ... AntennaHeight=30); show(rx)
Create a ray tracing propagation model, which MATLAB® represents using a RayTracing
object. Configure the model to use the image method and to calculate paths with up to one reflection. Then, display the propagation paths.
pm = propagationModel("raytracing",Method="image", ... MaxNumReflections=1); raytrace(tx,rx,pm)
For this ray tracing model, there is one propagation path from the transmitter to the receiver.
Update the ray tracing model to use the SBR method and to calculate paths with up to two reflections and up to one diffraction. Display the propagation paths.
pm.Method = "sbr";
pm.MaxNumReflections = 2;
pm.MaxNumDiffractions = 1;
raytrace(tx,rx,pm)
The updated ray tracing model shows more propagation paths from the transmitter to the receiver.
Appendix
[1] The OpenStreetMap file is downloaded from https://www.openstreetmap.org, which provides access to crowd-sourced map data all over the world. The data is licensed under the Open Data Commons Open Database License (ODbL), https://opendatacommons.org/licenses/odbl/.
Launch Site Viewer with buildings in Chicago. For more information about the OpenStreetMap® file, see [1].
viewer = siteviewer(Buildings="chicago.osm");
Create a transmitter site on a building and a receiver site near another building.
tx = txsite(Latitude=41.8800, ... Longitude=-87.6295, ... TransmitterFrequency=2.5e9); show(tx)
Create a ray tracing propagation model, which MATLAB® represents using a RayTracing
object. Configure the model to find paths with up to 2
surface reflections and up to 1
edge diffraction. By default, the model uses the SBR method.
pm = propagationModel("raytracing", ... MaxNumReflections=2,MaxNumDiffractions=1);
Display the coverage map.
coverage(tx,pm,SignalStrengths=-100:5)
Appendix
[1] The OpenStreetMap file is downloaded from https://www.openstreetmap.org, which provides access to crowd-sourced map data all over the world. The data is licensed under the Open Data Commons Open Database License (ODbL), https://opendatacommons.org/licenses/odbl/.
Ray tracing models enable you to discard propagation paths based on path loss thresholds.
Specify a threshold relative to the strongest propagation path by using the
MaxRelativePathLoss
property.Specify an absolute threshold by using the
MaxAbsolutePathLoss
property.
Create a Site Viewer with buildings in Chicago. For more information about the OpenStreetMap® file, see [1].
viewer = siteviewer(Buildings="chicago.osm");
Create a transmitter site on a building and a receiver site near another building.
tx = txsite(Latitude=41.8800, ... Longitude=-87.6295, ... TransmitterFrequency=2.5e9); show(tx) rx = rxsite(Latitude=41.8813452, ... Longitude=-87.629771, ... AntennaHeight=30); show(rx)
Create a ray tracing propagation model, which MATLAB represents using a RayTracing
object. Configure the model to find paths with up to 2
surface reflections and up to 1
edge diffraction. By default, the model uses the SBR method.
pm = propagationModel("raytracing", ... MaxNumReflections=2, ... MaxNumDiffractions=1);
Perform the ray tracing analysis. By default, the model discard paths that are more than 40 dB weaker than the strongest path.
raytrace(tx,rx,pm,Type="pathloss")
Discard Paths Based on Relative Path Loss
Discard paths that are more than 50 dB weaker than the strongest path by changing the MaxRelativePathLoss
property of the RayTracing
object. Then, perform the ray tracing analysis again.
pm.MaxRelativePathLoss = 50;
raytrace(tx,rx,pm,Type="pathloss")
To avoid discarding propagation paths, set the MaxRelativePathLoss
property to Inf
.
pm.MaxRelativePathLoss = Inf;
raytrace(tx,rx,pm,Type="pathloss")
Discard Paths Based on Absolute Path Loss
Discard paths with more than 115
dB of path loss by setting the MaxAbsolutePathLoss
property of the RayTracing
object.
pm.MaxAbsolutePathLoss = 115;
raytrace(tx,rx,pm,Type="pathloss")
Appendix
[1] The OpenStreetMap file is downloaded from https://www.openstreetmap.org, which provides access to crowd-sourced map data all over the world. The data is licensed under the Open Data Commons Open Database License (ODbL), https://opendatacommons.org/licenses/odbl/.
More About
The shooting and bouncing rays (SBR) method finds an approximate number of propagation paths with exact geometric accuracy. You can use this method to find paths with up to 100 path reflections.
The computational complexity of the SBR method increases linearly with the number of reflections and exponentially with the number of diffractions. The SBR method is generally faster than the image method.
This figure illustrates the SBR method for calculating propagation paths from a transmitter, Tx, to a receiver, Rx.
The SBR method launches many rays from a geodesic sphere centered at Tx. The geodesic sphere enables the model to launch rays that are approximately uniformly spaced.
Then, the method traces every ray from Tx and can model different types of interactions between the rays and surrounding objects, such as reflections, diffractions, refractions, and scattering. Note that the current implementation of the SBR method considers only reflections and edge diffractions. In addition, the implementation considers edges for diffraction when the intersection angle for two surfaces is in the range [0.1, 179.9), in degrees.
When a ray hits a flat surface, shown as R, the ray reflects based on the law of reflection.
When a ray hits an edge, shown as D, the ray spawns many diffracted rays based on the law of diffraction [5][6]. Each diffracted ray has the same angle with the diffracting edge as the incident ray. The diffraction point then becomes a new launching point and the SBR method traces the diffracted rays in the same way as the rays launched from Tx. A continuum of diffracted rays forms a cone around the diffracting edge, which is commonly known as a Keller cone [6].
For each launched ray, the SBR method surrounds Rx with a sphere, called a reception sphere, with a radius that is proportional to the distance the ray travels and the average number of degrees between the launched rays. If the ray intersects the sphere, then the model considers the ray a valid path from Tx to Rx. The SBR method corrects the valid paths so that the paths have exact geometric accuracy.
When you increase the number of rays by decreasing the number of degrees between rays, the reception sphere becomes smaller. As a result, in some cases, launching more rays results in fewer or different paths. This situation is more likely to occur with custom 3-D scenarios created from STL files or triangulation objects than with scenarios that are automatically generated from OpenStreetMap buildings and terrain data.
The SBR method finds paths using double-precision floating-point computations.
The image method finds an exact number of propagation paths with exact geometric accuracy. You can use this method to find paths with up to 2 path reflections. The computational complexity of the image method increases exponentially with the number of reflections.
This figure illustrates the image method for calculating the propagation path of a single reflection ray for the same transmitter and receiver as the SBR method. The image method locates the image of Tx with respect to a planar reflection surface, Tx'. Then, the method connects Tx' and Rx with a line segment. If the line segment intersects the planar reflection surface, shown as R in the figure, then a valid path from Tx to Rx exists. The method determines paths with multiple reflections by recursively extending these steps. The image method finds paths using single-precision floating-point computations.
Functions that accept ray tracing models as input use the methods and equations presented in International Telecommunication Union Recommendations (ITU-R) P.2040-3 [3] and ITU-R P.527-5 through ITU-R P.527-6 [4] to calculate the relative permittivity and conductivity of a subset of the supported materials.
For information about the values computed for building materials specified in ITU-R P.2040, see
buildingMaterialPermittivity
.For information about the values computed for terrain materials specified in ITU-R P.527, see
earthSurfacePermittivity
.
Functions that accept ray tracing models as input use the constant values that are recommended by the 2022 Committee on Data of the International Science Council (CODATA) adjustment of fundamental constants [7].
References
[1] Yun, Zhengqing, and Magdy F. Iskander. “Ray Tracing for Radio Propagation Modeling: Principles and Applications.” IEEE Access 3 (2015): 1089–1100. https://doi.org/10.1109/ACCESS.2015.2453991.
[2] Schaubach, K.R., N.J. Davis, and T.S. Rappaport. “A Ray Tracing Method for Predicting Path Loss and Delay Spread in Microcellular Environments.” In [1992 Proceedings] Vehicular Technology Society 42nd VTS Conference - Frontiers of Technology, 932–35. Denver, CO, USA: IEEE, 1992. https://doi.org/10.1109/VETEC.1992.245274.
[3] International Telecommunications Union Radiocommunication Sector. Effects of Building Materials and Structures on Radiowave Propagation Above About 100MHz. Recommendation P.2040. ITU-R, approved August 23, 2023. https://www.itu.int/rec/R-REC-P.2040/en.
[4] International Telecommunications Union Radiocommunication Sector. Electrical Characteristics of the Surface of the Earth. Recommendation P.527. ITU-R, approved September 27, 2021. https://www.itu.int/rec/R-REC-P.527/en.
[5] International Telecommunications Union Radiocommunication Sector. Propagation by diffraction. Recommendation P.526-15. ITU-R, approved October 21, 2019. https://www.itu.int/rec/R-REC-P.526/en.
[6] Keller, Joseph B. “Geometrical Theory of Diffraction.” Journal of the Optical Society of America 52, no. 2 (February 1, 1962): 116. https://doi.org/10.1364/JOSA.52.000116.
[7] Mohr, Peter J., Eite Tiesinga, David B. Newell, and Barry N. Taylor. “Codata Internationally Recommended 2022 Values of the Fundamental Physical Constants.” NIST, May 8, 2024. https://www.nist.gov/publications/codata-internationally-recommended-2022-values-fundamental-physical-constants.
Extended Capabilities
The RayTracing
object supports ray tracing
analysis on a GPU with these usage notes and limitations:
When you pass the object as input to a function such as
raytrace
orcoverage
, the function runs on the GPU when theUseGPU
property of the object is"on"
or"auto"
.For information about when the GPU can accelerate ray tracing analysis, see the
UseGPU
property.In some cases, the GPU and CPU results can differ due to small differences in algorithms and hardware implementations.
For an example that shows how to perform ray tracing analysis on a GPU, see Accelerate Ray Tracing Analysis Using GPU.
Version History
Introduced in R2019bRay tracing models support these additional materials: acrylic, air, aluminum, brass,
copper, foam, FR4, gold, ice, Invar, iron, lead, PEC, polystyrene, seawater, silver, snow,
steel, Teflon, tree, tungsten, vacuum, and zinc. You can specify the materials for
buildings, surfaces, and terrain by setting the BuildingsMaterial
,
SurfaceMaterial
, and TerrainMaterial
properties,
respectively.
The BuildingsMaterial
, SurfaceMaterial
, and
TerrainMaterial
properties will not support
"perfect-reflector"
in a future release. Use "PEC"
instead. The behavior of "perfect-reflector"
and "PEC"
is the same.
Ray tracing models that use the SBR method can find propagation paths with up to 100
reflections. Specify the maximum number of path reflections by setting the
MaxNumReflections
property.
Specify the buildings, surface, or terrain material as marble by setting the
BuildingsMaterial
, SurfaceMaterial
, or
TerrainMaterial
property to "marble"
.
Specify the buildings or surface material as plywood by setting the
BuildingsMaterial
or SurfaceMaterial
property to
"plywood"
.
The default value of the BuildingsMaterial
and
SurfaceMaterial
properties of the RayTracing
propagation model object is "auto"
. Previously, the default value of the
BuildingsMaterial
property was "concrete"
and the
default value of the SurfaceMaterial
property was
"plasterboard"
.
In addition, the default values of the SurfaceMaterialPermittivity
and SurfaceMaterialConductivity
properties of the
RayTracing
propagation model object are now 5.31
and
0.0548
, respectively. In previous releases, the default values were
2.94
and 0.0183
, respectively.
RayTracing
objects enable you to discard propagation paths based on
path loss thresholds. To specify the thresholds, set the
MaxAbsolutePathLoss
and MaxRelativePathLoss
properties of the object.
The default value of the MaxRelativePathLoss
property is
40
. As a result, code from previous releases that does not specify a
MaxRelativePathLoss
value can be affected in these ways:
The
raytrace
function can return fewercomm.Ray
objects in R2023a compared to previous releases.The
sigstrength
,coverage
,sinr
, andlink
functions can return different values in R2023a compared to previous releases.The
pathloss
function can return different path loss values in R2023a compared to previous releases.
To avoid discarding propagation paths based on relative path loss thresholds, set the
MaxRelativePathLoss
property of the ray tracing object to
Inf
.
When performing ray tracing using the SBR method, you can customize the spacing of
launched rays by specifying the AngularSeparation
property of the
RayTracing
object as a numeric value in degrees. In previous releases,
the AngularSeparation
property supported only the options
"high"
, "medium"
, and
"low"
.
When you find propagation paths using the SBR method, MATLAB corrects the results so that the geometric accuracy of each path is exact. In previous releases, the paths have approximate geometric accuracy.
Starting in R2021b, when you create a propagation model using the syntax
propagationModel("raytracing")
, MATLAB returns a RayTracing
model with the
Method
value set to "sbr"
and two reflections
(instead of "image"
and one reflection, as in previous releases).
To create ray tracing propagation models that use the image method, use the syntax
propagationModel("raytracing","Method","image")
.
See Also
Functions
propagationModel
|raytrace
|coverage
|sigstrength
|buildingMaterialPermittivity
|earthSurfacePermittivity
Objects
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: United States.
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)