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

4 次查看(过去 30 天)
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]);

回答(1 个)

ubaid haroon
ubaid haroon 2020-5-27
Thats because when you set "SubSteering" to "Custom", you have to manually compute the time delay. MATLAB does not allow you to apply taper to each element in a subarray configuration and time delays together.

类别

Help CenterFile Exchange 中查找有关 Array Geometries and Analysis 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by