MATLAB: Phased replicated subarrays with different phases on each subarray

Phased Array System Toolboxreplicated subarraystaper; weights; phased array toolbox

I have an antenna model and it uses subarrays. These arrays are physically pointing in different directions and I want use the replicated subarray ability, but also I want to add weight or a taper which will steer the subarrays in different directions. If there are 2 subarrays, I want one to have a certain taper and the second to have a different taper. The examples i've found use the same weights or taper for all subarrays in the model… Is it possible to have different phasing on each array and use the replicated subarray model? In this example below there are subarrays physically pointed in different directions, but if I wanted to phase them all to steer to the same point it would require different phasing for each subarray…
Another type of nonplanar antenna array is an array with multiple planar faces. The next example shows uniform hexagonal arrays arranged as subarrays on a sphere. https://www.mathworks.com/help/phased/examples/phased-array-gallery.html?s_tid=srchtitle
R = 9; % Radius (m)
az = unigrid(-180,60,180,'[)'); % Azimuth angles
el = unigrid(-30,60,30); % Elevation angles (excluding poles)
[az_grid, el_grid] = meshgrid(az,el);
poles = [0 0; -90 90]; % Add south and north poles
nDir = [poles [az_grid(:) el_grid(:)]']; % Subarray normal directions
N = size(nDir,2); % Number of subarrays
[x, y, z] = sph2cart(degtorad(nDir(1,:)), degtorad(nDir(2,:)),R*ones(1,N));
sphericalHexagonalSubarray = phased.ReplicatedSubarray('Subarray',uha,...
'Layout','Custom',...
'SubarrayPosition',[x; y; z], ...
'SubarrayNormal',nDir);
viewArray(sphericalHexagonalSubarray,...
'Title','Hexagonal Subarrays on a Sphere');
view(30,0)

Best Answer

The steering of the entire array is divided into two parts. The first parts is the weights at the subarray level, that's where you can use a weighting vector. However, you cannot directly access within each subarray. Therefore, the phasing within each subarray is controlled by a property in the subarray. For example,
sphericalHexagonalSubarray.SubarraySteering = 'Phase';
This means that the phase within each subarray will be controlled via phase shifters. You can also specify the frequency at which those phase shifters operate on.
Now if you want to see the beam pattern, you can do the following
stv = phased.SteeringVector('SensorArray',sphericalHexagonalSubarray);
fc = 3e8;
steer_ang = 30;
w = step(stv,fc,steer_ang);
pattern(sphericalHexagonalSubarray,fc,-90:90,0,'Type','PowerdB','SteerAngle',steer_ang);
In general, if you use subarray with SubarraySteering turned on, then you will need to specify an extra input to indicate which angle you want to steer the subarrays to.
Please let me know if this addresses your concern. Thanks.
Related Question