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 views (last 30 days)
Show older comments
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',);
Answers (1)
Rangesh
on 3 Jan 2024
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 Comments
See Also
Categories
Find more on Detection in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!