Plot end-fire array for delta=0 and Henson woodyard array for delta =pi/N. When plotting ordinary is giving better performance than Henswoodyard. make it opposite
6 次查看(过去 30 天)
显示 更早的评论
clc; clear; close all;
c = physconst('LightSpeed');
fc = 300e6;
lambda = c / fc;
d_over_lambda_range = 0.1:0.02:2;
N = 15;
angles =0;
figure;
% Ordinary End-Fire Array
directivity_end_fire = zeros(size(d_over_lambda_range));
for idx = 1:length(d_over_lambda_range)
d_over_lambda = d_over_lambda_range(idx);
spacing = d_over_lambda * lambda;
array_end_fire = phased.ULA('NumElements', N, 'ElementSpacing', spacing, 'ArrayAxis', 'y','Element', phased.IsotropicAntennaElement);
array_patern = directivity(array_end_fire, fc,angles);
% Calculate the directivity in linear scale
directivity_end_fire(idx) = array_patern;
end
% Hansen-Woodyard Array
directivity_hansen_woodyard = zeros(size(d_over_lambda_range));
for idx = 1:length(d_over_lambda_range)
d_over_lambda = d_over_lambda_range(idx);
spacing = d_over_lambda * lambda;
% array_hansen_woodyard = phased.HeterogeneousULA(' ElementIndices',elementpos,'ElementSpacing', spacing, 'ArrayAxis', 'y', 'Element', phased.IsotropicAntennaElement);
% % Additional phase shift for Hansen-Woodyard array
delta = pi / N;
array_hansen_woodyard = phased.ULA('NumElements', N, 'ElementSpacing', spacing, 'ArrayAxis', 'y', 'Element', phased.IsotropicAntennaElement);
array_hansen_woodyard.Taper = delta*(0:N-1);
arrayresponse = directivity(array_hansen_woodyard,fc,angles);
directivity_hansen_woodyard(idx) =abs(arrayresponse);
end
% Plotting
plot(d_over_lambda_range, directivity_end_fire, 'DisplayName', 'Ordinary End-Fire');
hold on;
plot(d_over_lambda_range, directivity_hansen_woodyard, 'DisplayName', 'Hansen-Woodyard');
hold off;
title('Directivity of Arrays');
xlabel('d/\lambda');
ylabel('Directivity (dB)');
legend('show');
grid on;
%array_end_fire = phased.ULA('NumElements', N, 'ElementSpacing', spacing, 'ArrayAxis', 'y','Taper',);
回答(1 个)
Rangesh
2024-1-3
Hi Rahul,
It understand that you are investigating why the performance of the Hansen woodyard array is worse compared to that of the ordinary end fire array.
You are experiencing this difference because of the following reasons:
- It appears that you have varied the element spacing across the range of "lambda," whereas the array element spacing should remain constant.
- I suggest maintaining a constant spacing between the antenna elements.
- In the case of the End fire array, the phase difference between successive elements is uniform and can be expressed as:
array_end_fire.Taper=exp(1i*2*pi*(0:N-1)/lambda*spacing);
- Similarly, the phase difference between the Hansen woodyard array with additional phase shift can be expressed as:
array_hansen_woodyard.Taper =exp(1i*(0:N-1)*(2*pi/lambda*spacing+pi/N));
Please note that the array element taper takes on complex values, so it would be appropriate to express the phase change as a complex sinusoid.
For more information, you can refer the following link:
- phased.ULA: Creates a uniform linear array system object. https://www.mathworks.com/help/phased/ref/phased.ula-system-object.html
I hope the above suggestions resolve your query.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Detection 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!