How to modify the code to get my desired array?

If we keep 10 antennas at equal distance in a circle on XY-Plane, then their coordinates are given by the code given below:
function r=circularArray(N)
radius = 0.5/sind(180/N);
rx = radius*cosd(360*(0:N-1).'/N);
ry = radius*sind(360*(0:N-1).'/N);
r = [rx, ry, zeros(N,1)];
end
Here you just put value of N where N is the number of antennas. So if N=10, then the above code gives:
r =
1.6180 0 0
1.3090 0.9511 0
0.5000 1.5388 0
-0.5000 1.5388 0
-1.3090 0.9511 0
-1.6180 0 0
-1.3090 -0.9511 0
-0.5000 -1.5388 0
0.5000 -1.5388 0
1.3090 -0.9511 0
Now if I want to keep 9 antennas at same equal distance on x and y -axes separatelyi.e., 4 antennas along x-axis and and 4 antennas along y-axis where the inter-antenna distance is same between any two consective antennas and 1 antenna is placed on the origin. Then what change is to be done in the above code to get the desired geometry i.e., L-type geometry instead of circile?

 Respuesta aceptada

Torsten
Torsten el 14 de Jul. de 2022
Editada: Torsten el 14 de Jul. de 2022
N = 9;
d = 0.25;
rx = [(N-1)/2*d:-d:d,zeros(1,(N+1)/2)].';
ry = [zeros(1,(N+1)/2),d:d:(N-1)/2*d].';
r = [rx,ry,zeros(N,1)]
r = 9×3
1.0000 0 0 0.7500 0 0 0.5000 0 0 0.2500 0 0 0 0 0 0 0.2500 0 0 0.5000 0 0 0.7500 0 0 1.0000 0

8 comentarios

Torsten
Torsten el 15 de Jul. de 2022
Editada: Torsten el 15 de Jul. de 2022
Because you wanted to place your antennas on x- and y-axis with distance "d" of consecutive pairs (L-type geometry).
Torsten
Torsten el 15 de Jul. de 2022
Editada: Torsten el 15 de Jul. de 2022
Further, normally distance is kept as d=0.5 but you have kept it 0.25, why?
Because I don't know what "normal" is.
I think in your circular arrangement, the antennas are also not 0.5 units apart from each other. Or is there a different rule for what is "normal" ?
Torsten
Torsten el 15 de Jul. de 2022
Editada: Torsten el 15 de Jul. de 2022
I think with what I provided as code for the L-shape, it should be no problem for you to do it alone.
What result do you want to get ?
0 0 0
1.0000 0 0
0.7500 0 0
0.5000 0 0
0.2500 0 0
0 1.0000 0
0 0.7500 0
0 0.5000 0
0 0.2500 0
0 0 1.0000
0 0 0.7500
0 0 0.5000
0 0 0.2500
?
N = 4;
d = 0.25;
r = zeros(3*N+1,3);
v = (N*d:-d:d).';
r(2:N+1,1) = v;
r(N+2:2*N+1,2) = v;
r(2*N+2:3*N+1,3) = v;
r
r = 13×3
0 0 0 1.0000 0 0 0.7500 0 0 0.5000 0 0 0.2500 0 0 0 1.0000 0 0 0.7500 0 0 0.5000 0 0 0.2500 0 0 0 1.0000
Torsten
Torsten el 16 de Jul. de 2022
Strange, because you said in your previous post
I think its correct because when we look at x-coordinate, then both y and z must be zero.Likewise for y both x and z must be zero and for z, both x and y mus be zero. But where is the code?
But doesn't matter: If you had understood the code, you would have changed N = 4 to N = 1 and everything would have been fine.
Torsten
Torsten el 16 de Jul. de 2022
Editada: Torsten el 16 de Jul. de 2022
N = 4;
d = 0.25;
N_on_each_axis = (N-1)/3;
r = zeros(3*N_on_each_axis+1,3);
v = (N_on_each_axis*d:-d:d).';
r(2:N_on_each_axis+1,1) = v;
r(N_on_each_axis+2:2*N_on_each_axis+1,2) = v;
r(2*N_on_each_axis+2:3*N_on_each_axis+1,3) = v;
r
r = 4×3
0 0 0 0.2500 0 0 0 0.2500 0 0 0 0.2500
But you have to make sure that N-1 is divisible by 3 !
Sadiq Akbar
Sadiq Akbar el 17 de Jul. de 2022
Thank you very much dear Torsten for your help.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Antennas and Electromagnetic Propagation en Centro de ayuda y File Exchange.

Preguntada:

el 14 de Jul. de 2022

Comentada:

el 17 de Jul. de 2022

Community Treasure Hunt

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

Start Hunting!

Translated by