Main Content

RayTracing

Ray tracing propagation model

Description

Ray tracing models compute propagation paths using 3-D environment geometry [1][2] . Represent a ray tracing model by using a RayTracing object.

Ray tracing models:

  • Are valid from 100 MHz to 100 GHz.

  • Compute multiple propagation paths. Other propagation models compute only single propagation paths.

  • Support 3-D outdoor and indoor environments.

  • Determine 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 includes free-space loss and reflection losses. For each reflection, the model calculates losses on the horizontal and vertical polarizations by using the Fresnel equation, the incident angle, and the relative permittivity and conductivity of the surface material [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

expand all

Ray Tracing

Ray tracing method, specified as one of these values:

  • "sbr" — Use the shooting and bouncing rays (SBR) method, which supports up to 10 path reflections. 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 plus reflection losses due to material and antenna polarizations.

  • "image" — Use the image method, which supports up to 2 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.

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.

OptionApproximate Numeric EquivalentRange of Numeric ValuesNumber 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 can increase 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 creating coverage maps using the coverage function, you can improve the results by choosing a lower angular separation.

Dependencies

To enable this argument, you must specify the Method property as "sbr".

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 are 0, 1, and 2.

  • When Method is "sbr", supported values are in the range [0, 10].

Data Types: double

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

Buildings Material

Surface material of geographic buildings, specified as one of these values: "perfect-reflector", "concrete", "brick", "wood", "glass", "metal", or "custom". The model uses the material type to calculate reflection loss where propagation paths reflect off of building surfaces. For more information, see ITU Permittivity and Conductivity Values for Common Materials.

When BuildingsMaterial is "custom", specify the material permittivity and conductivity by using the BuildingsMaterialPermittivity and BuildingsMaterialConductivity properties.

Dependencies

To enable BuildingsMaterial, you must set CoordinateSystem to "geographic".

Data Types: char | string

Relative permittivity of the surface materials of the buildings, specified as a nonnegative scalar. Relative permittivity is expressed as a ratio of absolute material permittivity to the permittivity of vacuum. The model uses this value to calculate path loss due to reflection. The default value corresponds to concrete at 1.9 GHz.

Dependencies

To enable BuildingsMaterialPermittivity, you must set CoordinateSystem to "geographic" and BuildingsMaterial to "custom".

Data Types: double

Conductivity of the surface materials of the buildings, specified as a nonnegative scalar in siemens per meter (S/m). The model uses this value to calculate path loss due to reflection. The default value corresponds to concrete at 1.9 GHz.

Dependencies

To enable BuildingsMaterialConductivity, you must set CoordinateSystem to "geographic" and BuildingsMaterial to "custom".

Data Types: double

Terrain Material

Surface material of the geographic terrain, specified as one of these values: "perfect-reflector", "concrete", "brick", "water", "vegetation", "loam", or "custom". The model uses the material type to calculate reflection loss where propagation paths reflect off of terrain surfaces. For more information, see ITU Permittivity and Conductivity Values for Common Materials.

When TerrainMaterial is "custom", specify the material permittivity and conductivity by using the TerrainMaterialPermittivity and TerrainMaterialConductivity properties.

Dependencies

To enable TerrainMaterial, you must set CoordinateSystem to "geographic".

Data Types: char | string

Relative permittivity of the terrain material, specified as a nonnegative scalar. Relative permittivity is expressed as a ratio of absolute material permittivity to the permittivity of vacuum. The model uses this value to calculate path loss due to reflection. The default value corresponds to concrete at 1.9 GHz.

Dependencies

To enable TerrainMaterialPermittivity, you must set CoordinateSystem to "geographic" and TerrainMaterial to "custom".

Data Types: double

Conductivity of the terrain material, specified as a nonnegative scalar in siemens per meter (S/m). The model uses this value to calculate path loss due to reflection. The default value corresponds to concrete at 1.9 GHz.

Dependencies

To enable TerrainMaterialConductivity, you must set CoordinateSystem to "geographic" and set TerrainMaterial to "custom".

Data Types: double

Surface Material

Surface material of Cartesian map surface, specified as one of these values: "plasterboard","perfect-reflector", "ceilingboard", "chipboard", "floorboard", "concrete", "brick", "wood", "glass", "metal", "water", "vegetation", "loam", or "custom". The model uses the material type to calculate reflection loss where propagation paths reflect off of surfaces. For more information, see ITU Permittivity and Conductivity Values for Common Materials.

When SurfaceMaterial is "custom", specify the material permittivity and conductivity by using the SurfaceMaterialPermittivity and SurfaceMaterialConductivity properties.

Dependencies

To enable SurfaceMaterial, you must set CoordinateSystem to "cartesian".

Data Types: char | string

Relative permittivity of the surface material, specified as a nonnegative scalar. Relative permittivity is expressed as a ratio of absolute material permittivity to the permittivity of vacuum. The model uses this value to calculate path loss due to reflection. The default value corresponds to plaster board at 1.9 GHz.

Dependencies

To enable SurfaceMaterialPermittivity, you must set CoordinateSystem to "cartesian" and SurfaceMaterial to "custom".

Data Types: double

Conductivity of the surface material, specified as a nonnegative scalar in siemens per meter (S/m). The model uses this value to calculate path loss due to reflection. The default value corresponds to plaster board at 1.9 GHz.

Dependencies

To enable SurfaceMaterialConductivity, you must set CoordinateSystem to "cartesian" and set SurfaceMaterial to "custom".

Data Types: double

Object Functions

pathlossPath loss of radio wave propagation
addAdd propagation models

Examples

collapse all

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 osm 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 model. Use the image method and 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. Display the propagation paths.

pm.Method = "sbr";
pm.MaxNumReflections = 2;
clearMap(viewer)
raytrace(tx,rx,pm)

The updated ray tracing model shows three propagation paths from the transmitter to the receiver.

Appendix

[1] The osm 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/.

Create a Site Viewer with buildings in Chicago. For more information about the .osm 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 model. By default, ray tracing models use the SBR method. Set the maximum number of reflections to 2. Then, display the coverage map.

pm = propagationModel("raytracing","Method","sbr", ...
    "MaxNumReflections",2);
coverage(tx,pm,"SignalStrengths",-100:5)

Appendix

[1] The .osm 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

expand all

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-1. ITU-R, approved July 29, 2015. https://www.itu.int/rec/R-REC-P.2040-1-201507-I/en.

[4] International Telecommunications Union Radiocommunication Sector. Electrical characteristics of the surface of the Earth. Recommendation P.527-5. ITU-R, approved August 14, 2019. https://www.itu.int/rec/R-REC-P.527-5-201908-I/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-15-201910-I/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.

Version History

Introduced in R2017b

expand all