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?

 Réponse acceptée

Torsten
Torsten le 14 Juil 2022
Modifié(e) : Torsten le 14 Juil 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 commentaires

Torsten
Torsten le 15 Juil 2022
Modifié(e) : Torsten le 15 Juil 2022
Because you wanted to place your antennas on x- and y-axis with distance "d" of consecutive pairs (L-type geometry).
Torsten
Torsten le 15 Juil 2022
Modifié(e) : Torsten le 15 Juil 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 le 15 Juil 2022
Modifié(e) : Torsten le 15 Juil 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 le 16 Juil 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 le 16 Juil 2022
Modifié(e) : Torsten le 16 Juil 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 le 17 Juil 2022
Thank you very much dear Torsten for your help.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Get Started with Antenna Toolbox dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by