Adding Tapering and Time Delay
8 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
ubaid haroon
le 19 Mai 2020
Commenté : Honglei Chen
le 4 Juin 2020
I am adding time delay on my subarrays and taylor tapering on each element of the subarray and having trouble.
clear,clc, close all
fc=[4 12]*1e9;
c = physconst('lightspeed');
steerang = [20;0];
% Element Definition
rad_ele = phased.CosineAntennaElement('CosinePower', [1.3 1.3], 'FrequencyRange', [0 20e9]);
% SubArray Definition
sub_array_size = [6 8];
antenna_spacing = 0.00762; % in meters
sub_array = phased.URA('Element', rad_ele, 'ElementSpacing', antenna_spacing, 'Size', sub_array_size, 'ArrayNormal', 'x');
%Array Defintion
num_sub_arrays = [20 20];
array = phased.ReplicatedSubarray('Subarray',sub_array,'GridSize',num_sub_arrays,'SubarraySteering','Custom');
% Tapering
taper = taylorwin(sub_array.Size(1)*num_sub_arrays(1)).*taylorwin(sub_array.Size(2)*num_sub_arrays(2))';
ws=[];
for x = 1:num_sub_arrays(2)
for y = 1:num_sub_arrays(1)
temp_taper = taper(sub_array_size(1)*(y-1)+1:sub_array_size(1)*(y),sub_array_size(2)*(x-1)+1:sub_array_size(2)*(x));
%temp_taper = flipud((temp_taper)');
ws(:,end+1) = temp_taper(:); % element weights with taylor tapering
end
end
% Steering vector
steeringvec_replarray = phased.SteeringVector('SensorArray',array,...
'PropagationSpeed',c,'IncludeElementResponse',true);
wts_array = squeeze(steeringvec_replarray(fc,steerang,ws) );
%Plotting
figure
subplot(2,1,1)
pattern(array, fc,-90:.1:90, 0 ,'CoordinateSystem', 'Rectangular',...
'normalize', true,'type','powerdb','SteerAngle',steerang,...
'ElementWeights',ws);
hold on
subplot(2,1,2)
pattern(array, fc,-90:.1:90, 0 ,'CoordinateSystem', 'Rectangular',...
'type','powerdb','SteerAngle',steerang,...
'Weights',wts_array,'ElementWeights',ws);
The trouble I am having is not with tapering but how do I steer my beam with true time delay after tapering?
I tried injecting element weights into the steer vector and looks like that doesn't work.
0 commentaires
Réponse acceptée
Honglei Chen
le 27 Mai 2020
Unfortuantely at this point there is no straightforward way to combine the element taper with time steering. At this point, I think the best workaround is to build the time steering information, i.e., the steering vector at the proper frequency, into the element weights. Here is an example where I'll start from the defintion of the steering vector. Note that pattern plot will automatically include the element information so there is no need to include element response in the steering vector computation.
% Steering vector for Array
steeringvec_replarray = phased.SteeringVector('SensorArray',array,...
'PropagationSpeed',c,'IncludeElementResponse',false);
wts_array = squeeze(steeringvec_replarray(fc,steerang) );
% Steering vector for subarray
steeringvec_subarray = phased.SteeringVector('SensorArray',sub_array,...
'PropagationSpeed',c,'IncludeElementResponse',false);
wts_subarray = squeeze(steeringvec_subarray(fc,steerang));
%Plotting
figure
subplot(2,1,1)
pattern(array, fc,-90:.1:90, 0 ,'CoordinateSystem', 'Rectangular',...
'normalize', true,'type','powerdb','SteerAngle',steerang,...
'ElementWeights',ws);
subplot(2,1,2)
pattern(array, fc(1),-90:.1:90, 0 ,'CoordinateSystem', 'Rectangular',...
'type','powerdb','SteerAngle',steerang,...
'Weights',wts_array(:,1),'ElementWeights',ws.*conj(wts_subarray(:,1)));
hold on
pattern(array, fc(2),-90:.1:90, 0 ,'CoordinateSystem', 'Rectangular',...
'type','powerdb','SteerAngle',steerang,...
'Weights',wts_array(:,2),'ElementWeights',ws.*conj(wts_subarray(:,2)));
Note that you need to pass in the ElementWeights separeately for each frequency.
HTH and we will look into how to make this easier.
8 commentaires
Honglei Chen
le 4 Juin 2020
I think the weird shape is related to how we cut the pattern. Never really thought about that but I think once the array is steered, the pattern is actually uniform in the directional cosine space, therefore it is tilted in the constant angle cut.
I think your approach looks reasonable to me for the perturnbation. The only thing I'm not too sure is for the phase. I think normally the phase noise is uniform within 2pi.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Array Geometries and Analysis dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!