MATLAB: Get Directivity Values From phased.URA

dspmagnitude numbersphased antenna arrayPhased Array System Toolboxsar

I've created an array using the phased URA tool, & the 3d plot it produced matches well with what I am expecting.
I was wondering how I can get the directivity(dBi) values, ie. z-axis values, from the URA object. Is it possible to create a matrix of these values?
Below is the code used to construct the URA.
sar_array = phased.URA;
sar_array.Size = [10 10]; %number of array elements
sar_array.ElementSpacing = [0.9 0.9]; %element spacing
sar_array.Lattice = 'Rectangular'; %rectangular array
sar_array.ArrayNormal = 'x';
el = phased.IsotropicAntennaElement;
sar_array.Element = el;
F = 300000000;
PS = physconst('LightSpeed');
fmt = 'rectangular';
fig = figure;
pattern(sar_array, F(1), 'PropagationSpeed', PS, 'Type','directivity', ...
'CoordinateSystem', fmt);

Best Answer

  • If you want directivity values for all angles, you can just simply do
    D = pattern(sar_array, F(1), 'PropagationSpeed', PS, 'Type','directivity', ...
    'CoordinateSystem', fmt);
    If you want directivity in only several points, say 0 and 30 degrees azimuth, then you can save some computation by doing
    D = directivity(sar_array, F(1), [0 30])