Main Content

RF Propagation and Visualization

RF propagation models describe the behavior of signals as they travel through the environment. You can display transmitter sites, receiver sites, and RF propagation visualizations by using Site Viewer, an interactive 3-D viewer. Site Viewer enables you to visualize propagation models in both outdoor and indoor environments.

Visualize Outdoor Wireless Coverage

Display transmitter and receiver sites on a 3-D globe, calculate the distance and angles between the sites, and analyze the signal strength of the transmitter at the receiver site. Display a communication link, a coverage map, and a signal-to-interference-plus-noise ratio (SINR) map.

Display Sites

Create a transmitter site and a receiver site. Specify the position using geographic coordinates in degrees.

tx = txsite("Latitude",42.3001,"Longitude",-71.3504);
rx = rxsite("Latitude",42.3021,"Longitude",-71.3764);

Display the sites in Site Viewer. Site Viewer displays geographic sites on an interactive 3-D globe. You can customize the propagation environment of the 3-D globe by using DTED terrain and OpenStreetMap® buildings.


Pan the map by clicking and dragging. Zoom out by using the scroll wheel.

Find Distance and Angles

Calculate the distance between the sites in meters. By default, the distance function calculates the distance along a straight line between the sites. This straight-line path is called the Euclidean path and ignores all obstructions, including the Earth.

dm = distance(tx,rx)
dm = 2.1556e+03

You can also calculate distance using a great circle path, which considers the curvature of the Earth.

Calculate the azimuth and elevation angles between the sites. For geographic sites, the angle function returns the azimuth angle in degrees, measured counterclockwise from the east. The angle function returns the elevation angle in degrees from the horizontal plane.

[az,el] = angle(tx,rx)
az = 174.0753
el = -0.7267

Analyze Signal Strength

The signal strength of a transmitter at a receiver site is given by the following equation:



  • Prx is the power available at the receiver.

  • Ptx is the transmitter output power.

  • Gtx is the transmitter gain.

  • Grx = is the receiver gain.

  • pathloss is the RF attenuation suffered by the transmitter signal when it arrives at the receiver.

Calculate the signal strength at the desk receiver site. By default, the sigstrength function calculates signal strength in power units (dBm). You can also calculate the signal strength in electric field strength units (dBμV/m).

ss = sigstrength(rx,tx)
ss = -67.0767

The link margin measures the robustness of the communication link. Calculate the link margin by subtracting the required receiver sensitivity from the signal strength.

margin = abs(rx.ReceiverSensitivity - ss)
margin = 32.9233

Display Communication Link

Display the communication link status between the sites. The success of the link depends on the power received by the receiver from the transmitter. By default, a green line indicates that the received power meets or exceeds the receiver sensitivity. A red line indicates unsuccessful communication.


Display Coverage Map

Display the coverage map of the transmitter. A coverage map visualizes the service area of the transmitter, which is where the received signal strength for a reference receiver meets its sensitivity. You can create coverage maps that depict signal strength as either a power quantity (typically dBm) or a voltage quantity (typically dBμV/m).


Find New Transmitter Site

Create and display a new transmitter site that is 1 km north of the existing transmitter site. Specify the antenna height as 30 m.

[lat,lon] = location(tx,1000,90);
tx2 = txsite("Latitude",lat,"Longitude",lon,"AntennaHeight",30);

Calculate SINR

Calculate the SINR in decibels. The SINR of a receiver is given by the following equation:



  • S is the received power of the signal of interest.

  • I is the received power of interfering signals in the network.

  • N is the total received noise power.

When Site Viewer has terrain data, the sinr function incorporates the terrain into the calculations.


Visualize Indoor Propagation Paths

Import a 3-D scene model of a conference room. Display sites and find propagation paths between the sites.

Import Scene

Import and view an STL file. The file models an indoor office with a conference room and open space separated by a partial wall. STL files contain geometry information and do not contain information about colors, surfaces, or textures.

viewer = siteviewer(SceneModel="office.stl",ShowOrigin=false);

Display Sites

Place one transmitter near the ceiling in the conference room. Place one receiver on a desk in the open space and another receiver on a shelf. Specify the position using Cartesian coordinates in meters.

tx = txsite("cartesian",AntennaPosition=[2; 1.3; 2.5]);
rx_desk = rxsite("cartesian",AntennaPosition=[3.6; 7.5; 1]);
rx_shelf = rxsite("cartesian",AntennaPosition=[0.4; 3.3; 1]);

Display the receivers and the line-of-sight paths.

los(tx,[rx_desk rx_shelf])

Pan the scene by left-clicking, zoom by right-clicking or by using the scroll wheel, and rotate by clicking the middle button and dragging or by pressing Ctrl and left-clicking and dragging.

Site Viewer with office model showing line-of-sight paths from the transmitter site to the receiver sites

The path to the shelf receiver is clear and the path to the desk receiver is obstructed.

Display Propagation Paths

Create a ray tracing propagation model, which MATLAB® represents using a RayTracing object. Configure the model to use a Cartesian coordinate system and wooden surface materials. By default, the model uses the shooting and bouncing rays (SBR) method.

pm = propagationModel("raytracing", ...
    CoordinateSystem="cartesian", ...

Display propagation paths that are within the line of sight by setting the MaxNumReflections property to 0. Unlike the los function, the raytrace function does not show obstructed paths.

pm.MaxNumReflections = 0;
raytrace(tx,[rx_desk rx_shelf],pm)

Line-of-sight path from the transmitter site to a receiver site.

The raytrace function finds one line-of-sight path. You can view information about the path, such as the received power, by clicking on the path.

Display propagation paths with up to one reflection.

pm.MaxNumReflections = 1;
raytrace(tx,[rx_desk rx_shelf],pm)

Reflected propagation paths from the transmitter site to the receiver sites

Display propagation paths with up to one reflection and one diffraction.

pm.MaxNumDiffractions = 1;
raytrace(tx,[rx_desk rx_shelf],pm)

Reflected and diffracted propagation paths from the transmitter site to the receiver sites

See Also



Related Topics