Converting a 1D antenna array to planar array in 3D space

2 views (last 30 days)
Hello,
I am struggling to understand how I can convert a linear array code to a 2D by changing or adding some lines of code.Here is what I have got so far:
%Parameters
Fc=1255e6; %/Hz Carrier frequency
C=3e8;%/m/s Speed of light
Lambda=C/Fc;%/m Wavelength
ESepx=0.49*Lambda; %/m Element separation in the x direction
ESepz=0.49*Lambda;%/m Element separation in the z direction
Nx=4; % Number of Elements in the x direction
Nz=16;%Number of Elements in the z direction
% First lets define a planar array in 3D space
Elementpos=zeros(Nx,Nz);
Elementpos(1,:)=(-(Nx-1)/2:(Nx-1)/2)*ESepx;
Elementpos(:,1)=(-(Nz-1)/2:(Nz-1)/2)*ESepz;
figure(1)
plot(Elementpos(1,:), Elementpos(:,1), 'x')
xlabel('x axis (m)');
ylabel('z axis (m)');
title('element position');
  3 Comments
Paul Hoffrichter
Paul Hoffrichter on 9 Jul 2021
I added a 3rd technique in the answer.
Do you have any other questions about the below answer? If not, could you hit the Accept Answer button below.

Sign in to comment.

Accepted Answer

Paul Hoffrichter
Paul Hoffrichter on 9 Jul 2021
Edited: Paul Hoffrichter on 9 Jul 2021
Fc=1255e6; %/Hz Carrier frequency
C=3e8;%/m/s Speed of light
Lambda=C/Fc;%/m Wavelength
ESepx=0.49*Lambda; %/m Element separation in the x direction
ESepz=0.49*Lambda;%/m Element separation in the z direction
Nx=4; % Number of Elements in the x direction
Nz=16;%Number of Elements in the z direction
xPos = (-(Nx-1)/2:(Nx-1)/2)*ESepx;
zPos = (-(Nz-1)/2:(Nz-1)/2)*ESepz;
figure(101), hold on;
for z = zPos
zs = repmat(z, 1, length(xPos));
plot( xPos, zs, 'bx');
end
xlabel('x axis (m)');
ylabel('z axis (m)');
title('element position');
figure(102)
[X Y] = meshgrid( xPos, zPos );
plot(X, Y,'kx')
xlabel('x axis (m)');
ylabel('z axis (m)');
title('element position');
figure(103)
zP = repmat(zPos', 1, 4);
plot(xPos, zP, 'gx')

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!