steerang = 45;
fc = 9.345e9;
c = 3e8;
N = [16 16];
spacing = 0.5;
Nsubarray = [3 3];
antenna = phased.IsotropicAntennaElement('BackBaffled',true);
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]);
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]);