-
Notifications
You must be signed in to change notification settings - Fork 0
/
fArregloCanonico.m
61 lines (49 loc) · 1.94 KB
/
fArregloCanonico.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
function [Excitaciones,fc] = fArregloCanonico(nulos,d1,d2)
% Función encargada de asignar tres pares de nulos a variables
% Parámetros de entrada son:
% nulos -----------------------------------> Coordenadas de los nulos (Eje Theta y Phi)
% Retorna los valores de:
% Excitaciones ----------------------------> Son las excitaciones para
% 3 nulos
% fc --------------------------------------> Factor de arreglo para los nulos
nulo1Theta = nulos(1,1);
nulo1Phi = nulos(1,2);
nulo2Theta = nulos(2,1);
nulo2Phi = nulos(2,2);
nulo3Theta = nulos(3,1);
nulo3Phi = nulos(3,2);
theta1 = nulo1Theta*(pi/180);
theta2 = nulo2Theta*(pi/180);
theta3 = nulo3Theta*(pi/180);
phi1 = nulo1Phi*(pi/180);
phi2 = nulo2Phi*(pi/180);
phi3 = nulo3Phi*(pi/180);
% Sistema
kd1 = 2*pi*d1;
kd2 = 2*pi*d2;
fi1 = 0;
fi2 = pi/2;
A = [exp(j*kd2*sin(theta1)*cos(phi1-fi2)) exp(-j*kd1*sin(theta1)*cos(phi1-fi1)) exp(-j*kd2*sin(theta1)*cos(phi1-(fi2)))
exp(j*kd2*sin(theta2)*cos(phi2-(fi2))) exp(-j*kd1*sin(theta2)*cos(phi2-fi1)) exp(-j*kd2*sin(theta2)*cos(phi2-(fi2)))
exp(j*kd2*sin(theta3)*cos(phi3-(fi2))) exp(-j*kd1*sin(theta3)*cos(phi3-fi1)) exp(-j*kd2*sin(theta3)*cos(phi3-(fi2)))];
B = [-exp(j*kd1*sin(theta1)*cos(phi1-fi1))
-exp(j*kd1*sin(theta2)*cos(phi2-fi1))
-exp(j*kd1*sin(theta3)*cos(phi3-fi1)) ];
X = inv(A)*B;
Mag = abs(X);
Fas = angle(X)*(180/pi);
a1 = 1;
a2 = Mag(1)*exp(j*Fas(1)*(pi/180));
a3 = Mag(2)*exp(j*Fas(2)*(pi/180));
a4 = Mag(3)*exp(j*Fas(3)*(pi/180));
Excitaciones = [a1 a2 a3 a4];
[theta,phi] = meshgrid(-pi/2:1/100:pi/2);
fcp = a1*exp(j*kd1.*sin(theta).*cos(phi))+a2*exp(j*kd2.*sin(theta).*sin(phi))+a3*exp(-j*kd1.*sin(theta).*cos(phi))+a4*exp(-j*kd2.*sin(theta).*sin(phi));
valorMaximo = max(max(fcp));
matrizNormalizada = zeros(length(fcp),length(fcp));
for i = 1:length(fcp)
for r = 1: length(fcp)
matrizNormalizada(i,r) = fcp(i,r)/valorMaximo;
end
end
fc = matrizNormalizada;