Main Content


Received signal strength



ss = sigstrength(rx,tx) returns the signal strength at the receiver site due to the transmitter site.

ss = sigstrength(rx,tx,propmodel) returns the signal strength at the receiver site using the specified propagation model. Specifying a propagation model is the same as specifying the 'PropagationModel' name-value argument.

ss = sigstrength(___,Name,Value) returns the signal strength using additional options specified by name-value arguments and either of the previous syntaxes.


collapse all

Create a transmitter site.

tx = txsite('Name','Fenway Park', ...
        'Latitude', 42.3467, ...
        'Longitude', -71.0972);

Create a receiver site with sensitivity defined (in dBm).

 rx = rxsite('Name','Bunker Hill Monument', ...
        'Latitude', 42.3763, ...
        'Longitude', -71.0611, ...
        'ReceiverSensitivity', -90);

Calculate the received power and link margin. Link margin is the difference between the receiver's sensitivity and the received power.

ss = sigstrength(rx,tx)
ss = -71.1414
margin = abs(rx.ReceiverSensitivity - ss)
margin = 18.8586

Launch 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.

tx = txsite('Latitude',41.8800, ...
    'Longitude',-87.6295, ...

Create a receiver site near another building.

rx = rxsite('Latitude',41.881352, ...
    'Longitude',-87.629771, ...

Compute the signal strength by using a ray tracing propagation model. By default, the ray tracing model uses the SBR method, and performs line-of-sight and two-reflection analysis.

pm = propagationModel("raytracing");
ssTwoReflections = sigstrength(rx,tx,pm)
ssTwoReflections = -52.4056

Plot the propagation paths for SBR with up to two reflections.


Compute signal strength with analysis up to two reflections, where total received power is the cumulative power of all propagation paths

pm.MaxNumReflections = 5;
ssFiveReflections = sigstrength(rx,tx,pm)
ssFiveReflections = -51.8927

Observe the effect of material by replacing default concrete material with perfect reflector.

pm.BuildingsMaterial = 'perfect-reflector';
ssPerfect = sigstrength(rx,tx,pm)
ssPerfect = -38.8614

Plot the propagation paths for SBR with up to five reflections.



[1] The osm file is downloaded from, 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),

Input Arguments

collapse all

Receiver site, specified as a rxsite object. You can use array inputs to specify multiple sites.

Transmitter site, specified as a txsite object. You can use array inputs to specify multiple sites.

Propagation model, specified as a character vector, a string, or a propagation model created with the propagationModel function. The default value depends on the coordinate system used by the input sites.

Coordinate SystemDefault propagation model value
  • 'longley-rice' when you use a terrain.

  • 'freespace' when you do not use a terrain.

  • 'freespace' when Map is set to none.

  • 'raytracing' when Map is set to the name of an STL file or a triangulation object. The default ray tracing model uses the shooting and bouncing rays (SBR) method.

You can also specify the propagation model by using the 'PropagationModel' name-value pair argument.

Name-Value Arguments

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and enclose Name in quotes.

Example: 'Type','power'

Type of signal strength to compute, specified as the comma-separated pair consisting of 'Type and 'power' or 'efield'.

When type is 'power', signal strength is expressed in power units (dBm) of the signal at the mobile receiver input. When type is 'efield', signal strength is expressed in electric field strength units (dBμV/m) of signal wave incident on the antenna.

The sigstrength function is not supported for ray tracing models when 'Type' is 'efield'.

Data Types: char | string

Propagation model to use for the path loss calculations, specified as the comma-separated pair consisting of 'PropagationModel' and one of the following:

  • 'freespace' — Free space propagation model

  • 'rain' — Rain propagation model

  • 'gas' — Gas propagation model

  • 'fog' — Fog propagation model

  • 'close-in' — Close-in propagation model

  • 'longley-rice' — Longley-Rice propagation model

  • 'tirem' — Tirem propagation model

  • 'raytracing' — Ray tracing propagation model that uses the shooting and bouncing rays (SBR) method

  • A propagation model created with the propagationModel function

The default propagation model is 'longley-rice' when terrain is enabled and 'freespace' when terrain is disabled.

Terrain propagation models, including 'longley-rice' and 'tirem', are only supported for sites with a CoordinateSystem value of 'geographic'.

Data Types: char

Map for visualization or surface data, specified as a siteviewer object, a triangulation object, a string scalar, or a character vector. Valid and default values depend on the coordinate system.

Coordinate SystemValid map valuesDefault map value
  • A siteviewer objecta.

  • A terrain name, if the function is called with an output argument. Valid terrain names are 'none', 'gmted2010', or the name of the custom terrain data added using addCustomTerrain.

  • The current siteviewer object or a new siteviewer object if none are open.

  • 'gmted2010', if the function is called with an output.

  • 'none'.

  • A siteviewer object.

  • The name of an STL file.

  • A triangulation object.

  • 'none'.

a Alignment of boundaries and region labels are a presentation of the feature provided by the data vendors and do not imply endorsement by MathWorks®.

Data Types: char | string

Output Arguments

collapse all

Signal strength, returned as M-by-N array in dBm. M is the number of transmitter sites and N is the number of receiver sites.

Version History

Introduced in R2017b

expand all

Behavior changed in R2021b