Adding Tapering and Time Delay
7 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Honglei Chen
2020-5-27
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 个评论
Honglei Chen
2020-6-4
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.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Array Geometries and Analysis 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!