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

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

Thank you,very much! Makes much more sense now.
Meant to put this as an answer, not a comment.
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

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!