System object: phased.PartitionedArray
Directivity of partitioned array
D = directivity(H,FREQ,ANGLE)
D = directivity(H,FREQ,ANGLE,Name,Value)
H— Partitioned array
Partitioned array, specified as a
H = phased.PartitionedArray;
comma-separated pairs of
the argument name and
Value is the corresponding value.
Name must appear inside quotes. You can specify several name and value
pair arguments in any order as
'ElementWeights'— Weights applied to elements within subarray
1(default) | complex-valued NSE-by-N matrix | 1-by-N cell array
Subarray element weights, specified as complex-valued NSE-by-N matrix or 1-by-N cell array. Weights are applied to the individual elements within a subarray. Subarrays can have different dimensions and sizes.
ElementWeights is a complex-valued
NSE 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.
ElementWeights is a 1-by-N cell array. Each
cell contains a complex-valued column vector of weights for the corresponding subarray.
The column vectors have lengths equal to the number of elements in the corresponding
To enable this name-value pair, set the
SubarraySteering property of the array to
Complex Number Support: Yes
Compute the directivity of a partitioned array formed from a single 20-element ULA with elements spaced one-quarter wavelength apart. The subarrays are then phase-steered towards 30 degrees azimuth. The directivities are computed at azimuth angles from 0 to 60 degrees.
c = physconst('LightSpeed'); fc = 3e8; lambda = c/fc; angsteer = [30;0]; ang = [0:10:60;0,0,0,0,0,0,0];
Create a partitioned ULA array using the
myArray = phased.PartitionedArray('Array',... phased.ULA(20,lambda/4),'SubarraySelection',... [ones(1,10) zeros(1,10);zeros(1,10) ones(1,10)],... 'SubarraySteering','Phase','PhaseShifterFrequency',fc);
Create the steering vector and compute the directivity.
myStv = phased.SteeringVector('SensorArray',myArray,... 'PropagationSpeed',c); d = directivity(myArray,fc,ang,'PropagationSpeed',c,'Weights',... step(myStv,fc,angsteer),'SteerAngle',angsteer)
d = 7×1 -7.5778 -4.7676 -2.0211 10.0996 0.9714 -3.5575 -10.8439
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
where Urad(θ,φ) is the radiant intensity of a transmitter in the direction (θ,φ) and Ptotal 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.
Computing directivity requires integrating the far-field transmitted radiant intensity over all directions in space to obtain the total transmitted power. There is a difference between how that integration is performed when Antenna Toolbox™ antennas are used in a phased array and when Phased Array System Toolbox™ antennas are used. When an array contains Antenna Toolbox antennas, the directivity computation is performed using a triangular mesh created from 500 regularly spaced points over a sphere. For Phased Array System Toolbox antennas, the integration uses a uniform rectangular mesh of points spaced 1° apart in azimuth and elevation over a sphere. There may be significant differences in computed directivity, especially for large arrays.