⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 elliptica_mult.m

📁 经典书籍MIMO Signals And Systems的源代码
💻 M
字号:
% Program file "elliptica_mult.m"
% calculates and displays tip of resulting 
% electric field vector of multiple elliptically
% polarized plane EM waves traveling along positive
% or negative z axis. Frequencies of waves may
% be chosen individually. 

N = 4000; % Number of E field samples 
P = 3; % Number of full (2pi) cycles to be drawn

t = [0:P*2*pi/(N-1):P*2*pi];

number = 1;
Extotal = zeros(1,N);
Eytotal = zeros(1,N);
  
while number == 1
   
om = input('Enter frequency of time harmonic E field = ');    
dir = input('Enter direction of wave travel (-1 = negative z or 1 = positive z) ? '); 
   if dir == -1
   t = dir*t + P*2*pi*ones(1,N);  
   else
   end
Exm = input('Enter amplitude of Ex = '); 
phi_x = input('Enter phase angle (in degrees) of Ex, phi_x = ');

Eym = input('Enter amplitude of Ey = '); 
phi_y = input('Enter phase angle (in degrees) of Ey, phi_y = ');

dphi = phi_x - phi_y
phi_x = phi_x*pi/180;
phi_y = phi_y*pi/180;
Ex = Exm*cos(om*t + phi_x);
Ey = Eym*cos(om*t + phi_y);
dphi = phi_x - phi_y;

dex = 0.5*atan(2*Exm*Eym*cos(dphi)/(Exm^2 - Eym^2));
dex = dex*180/pi
OA = 0.5*sqrt(2*((Exm^2) + (Eym^2) + sqrt((Exm^4) + (Eym^4) + 2*(Exm^2)*(Eym^2)*cos(2*dphi))))
OB = 0.5*sqrt(2*((Exm^2) + (Eym^2) - sqrt((Exm^4) + (Eym^4) + 2*(Exm^2)*(Eym^2)*cos(2*dphi))))

Extotal = Extotal + Ex;
Eytotal = Eytotal + Ey;

number = input('More waves? Yes = 1, No = 0; Enter 1 or 0 '); 
end 


%Calculation of magnitude of E vector
M = length(t);
Eabs = zeros(1,M);
for k = 1:M
Eabs(k) = sqrt(Extotal(k)^2 + Eytotal(k)^2);
end

subplot('Position',[0.13,0.55,0.27,0.4])
plot(Extotal, Eytotal);
xlabel('Ex')
ylabel('Ey')
grid
subplot('Position',[0.53,0.55,0.4,0.4])
plot3(t/(2*pi), Extotal, Eytotal)
xlabel('z');
ylabel('Ex');
zlabel('Ey');
grid
subplot('Position',[0.13,0.13,0.8,0.2])
plot(t/(2*pi), Eabs)
xlabel('z');
ylabel('magn(E)');
grid

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -