# Creating a Large Phased Array Using Subarrays with Phase Centers at Each Element

8 views (last 30 days)
Timothy Maese on 9 Apr 2020
Answered: ubaid haroon on 27 May 2020
I'm trying to model and compare the results of a standard URA phased array versus one made of subarrays with element-wise steering. In the code below, I create a full array without subarrays of the final size, a reference subarray, and then a full array using subarrays. I believe that if I use the same steering weights from the single full array for the elements in the array made of subarrays, I should be similar beam patterns. This works fine when the weights are all 1 (boresight beam) but falls apart as soon as the steering angle, so I think I'm incorrectly interpreting the weights for subarrays.
steerang = 45; % Steering angle
fc = 9.345e9; % Center frequency in Hz
c = 3e8; % Speed of light
N = [16 16]; % Elements per subarray in each dimension
spacing = 0.5; % Element spacing in wavelengths
Nsubarray = [3 3]; % Number of subarrays in Az and El
antenna = phased.IsotropicAntennaElement('BackBaffled',true);
% reference array (full size) and reference subarray
refUra = phased.URA(N .* Nsubarray, [spacing*c/fc spacing*c/fc],'Element',antenna);
refSub = phased.URA(N, [spacing*c/fc spacing*c/fc],'Element',antenna);
steeringvec_refUra = phased.SteeringVector('SensorArray',refUra,...
'PropagationSpeed',c);
wref = steeringvec_refUra(fc,steerang);
steeringvec_refSub = phased.SteeringVector('SensorArray',refSub,...
'PropagationSpeed',c);
wrefSub = steeringvec_refSub(fc,steerang);
figure
subplot(2,1,1), pattern(refUra,fc,-180:180,0,'Type','powerdb',...
'CoordinateSystem','rectangular','PropagationSpeed',c);
title('Full Array Azimuth Cut Boresight'); axis([-90 90 -50 0]);
subplot(2,1,2), pattern(refUra,fc,-180:180,0,'Type','powerdb',...
'CoordinateSystem','rectangular','PropagationSpeed',c,'Weights',wref);
title('Fully Array Azimuth Cut Steered'); axis([-90 90 -50 0]);
figure
subplot(2,1,1), pattern(refSub,fc,-180:180,0,'Type','powerdb',...
'CoordinateSystem','rectangular','PropagationSpeed',c);
title('Subarray Azimuth Cut Boresight'); axis([-90 90 -50 0]);
subplot(2,1,2), pattern(refSub,fc,-180:180,0,'Type','powerdb',...
'CoordinateSystem','rectangular','PropagationSpeed',c,'Weights',wrefSub);
title('Subarray Azimuth Cut Steered'); axis([-90 90 -50 0]);
% Array of subarrays with each element a phase center
replicatedURA = phased.ReplicatedSubarray('Subarray',refSub,...
'Layout','Rectangular',...
'GridSize',Nsubarray,'GridSpacing','Auto','SubarraySteering', 'Custom' );
figure;
viewArray(replicatedURA,'Title','Tiled Array');
steeringVecReplicatedURA = phased.SteeringVector('SensorArray',replicatedURA,...
'PropagationSpeed',c, 'IncludeElementResponse', true);
ws = ones(256,9);
wref2 = wrefSub * ones(1,(prod(Nsubarray)));
figure
pattern(replicatedURA,fc,-180:180,0,'Type','powerdb',...
'CoordinateSystem','rectangular','PropagationSpeed',c,'ElementWeights',wref2);
title('Steered URA Azimuth Cut'); axis([-90 90 -50 0]);