Adding Tapering and Time Delay
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
ubaid haroon
am 19 Mai 2020
Kommentiert: Honglei Chen
am 4 Jun. 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 Kommentare
Akzeptierte Antwort
Honglei Chen
am 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 Kommentare
Honglei Chen
am 4 Jun. 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.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Array Geometries and Analysis finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!