coverage
Display or compute coverage map
Syntax
Description
coverage(
displays the coverage map
for the specified transmitter site in the current Site Viewer. Each colored contour
of the map defines an area where the corresponding signal strength is transmitted to
the mobile receiver.txs
)
This function only supports antenna sites with
CoordinateSystem
property set to
"geographic"
.
coverage(
displays the coverage map using information from the specified receiver site. The
function uses the receiver site to calculate the receiver gain and the receiver
antenna height, but does not use the latitude or longitude of the receiver site. For
more information about the receiver gain and the receiver antenna height, see the
txs
,rx
)ReceiverGain
and ReceiverAntennaHeight
name-value arguments.
coverage(___,
displays the coverage map using additional options specified by name-value
arguments.Name=Value
)
Examples
Coverage Map of Transmitter
Create a transmitter site at MathWorks headquarters.
tx = txsite(Name="MathWorks",Latitude=42.3001,Longitude=-71.3503);
Show the coverage map.
coverage(tx)
Coverage Map Using Transmitter and Receiver
Create a transmitter site at MathWorks headquarters.
tx = txsite(Name="MathWorks",Latitude=42.3001,Longitude=-71.3503);
Create a receiver site at Fenway Park with an antenna height of 1.2 m and system loss of 10 dB.
rx = rxsite(Name="Fenway Park",Latitude=42.3467,Longitude=-71.0972, ... AntennaHeight=1.2,SystemLoss=10);
Calculate the coverage area of the transmitter using a close-in propagation model.
coverage(tx,rx,PropagationModel="closein")
Coverage Map for Strong and Weak Signals
Define strong and weak signal strengths with corresponding colors.
strongSignal = -75; strongSignalColor = "green"; weakSignal = -90; weakSignalColor = "cyan";
Create a transmitter site and display the coverage map.
tx = txsite(Name="MathWorks", ... Latitude=42.3001, ... Longitude=-71.3503); coverage(tx,SignalStrengths=[strongSignal,weakSignal], ... Colors=[strongSignalColor,weakSignalColor])
Coverage Map of Directional Antenna in Rain
Define a Yagi-Uda antenna designed for a transmitter frequency of 4.5 GHz. Tilt the antenna to direct radiation in the XY-plane (i.e., geographic azimuth).
fq = 4.5e9;
y = design(yagiUda,fq);
y.Tilt = 90;
y.TiltAxis = "y";
Create a transmitter site with this directional antenna.
tx = txsite(Name="MathWorks", ... Latitude=42.3001,Longitude=-71.3503, ... Antenna=y,AntennaHeight=60, ... TransmitterFrequency=fq,TransmitterPower=10);
Display the coverage map using the rain propagation model. The map pattern points east, which corresponds to default antenna angle value of 0 degrees.
coverage(tx,"rain",SignalStrengths=-90)
Combined Coverage Map of Multiple Transmitters
Define the names and the locations of sites around Boston.
names = ["Fenway Park","Faneuil Hall","Bunker Hill Monument"]; lats = [42.3467,42.3598,42.3763]; lons = [-71.0972,-71.0545,-71.0611];
Create the transmitter site array.
txs = txsite(Name=names, ... Latitude=lats, ... Longitude=lons, ... TransmitterFrequency=2.5e9);
Display the combined coverage map for multiple signal strengths, using close-in propagation model.
coverage(txs,"close-in",SignalStrengths=-100:5:-60)
Coverage Map Using Longley-Rice and Ray Tracing Method
Launch Site Viewer using buildings in Chicago. For more information about the OpenStreetMap® file, see [1].
viewer = siteviewer(Buildings="chicago.osm");
Create a transmitter site on a building.
tx = txsite(Latitude=41.8800, ... Longitude=-87.6295, ... TransmitterFrequency=2.5e9); show(tx)
Coverage Map Using Longley-Rice Propagation Model
Create a coverage map of the city using the Longley-Rice propagation model.
coverage(tx,SignalStrengths=-100:-5,MaxRange=250,Resolution=1)
Longley-Rice models over-the-rooftops propagation along vertical slices and obstructions tend to dominate the coverage region.
Coverage Map Using Ray Tracing Propagation Model and Image Method
Create a ray tracing propagation model, which MATLAB® represents using a RayTracing
object. Configure the model to use the image method and to find propagation paths with up to 1
surface reflection.
pmImage = propagationModel("raytracing",Method="image", ... MaxNumReflections=1);
Create a coverage map of the city using the transmitter site and the ray tracing propagation model.
coverage(tx,pmImage,SignalStrengths=-100:-5, ...
MaxRange=250,Resolution=2)
This coverage map shows new regions that are in service due to reflected propagation paths.
Coverage Map Using Ray Tracing Propagation Model and SBR Method
Create another ray tracing propagation model. This time, configure the model to use the shooting and bouncing rays (SBR) method and to find propagation paths with up to 2
surface reflections. The SBR method is generally faster than the image method.
pmSBR = propagationModel("raytracing",Method="sbr", ... MaxNumReflections=2);
Create an updated coverage map of the city.
coverage(tx,pmSBR,SignalStrengths=-100:-5, ...
MaxRange=250,Resolution=2)
This coverage map shows new regions that are in service due to the additional reflected propagation paths.
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/.
Input Arguments
txs
— Transmitter sites
txsite
object | array of txsite
objects
Transmitter site, specified as a txsite
object or an array of txsite
objects.
This function only supports plotting antenna sites when the
CoordinateSystem
property is set to
"geographic"
.
rx
— Receiver site
rxsite
object
Receiver site, specified as an rxsite
object.
This function only supports plotting antenna sites when the
CoordinateSystem
property is set to
"geographic"
.
propmodel
— Propagation model to use for path loss calculations
"longley-rice"
(default) | "freespace"
| "close-in"
| "rain"
| "gas"
| "fog"
| "raytracing"
| propagation model created using propagationModel
Propagation model to use for the path loss calculations, specified as one of these options:
"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. When you specify a ray tracing model as input, the function incorporates multipath interference by using a phasor sum.A propagation model created using the
propagationModel
function. For example, you can create a ray tracing propagation model that uses the image method by specifyingpropagationModel("raytracing","Method","image")
.
The default value depends on the coordinate system used by the input sites.
Coordinate System | Default propagation model value |
---|---|
"geographic" |
|
"cartesian" |
|
Terrain propagation models, including "longley-rice"
and
"tirem"
, are only supported for sites with a
CoordinateSystem
value of
"geographic"
.
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.
Example: coverage(txs,Type="efield")
specifies the signal
strength units as electric field strength units (dBμV/m).
Before R2021a, use commas to separate each name and value, and enclose
Name
in quotes.
Example: coverage(txs,"Type","efield")
specifies the signal
strength units as electric field strength units (dBμV/m).
Type
— Type of signal strength to compute
"power"
(default) | "efield"
Type of signal strength to compute, specified as one of these options:
"power"
— The signal strengths inSignalStrengths
is in power units (dBm) of the signal at the mobile receiver input."efield"
— The signal strength inSignalStrengths
is in electric field strength units (dBμV/m) of signal wave incident on the antenna.
Data Types: char
| string
SignalStrengths
— Signal strengths to display on coverage map
numeric vector
Signal strengths to display on coverage map, specified as a numeric vector.
Each strength uses different colored filled contour on the map. The
default value is -100
dBm if
Type
is "power"
and
40
dBμV/m if Type
is
"efield"
.
Data Types: double
PropagationModel
— Propagation model to use for path loss calculations
"freespace"
| "close-in"
| "rain"
| "gas"
| "fog"
| "longley-rice"
| "raytracing"
| propagation model created using propagationModel
Propagation model to use for the path loss calculations, specified as one of these options:
"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. When you specify a ray tracing model as input, the function incorporates multipath interference by using a phasor sum.A propagation model created using the
propagationModel
function. For example, you can create a ray tracing propagation model that uses the image method by specifyingpropagationModel("raytracing","Method","image")
.
The default value depends on the coordinate system used by the input sites.
Coordinate System | Default propagation model value |
---|---|
"geographic" |
|
"cartesian" |
|
Terrain propagation models, including "longley-rice"
and
"tirem"
, are only supported for sites with a
CoordinateSystem
value of
"geographic"
.
Data Types: char
| string
ReceiverGain
— Mobile receiver gain in dBi
2.1
(default) | numeric scalar
Mobile receiver gain, specified as a numeric scalar in dBi. The receiver gain value includes the mobile receiver antenna gain and system loss.
The receiver gain computes received signal strength when
Type
is "power"
.
If you specify the rx
argument, then the default
value is the maximum gain of the receiver antenna with the system loss
subtracted. Otherwise, the default value is
2.1
.
Data Types: char
| string
| double
ReceiverAntennaHeight
— Height of phase center of receiver antenna in m
1
(default) | numeric scalar
Height above the ground of the phase center of the receiver antenna, specified as a numeric scalar in m.
If you specify the receiver site argument rx
,
then the default value is the AntennaHeight
property of the receiver site. Otherwise the default value is 1.
Data Types: double
Map
— Map for visualization of surface data
siteviewer
object
Map for visualization of surface data, specified as a
siteviewer
object.1
Data Types: char
| string
MaxRange
— Maximum range in m
numeric scalar
Maximum range of the coverage map from each transmitter site,
specified as a positive numeric scalar in m representing great circle
distance. MaxRange
defines the region of interest
on the map to plot. The default value is automatically computed based on
the type of propagation model.
Type of Propagation Model | Default Maximum Range |
---|---|
Atmospheric or empirical | Range of minimum value in
SignalStrengths |
Terrain | The minimum of 30 km and the distance to the furthest building |
Ray tracing | 500 m |
For more information about the types of propagation models, see Choose a Propagation Model.
Data Types: double
Resolution
— Resolution of coverage map
"auto"
(default) | numeric scalar
Resolution of the coverage map, specified as "auto"
or a numeric scalar in m. If the resolution is
"auto"
, the function computes the maximum value
scaled to MaxRange
. Decreasing the resolution
increases the quality of the coverage map and the time required to
create it.
Data Types: char
| string
| double
Colors
— Colors of filled contours on coverage map
M-by-3 array of RGB triplets | array of strings | cell array of character vectors
Colors of filled contours on the coverage map, specified as one of these options:
An M-by-3 array of RGB triplets whose elements specify the intensities of the red, green, and blue components of the color. The intensities must be in the range
[0,1]
; for example,[0.4 0.6 0.7]
.An array of strings such as
["red" "green" "blue"]
or["r" "g" "b"]
.A cell array of character vectors such as
{'red','green','blue'}
or{'r','g','b'}
.
Colors are assigned element-wise to
SignalStrengths
values for coloring the
corresponding filled contours.
Colors
cannot be used with
ColorLimits
or
ColorMap
.
This table contains the color names and equivalent RGB triplets for some common colors.
Color Name | Short Name | RGB Triplet | Appearance |
---|---|---|---|
"red" | "r" | [1 0 0] |
|
"green" | "g" | [0 1 0] |
|
"blue" | "b" | [0 0 1] |
|
"cyan"
| "c" | [0 1 1] |
|
"magenta" | "m" | [1 0 1] |
|
"yellow" | "y" | [1 1 0] |
|
"black" | "k" | [0 0 0] |
|
"white" | "w" | [1 1 1] |
|
Data Types: char
| string
| double
ColorLimits
— Color limits for colormap
two-element vector
Color limits for colormap, specified as a two-element vector of the
form [cmin cmax]
. The value of
cmin
must be less than cmax
.
The color limits indicate the signal level values that map to the first and last colors on the colormap.
The default value is [-120 -5]
if the
Type
is "power"
and
[20 135]
if Type
is
"efield"
.
ColorLimits
cannot be used with
Colors
.
Data Types: double
ColorMap
— Colormap filled contours for coverage map
"jet"
(default) | predefined color map | M-by-3 array of RGB triplets
Colormap for coloring filled contours, specified as a predefined
colormap or an M-by-3
array of RGB
triplets, where M is the number of individual
colors.
ColorMap
cannot be used with
Colors
.
Data Types: char
| string
| double
ShowLegend
— Show signal strength color legend on map
true
(default) | false
Show signal strength color legend on map, specified as
true
or false
.
Data Types: logical
Transparency
— Transparency of coverage map
0.4
(default) | numeric scalar
Transparency of coverage map, specified as a numeric scalar in the
range 0
to 1
. 0
is transparent and 1
is opaque.
Data Types: double
Output Arguments
pd
— Coverage data
propagationData
object
Coverage data, returned as a propagationData
object
consisting of Latitude and Longitude,
and a signal strength variable corresponding to the plot type. Name of the
propagationData
is "Coverage
Data"
.
Coverage data, returned as a propagationData
object with these properties:
Name
has a value of'Coverage Data'
.Data
contains a table withLatitude
,Longitude
, and, depending on the value ofType
,Power
orEfield
table variables.DataVariableName
has a value of'Power'
or'Efield'
.
Limitations
When you specify a RayTracing
object as
input to the coverage
function, the value of the
MaxNumDiffractions
property must be 0
or
1
.
References
[1] 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.
[2] 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.
Version History
Introduced in R2017bR2024b: Ray tracing analysis shows improved performance in scenes with buildings
The coverage
function shows improved performance in scenes
with buildings when you specify a RayTracing
propagation model object as input.
For example, the following code creates a coverage map for an antenna site in an
urban scene by using the coverage
function and a
RayTracing
propagation model object created using the propagationModel
function. The code that creates the coverage map is
about 1.2x faster in R2024b than in R2024a.
function timingTest % Create Site Viewer and site sv = siteviewer(Buildings="chicago.osm"); tx = txsite(Latitude=41.88,Longitude=-87.6295, ... TransmitterFrequency=2.5e9); % Create RayTracing object pm = propagationModel("raytracing", ... MaxNumReflections=1,MaxNumDiffractions=1); % Create coverage map t1 = tic; coverage(tx,pm) toc(t1) close(sv) end
The approximate execution times are:
R2024b: 112 s
R2024a: 133 s
This code was timed on a Windows® 11, AMD EPYC™ 74F3 24-Core Processor @ 3.19 GHz test system by calling the function
timingTest
.
You can download the OpenStreetMap file used in this example 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/.
R2024a: Ray tracing functions model materials using updated ITU recommendations
When calculating coverage using ray tracing models, the
coverage
function models materials using the methods and
equations in International Telecommunication Union Recommendations (ITU-R) P.2040-3
[1] and ITU-R P.527-5
through ITU-R P.527-6 [2].
In previous releases, the function used ITU-R P.2040-1. As a result of these
changes, the coverage
function can return different values
in R2024a compared to previous releases.
R2023b: Perform ray tracing analysis with multiple materials in the same scene
The coverage
function performs ray tracing analysis with
multiple materials in the same scene when you create the scene from an OpenStreetMap® file or a geospatial table, and you specify the
propmodel
input argument as "raytracing"
or a RayTracing
propagation model object with its
BuildingsMaterial
property set to "auto"
(the default).
The coverage
function performs the ray tracing analysis
using the materials stored in the file or table. If the file or table does not
specify materials, or if the file or table specifies a material that the ray tracing
analysis does not support, then the function uses concrete instead of the absent or
unsupported material.
As a result, the coverage
function can return different
values in R2023b compared to previous releases. To avoid using the materials stored
in the file or table, create a RayTracing
object (by using the
propagationModel
function) and set its
BuildingsMaterial
property to
"concrete"
. Then, use the object as input to the
coverage
function.
R2023b: Ray tracing analysis with SBR method shows improved performance in complex scenes
The coverage
function shows improved performance with complex scenes when you specify a RayTracing
propagation model object that uses the shooting and bouncing rays (SBR) method as input.
The time that MATLAB® requires to perform ray tracing analysis depends on the scene and on the
properties of the RayTracing
object, such as the
AngularSeparation
, MaxNumDiffractions
,
MaxNumReflections
, MaxAbsolutePathLoss
, and
MaxRelativePathLoss
properties. In some cases, with moderate values
of the MaxAbsolutePathLoss
and MaxRelativePathLoss
properties, the ray tracing analysis can be more than 2x faster in R2023b than in
R2023a.
R2023a: Ray tracing models discard paths based on path loss
Ray tracing propagation models discard propagation paths based on path loss
thresholds. By default, when you specify the propmodel
input
argument as "raytracing"
or a RayTracing
object, the propagation model discards paths that are more than 40 dB weaker than
the strongest path.
As a result, the coverage
function can return different
values in R2023a compared to previous releases. To avoid discarding paths based on
relative path loss thresholds, create a RayTracing
object (by using
the propagationModel
function) and set its
MaxRelativePathLoss
property to Inf
.
Then, use the object as input to the coverage
function.
R2022b: Ray tracing functions consider multipath interference
When calculating coverage using ray tracing models, the
coverage
function now incorporates multipath interference
by using a phasor sum. In previous releases, the function used a power sum. As a
result, the calculations in R2022b are more accurate than in previous
releases.
R2021b: "raytracing"
propagation models use SBR method
Starting in R2021b, when you use the coverage
function and
specify the propmodel
argument or
PropagationModel
name-value argument as
"raytracing"
, the function uses the shooting and bouncing
rays (SBR) method and calculates up to two reflections. In previous releases, the
coverage
function uses the image method and calculates up
to one reflection.
To display or compute coverage maps using the image method instead, create a
propagation model by using the propagationModel
function. Then, use the
coverage
function with the propagation model as input. This
example shows how to update your
code.
pm = propagationModel("raytracing","Method","image"); coverage(txs,pm)
For information about the SBR and image methods, see Choose a Propagation Model.
Starting in R2021b, all RF Propagation functions use the SBR method by default and calculate up to two reflections. For more information, see Default modeling method is shooting and bouncing rays method.
1 Alignment of boundaries and region labels are a presentation of the feature provided by the data vendors and do not imply endorsement by MathWorks®.
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: .
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)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)