pattern
System object: phased.PartitionedArray
Package: phased
Plot partitioned array directivity, field, and power patterns
Syntax
pattern(sArray,FREQ)
pattern(sArray,FREQ,AZ)
pattern(sArray,FREQ,AZ,EL)
pattern(___,Name,Value)
[PAT,AZ_ANG,EL_ANG] = pattern(___)
Description
pattern(
plots
the 3D array directivity pattern (in dBi) for the array specified
in sArray
,FREQ
)sArray
. The operating frequency is specified
in FREQ
.
The integration used when computing array directivity has a minimum sampling grid of 0.1 degrees. If an array pattern has a beamwidth smaller than this, the directivity value will be inaccurate.
pattern(
plots
the array directivity pattern at the specified azimuth angle.sArray
,FREQ
,AZ
)
pattern(
plots
the array directivity pattern at specified azimuth and elevation angles.sArray
,FREQ
,AZ
,EL
)
pattern(___,
plots the array pattern with additional options specified by one or
more Name,Value
)Name,Value
pair arguments.
returns the array pattern in [PAT,AZ_ANG,EL_ANG]
= pattern(___)PAT
. The AZ_ANG
output
contains the coordinate values corresponding to the rows of PAT
.
The EL_ANG
output contains the coordinate values
corresponding to the columns of PAT
. If the 'CoordinateSystem'
parameter
is set to 'uv'
, then AZ_ANG
contains
the U coordinates of the pattern and EL_ANG
contains
the V coordinates of the pattern. Otherwise, they
are in angular units in degrees. UV units are dimensionless.
Note
This method replaces the plotResponse
method.
See Convert plotResponse to pattern for
guidelines on how to use pattern
in place of plotResponse
.
Input Arguments
sArray
— Partitioned array
System object™
Partitioned array, specified as a phased.PartitionedArray
System object.
Example: sArray= phased.PartitionedArray;
FREQ
— Frequency for computing directivity and patterns
positive scalar  1byL realvalued row vector
Frequencies for computing directivity and patterns, specified as a positive scalar or 1byL realvalued row vector. Frequency units are in hertz.
For an antenna, microphone, or sonar hydrophone or projector element,
FREQ
must lie within the range of values specified by theFrequencyRange
orFrequencyVector
property of the element. Otherwise, the element produces no response and the directivity is returned as–Inf
. Most elements use theFrequencyRange
property except forphased.CustomAntennaElement
andphased.CustomMicrophoneElement
, which use theFrequencyVector
property.For an array of elements,
FREQ
must lie within the frequency range of the elements that make up the array. Otherwise, the array produces no response and the directivity is returned as–Inf
.
Example: [1e8 2e6]
Data Types: double
AZ
— Azimuth angles
[180:180]
(default)  1byN realvalued row vector
Azimuth angles for computing directivity and pattern, specified as a 1byN realvalued row vector where N is the number of azimuth angles. Angle units are in degrees. Azimuth angles must lie between –180° and 180°.
The azimuth angle is the angle between the xaxis and the projection of the direction vector onto the xy plane. When measured from the xaxis toward the yaxis, this angle is positive.
Example: [45:2:45]
Data Types: double
EL
— Elevation angles
[90:90]
(default)  1byM realvalued row vector
Elevation angles for computing directivity and pattern, specified as a 1byM realvalued row vector where M is the number of desired elevation directions. Angle units are in degrees. The elevation angle must lie between –90° and 90°.
The elevation angle is the angle between the direction vector and xyplane. The elevation angle is positive when measured towards the zaxis.
Example: [75:1:70]
Data Types: double
NameValue Arguments
Specify optional pairs of arguments as
Name1=Value1,...,NameN=ValueN
, where Name
is
the argument name and Value
is the corresponding value.
Namevalue 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.
CoordinateSystem
— Plotting coordinate system
'polar'
(default)  'rectangular'
 'uv'
Plotting coordinate system of the pattern, specified as the
commaseparated pair consisting of 'CoordinateSystem'
and
one of 'polar'
, 'rectangular'
,
or 'uv'
. When 'CoordinateSystem'
is
set to 'polar'
or 'rectangular'
,
the AZ
and EL
arguments
specify the pattern azimuth and elevation, respectively. AZ
values
must lie between –180° and 180°. EL
values
must lie between –90° and 90°. If 'CoordinateSystem'
is
set to 'uv'
, AZ
and EL
then
specify U and V coordinates,
respectively. AZ
and EL
must
lie between 1 and 1.
Example: 'uv'
Data Types: char
Type
— Displayed pattern type
'directivity'
(default)  'efield'
 'power'
 'powerdb'
Displayed pattern type, specified as the commaseparated pair
consisting of 'Type'
and one of
'directivity'
— directivity pattern measured in dBi.'efield'
— field pattern of the sensor or array. For acoustic sensors, the displayed pattern is for the scalar sound field.'power'
— power pattern of the sensor or array defined as the square of the field pattern.'powerdb'
— power pattern converted to dB.
Example: 'powerdb'
Data Types: char
Orientation
— Array orientation
[0;0;0]
. (default)  3by1 realvalued column vector
Array orientation, specified as a 3by1 realvalued column vector containing the rotation angles with respect to the x, y, and zaxes of the local coordinate system, respectively.
Normalize
— Display normalize pattern
true
(default)  false
Display normalized pattern, specified as the commaseparated pair consisting of
'Normalize
' and a Boolean. Set this parameter to
true
to display a normalized pattern. This parameter does not
apply when you set 'Type'
to 'directivity'
.
Directivity patterns are already normalized.
Data Types: logical
ShowArray
— View array geometry
false
(default)  true
View the array geometry along with the 3D radiation pattern, specified as
false
or true
.
Data Types: logical
ShowLocalCoordinates
— Show local coordinate axes
true
(default)  false
Show the local coordinate axes, specified as true
or false
.
Data Types: logical
ShowColorbar
— Show colorbar
true
(default)  false
Show the colorbar, specified as true
or false
.
Data Types: logical
Parent
— Handle to axis
scalar
Handle to the axes along which the array geometry is displayed specified as a scalar.
PlotStyle
— Plotting style
'overlay'
(default)  'waterfall'
Polarization
— Polarized field component
'combined'
(default)  'H'
 'V'
Polarized field component to display, specified as the commaseparated pair consisting of
'Polarization' and 'combined'
, 'H'
, or
'V'
. This parameter applies only when the sensors are
polarizationcapable and when the 'Type'
parameter is not set to
'directivity'
. This table shows the meaning of the display
options.
'Polarization'  Display 

'combined'  Combined H and V polarization components 
'H'  H polarization component 
'V'  V polarization component 
Example: 'V'
Data Types: char
PropagationSpeed
— Signal propagation speed
speed of light (default)  positive scalar
Signal propagation speed, specified as the commaseparated pair
consisting of 'PropagationSpeed'
and a positive
scalar in meters per second.
Example: 'PropagationSpeed',physconst('LightSpeed')
Data Types: double
Weights
— Subarray weights
1 (default)  Nby1 complexvalued column vector  NbyL complexvalued
matrix
Subarray weights, specified as the commaseparated pair consisting
of 'Weights
' and an Nby1 complexvalued
column vector or NbyM complexvalued
matrix. The dimension N is the number of subarrays
in the array. The dimension L is the number of
frequencies specified by the FREQ
argument.
Weights dimension  FREQ dimension  Purpose 

Nby1 complexvalued column vector  Scalar or 1byL row vector  Applies a set of weights for the single frequency or for all L frequencies. 
NbyL complexvalued matrix  1byL row vector  Applies each of the L columns of ‘Weights’ for
the corresponding frequency in the FREQ argument. 
Example: 'Weights',ones(N,M)
Data Types: double
SteerAngle
— Subarray steering angle
[0;0]
(default)  scalar  2element column vector
Subarray steering angle, specified as the commaseparated pair
consisting of 'SteerAngle'
and a scalar or a 2by1
column vector.
If 'SteerAngle'
is a 2by1 column vector,
it has the form [azimuth; elevation]
. The azimuth
angle must be between –180° and 180°, inclusive.
The elevation angle must be between –90° and 90°,
inclusive.
If 'SteerAngle'
is a scalar, it specifies
the azimuth angle only. In this case, the elevation angle is assumed
to be 0.
This option applies only when the 'SubarraySteering'
property
of the System object is set to 'Phase'
or 'Time'
.
Example: 'SteerAngle',[20;30]
Data Types: double
ElementWeights
— Weights applied to elements within subarray
1
(default)  complexvalued N_{SE}byN
matrix  1byN cell array
Subarray element weights, specified as complexvalued N_{SE}byN matrix or 1byN cell array. Weights are applied to the individual elements within a subarray. Subarrays can have different dimensions and sizes.
If ElementWeights
is a complexvalued
N_{SE}byN matrix,
N_{SE} is the number of elements in the
largest subarray and N is the number of subarrays. Each column of the
matrix specifies the weights for the corresponding subarray. Only the first
K entries in each column are applied as weights where
K is the number of elements in the corresponding subarray.
If ElementWeights
is a 1byN cell array. Each
cell contains a complexvalued column vector of weights for the corresponding subarray.
The column vectors have lengths equal to the number of elements in the corresponding
subarray.
Dependencies
To enable this namevalue pair, set the SubarraySteering
property of the array to 'Custom'
.
Data Types: double
Complex Number Support: Yes
Output Arguments
Examples
Azimuth Response of Partitioned ULA
Plot the azimuth response of a 4element ULA partitioned into two 2element ULA's. The element spacing is onehalf wavelength.
Create the ULA, and partition it into two 2element ULA's.
sULA = phased.ULA('NumElements',4,'ElementSpacing',0.5); sPA = phased.PartitionedArray('Array',sULA,... 'SubarraySelection',[1 1 0 0;0 0 1 1]);
Plot the azimuth response of the array. Assume the operating frequency is 1 GHz and the propagation speed is the speed of light.
fc = 1e9; pattern(sPA,fc,[180:180],0,'Type','powerdb',... 'CoordinateSystem','polar',... 'Normalize',true)
Plot Pattern and Directivity of Partitioned URA Over Restricted Range of Angles
Convert a 2by6 URA of isotropic antenna elements into a 1by3 partitioned array so that each subarray of the partitioned array is a 2by2 URA. Assume that the frequency response of the elements lies between 1 and 6 GHz. The elements are spaced onehalf wavelength apart corresponding to the highest frequency of the element response. Plot an azimuth cut from 50 to 50 degrees for different two sets of weights. For partitioned arrays, weights are applied to the subarrays instead of the elements.
Create partitioned array
fmin = 1e9; fmax = 6e9; c = physconst('LightSpeed'); lam = c/fmax; sIso = phased.IsotropicAntennaElement(... 'FrequencyRange',[fmin,fmax],... 'BackBaffled',false); sURA = phased.URA('Element',sIso,'Size',[2,6],... 'ElementSpacing',[lam/2,lam/2]); subarraymap = [[1,1,1,1,0,0,0,0,0,0,0,0];... [0,0,0,0,1,1,1,1,0,0,0,0];... [0,0,0,0,0,0,0,0,1,1,1,1]]; sPA = phased.PartitionedArray('Array',sURA,... 'SubarraySelection',subarraymap);
Plot power pattern
Plot the response of the array at 5 GHz over the restricted range of azimuth angles.
fc = 5e9; wts = [[1,1,1]',[.862,1.23,.862]']; pattern(sPA,fc,[50:0.1:50],0,... 'Type','powerdb',... 'CoordinateSystem','polar',... 'Weights',wts)
The plot of the response shows the broadening of the main lobe and the reduction of the strength of the sidelobes caused by the weight tapering.
Plot directivity
Plot an azimuth cut of the directivity of the array at 5 GHz over the restricted range of azimuth angles for the two different sets of weights.
fc = 5e9; wts = [[1,1,1]',[.862,1.23,.862]']; pattern(sPA,fc,[50:0.1:50],0,... 'Type','directivity',... 'CoordinateSystem','rectangular',... 'Weights',wts)
More About
Directivity
Directivity describes the directionality of the radiation pattern of a sensor element or array of sensor elements.
Higher directivity is desired when you want to transmit more radiation in a specific direction. Directivity is the ratio of the transmitted radiant intensity in a specified direction to the radiant intensity transmitted by an isotropic radiator with the same total transmitted power
$$D=4\pi \frac{{U}_{\text{rad}}\left(\theta ,\phi \right)}{{P}_{\text{total}}}$$
where U_{rad}(θ,φ) is the radiant intensity of a transmitter in the direction (θ,φ) and P_{total} is the total power transmitted by an isotropic radiator. For a receiving element or array, directivity measures the sensitivity toward radiation arriving from a specific direction. The principle of reciprocity shows that the directivity of an element or array used for reception equals the directivity of the same element or array used for transmission. When converted to decibels, the directivity is denoted as dBi. For information on directivity, read the notes on Element Directivity and Array Directivity.
Convert plotResponse to pattern
For antenna, microphone, and array System objects, the pattern
method
replaces the plotResponse
method. In addition, two new
simplified methods exist just to draw 2D azimuth and elevation pattern plots. These
methods are patternAzimuth
and
patternElevation
.
The following table is a guide for converting your code from
using plotResponse
to pattern
.
Notice that some of the inputs have changed from input arguments to NameValue pairs
and conversely. The general pattern
method syntax
is
pattern(H,FREQ,AZ,EL,'Name1','Value1',...,'NameN','ValueN')
plotResponse Inputs  plotResponse Description  pattern Inputs  

H argument  Antenna, microphone, or array System object.  H argument (no change)  
FREQ argument  Operating frequency.  FREQ argument (no change)  
V argument  Propagation speed. This argument is used only for arrays.  'PropagationSpeed' namevalue pair. This
parameter is only used for arrays.  
'Format' and 'RespCut' namevalue
pairs  These options work together to let you create a plot
in angle space (line or polar style) or UV space.
They also determine whether the plot is 2D or 3D. This table shows
you how to create different types of plots using

If you set  
'CutAngle' namevalue pair  Constant angle at to take an azimuth or elevation cut. When
producing a 2D plot and when 'RespCut' is set
to 'Az' or 'El' , use 'CutAngle' to
set the slice across which to view the plot.  No equivalent namevalue pair. To create a cut, specify either AZ or EL as
a scalar, not a vector.  
'NormalizeResponse' namevalue pair  Normalizes the plot. When 'Unit' is set
to 'dbi' , you cannot specify 'NormalizeResponse' .  Use the  
'OverlayFreq' namevalue pair  Plot multiple frequencies on the same 2D plot. Available only
when 'Format' is set to 'line' or 'uv' and 'RespCut' is
not set to '3D' . The value true produces
an overlay plot and the value false produces a
waterfall plot. 
The values  
'Polarization' namevalue pair  Determines how to plot polarized fields. Options are 'None' , 'Combined' , 'H' ,
or 'V' .  'Polarization' namevalue pair determines
how to plot polarized fields. The 'None' option
is removed. The options 'Combined' , 'H' ,
or 'V' are unchanged.  
'Unit' namevalue pair  Determines the plot units. Choose 'db' , 'mag' , 'pow' ,
or 'dbi' , where the default is 'db' . 
 
'Weights' namevalue pair  Array element tapers (or weights).  'Weights' namevalue pair (no change).  
'AzimuthAngles' namevalue pair  Azimuth angles used to display the antenna or array response. 
 
'ElevationAngles' namevalue pair  Elevation angles used to display the antenna or array response. 
 
'UGrid' namevalue pair  Contains U coordinates in UVspace. 
 
'VGrid' namevalue pair  Contains Vcoordinates in UVspace. 

Version History
Introduced in R2015a
See Also
Open Example
You have a modified version of this example. Do you want to open this example with your edits?
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)