一、均匀平面电磁波的传播:
1.代码:
%本程序用来模拟平面电磁波在空间中的传播
%假设电磁波沿着X轴正向传播,电场具有Z方向的分量Ez,磁场具有Y方向上的分量Hy
%两个参数的变化对电磁场分量值的影响产生明显改变,将时间的单位设为纳秒
%反映电磁场性质的其他参数均设为常数,即自由空间中的值
clear
close all
u0=4*pi*1e-7; %自由空间中的磁导率
e0=1e-9/(36*pi); %自由空间中的电介质常数
Z0=(u0/e0)^0.5; %自由空间中的波阻抗
f=1e8; %电磁波的频率
w=2*pi*f;
k=w*(u0*e0)^0.5; %波数
phi_E=0; %初始相位设为0
phi_H=0;
EE=20; %电场幅度
HH=EE/Z0;
x=0:0.1:20; %传播方向上的采样点
m0=zeros(size(x));
gifname='mag_motion.gif';
figure
for t=0:1:100 %为了消除波数与频率之间的数量级带来的影响,时间单位为ns
Ez=EE*cos(k*x-w*t*1e-9+phi_E); %电场强度值
Hy=HH*cos(k*x-w*t*1e-9+phi_H); %磁场强度值
plot3(x,m0,Ez,'b','LineWidth',2); %绘制电场传播曲线
hold on
plot3(x,Hy,m0,'r','LineWidth',2); %绘制磁场传播曲线
hold off
xlabel('传播方向')
ylabel('磁场Hy')
zlabel('电场Ez')
title(['平面电磁波传播示意图','t=',num2str(t),'ns'],'fontsize',14)
set(gca,'fontsize',12)
drawnow
frame=getframe(1);%获取当前图像
im=frame2im(frame);
[imind,cm]=rgb2ind(im,500);%格式转换
if t==0;
imwrite(imind,cm,gifname,'gif');%创建一个gif文件
else
imwrite(imind,cm,gifname,'gif','WriteMode','append','DelayTime',0.1);
%向gif文件中添加一张图片
end
% end
end
2.现象:
二、电磁波在海水中的传播(带衰减)
%本程序用来模拟平面电磁波在空间中的传播
%假设电磁波沿着X轴正向传播,电场具有Z方向的分量Ez,磁场具有Y方向上的分量Hy
%由于程序中的电场分量与磁场分量均与两个参数-时间和坐标有关,因此为了使
%两个参数的变化对电磁场分量值的影响产生明显改变,将时间的单位设为纳秒
%反映电磁场性质的其他参数均设为常数,即自由空间中的值
clear
close all
u0=4*pi*1e-7; %自由空间中的磁导率
e0=80*1e-9/(36*pi); %自由空间中的电介质常数
Z0=(u0/e0)^0.5; %自由空间中的波阻抗
%f=1e8; %电磁波的频率
f = 5*1e6;
w=2*pi*f;
k=w*(u0*e0)^0.5; %波数
phi_E=0; %初始相位设为0
phi_H=0;
EE=20; %电场幅度
HH=EE/Z0;
z=0:0.1:20; %传播方向上的采样点
m0=zeros(size(z));
gifname='mag_motion.gif';
figure
for t=0:1:100 %为了消除波数与频率之间的数量级带来的影响,时间单位为ns
Ex=EE*cos(k*z-w*t*1e-9+phi_E).*exp(-0.0889*z); %电场强度值
Hy=HH/pi*cos(k*z-w*t*1e-9+phi_H-pi/4).*exp(-0.0889*z); %磁场强度值
plot3(z,m0,Ex,'b','LineWidth',2); %绘制电场传播曲线
hold on
plot3(z,Hy,m0,'r','LineWidth',2); %绘制磁场传播曲线
hold off
xlabel('传播方向')
ylabel('磁场Hy')
zlabel('电场Ez')
title(['平面电磁波传播示意图','t=',num2str(t),'ns'],'fontsize',14)
set(gca,'fontsize',12)
drawnow
frame=getframe(1);%获取当前图像
im=frame2im(frame);
[imind,cm]=rgb2ind(im,500);%格式转换
if t==0;
imwrite(imind,cm,gifname,'gif');%创建一个gif文件
else
imwrite(imind,cm,gifname,'gif','WriteMode','append','DelayTime',0.1);
%向gif文件中添加一张图片
end
% end
end
2.现象:
3.在海水中传播的平面图:
%作者:赵伟 日期:2023年12月9日
u0=4*pi*1e-7; %自由空间中的磁导率
e0=80*1e-9/(36*pi); %自由空间中的电介质常数
f = 5*1e6;
w=2*pi*f;
k=w*(u0*e0)^0.5; %波数
phi_E=0; %初始相位设为0
phi_H=0;
EE=20; %电场幅度
HH=EE/pi;
z = linspace(0,100,1000); %传播方向上的采样点
Ex=cos(k*z-w+phi_E).*exp(-0.0889*z);
%Hy=HH*cos(k*z-w+phi_H).*exp(-0.0889*z);
plot(z,Ex);
xlabel('z');
ylabel('电场Ex');
4.现象:
二、电磁波对理想介质的垂直入射:
1.代码:
u1 = 4; %设置理想介质1的磁导率大小
e1 = 9; %设置理想介质1的介电常数大小
u2 = 9; %设置理想介质2的磁导率大小
e2 = 4; %设置理想介质2的介电常数大小
A=1; %设置入射电磁波振幅大小
w = pi/10; %设置入射电磁波角频率大小
yt1 = sqrt(u1/e1); %根据公式η=(u/e)^0.5计算理想介质1的波阻抗η1
yt2 = sqrt(u2/e2); %根据公式η=(u/e)^0.5计算理想介质2的波阻抗η2
k1 = sqrt(u1*e1)*w; %根据公式k=(u*e)^0.5*w计算理想介质1的波数k1
k2 = sqrt(u2*e2)*w; %根据公式k=(u*e)^0.5*w计算理想介质2的波数k2
R = (yt2-yt1)/(yt2+yt1);%根据公式r=(2-n1)/(n2+n1)计算理想介质1到2的反射系数r
T = 2*yt2/(yt2+yt1); %根据公式t=2*n2/(n2+n1)计算理想介质1到2的透射系数t
n1=0; %用于入射波的数据点计数
n2=0; %用于反射波和合成波的数据点计数
n3=0; %用于透射波的数据点计数
%% 仿真图绘制
for t=1:500 %设置循环次数,即时间变量
%% 公式程序化
z1 = -20:1/6:0; %设置z负轴坐标范围,即空间变量,z=0为理想介质分界面
z2 = 0:1/6:20; %设置z正轴坐标范围,即空间变量,z=0为理想介质分界面
Ei = A*cos(w*t-k1*z1+pi/5*2); %计算入射波
Er = R*A*cos(w*t+k1*z1-pi/5*2); %计算反射波
Et = T*A*cos(w*t-k2*z2+pi/5*2); %计算透射波
Ez = Ei + Er; %计算合成波
%% 图像参考轴线设置
plot([-20,20],[0,0],'k','LineWidth',2); %设置z轴参考轴线
hold on
plot([0,0],[-3,3],'k','LineWidth',2); %设置x轴参考轴线
hold on
%% 电磁波传播图像绘制
if t<length(z1) %判断平面波是否传播到理想介质分界面z=0
if n1<length(z1) %判断入射波是否垂直入射理想介质分界面
n1=n1+1; %入射波的数据点计数加一
for a=t:length(z1) %模拟入射波的传播,将未传播到的地方置零
Ei(a)=0;
end
end
end
plot(z1, Ei,'k','LineWidth',1); %绘制入射波图像
if t>length(z1) %%判断平面波是否传播到理想介质分界面z=0
if n2<length(z1) %判断反射波和合成波是否产生
n2=n2+1; %反射波的数据点计数加一
for b=1:length(z1)-n2 %模拟反射波和合成波的传播,将未传播到的地方置零
Er(b)=0;
Ez(b)=0;
end
end
plot(z1, Er,'k','LineWidth',1); %绘制反射波图像
plot(z1, Ez,'k','LineWidth',2); %绘制合成波图像
if n3<length(z2) %判断透射波是否产生
n3=n3+1; %透射波的数据点计数加一
for c=t-length(z1):length(z2) %模拟透射波的传播,将未传播到的地方置零
Et(c)=0;
end
end
plot(z2, Et,'k','LineWidth',2); %绘制透射波图像
end
hold off;
drawnow; %更新图像画面
end
2.现象:
三,电磁波对理想介质的斜入射:
%题目要求电场入射到xo平面
clear;
clc;
u0=4*pi*1e-7; %自由空间中的磁导率
e0=1e-9/(36*pi); %自由空间中的电介质常数
f=1e8; %电磁波的频率
w=2*pi*f;
Ei=5*1.41; %入射波幅度
R=0.052; %反射系数
T=0.526; %透射系数
Er=Ei*R; %反射波幅值
Et=Ei*T; %透射波幅值
k1=w*(u0*e0)^0.5; %真空中(介质1)波数
k2=k1*2; %介质2波数
gifname='E_view_40,0,0.gif'; %取图用
figure(1)
for t=0:1:200 %为了消除波数与频率之间的数量级带来的影响,时间单位为ns
%入射波部分
%===入射电场部分
xei=-40:0.1:-1.5; %入射电场采样范围及采样步长
m1=zeros(size(xei));
[yei,zei]=meshgrid(-40:0.1:-1.5,-40:0.1:-1.5); %生成y,z取样数组网络
Eyi=1.73*(1.73*yei+zei)+Ei*0.5*cos(w*t*1e-9-k1*0.5*(1.73*yei+zei)); %电场y方向上分量,来源教材公式6.8-22
%时域分解来源于5.7-14,后面反射,折射亦同的相同
%其中1.73*(1.73*yei+zei)相当于根号3y尖,为方向系数,是为了与画图函数plot3匹配而设置
Ezi=-1*(1.73*yei+zei)+Ei*0.5*cos(w*t*1e-9-k1*0.5*(1.73*yei+zei)); %电场z方向上分量
plot3(m1,Eyi,Ezi,'r','LineWidth',1); %绘制入射电场
hold on
%反射波部分
%===反射电场部分
xer=0:0.1:40;
m2=zeros(size(xer));
[yer,zer]=meshgrid(0:0.1:40,0:0.1:40);
Eyr=1.73*(1.73*yer+zer)+Er*0.5*cos(k1*0.5*(1.73*yer+zer)-w*t*1e-9);
Ezr=1*(1.73*yer+zer)-Er*0.5*cos(k1*0.5*(1.73*yer+zer)-w*t*1e-9);
plot3(m2,Eyr,Ezr,'r','LineWidth',1);
hold on
%透射波部分
%===透射电场部分
xei=0.05:0.1:40;
m3=zeros(size(xei));
[yei,zei]=meshgrid(0.05:0.1:40,0.05:0.1:40);
Eyt=1.73*(1.73*yei+3.61*zei)+Et*0.25*cos(k2*(1.73*yei+3.61*zei)-w*t*1e-9);
Ezt=-3.61*(1.73*yei+3.61*zei)+Et*0.25*cos(k2*(1.73*yei+3.61*zei)-w*t*1e-9);
plot3(m3,Eyt,Ezt,'r','LineWidth',1);
hold on
view([40,0,0]); %从x轴方向上观察图形
a=-40:1:40; %下列数行是为了生成xoy平面辅助观察
b=a;
[a,b]=meshgrid(a,b)
c=a*t*0;
surf(a,b,c);
shading interp
set(gca,'ZLim',[-40 40])
alpha(0.6)
h1=quiver3(0,0,0,40,0,0); %下列数行生成矢量箭头指出各方向,辅助观察
h2=quiver3(0,0,0,0,40,0);
h3=quiver3(0,0,0,0,0,40);
h4=quiver3(0,0,0,0,30,17.4);
h5=quiver3(0,-30,17.4,0,33,-18.9);
h6=quiver3(0,0,0,0,13.86,-28.84);
text(36,0,0,'\leftarrow X'); %下列数行生成文字标签,便于观察和说明
text(0,36,0,'\leftarrow Y');
text(0,0,36,'\leftarrow Z');
text(0,27,14,'\leftarrow θr=60°');
text(0,-2,2,'\rightarrow θi=60°');
text(0,13.36,-26.34,'\leftarrow θt=30°');
set(h1,'maxheadsize',0.5); %控制箭头大小
set(h2,'maxheadsize',0.5);
set(h3,'maxheadsize',0.5);
set(h4,'maxheadsize',0.5);
set(h5,'maxheadsize',0.5);
set(h6,'maxheadsize',0.5);
hold on
axis([-40,40,-40,40,-40,40]); %划定图像显示范围
grid on;
hold off
xlabel('x轴')
ylabel('y轴')
zlabel('z轴')
title(['均匀平面波斜投射到不同介质分界面示意图','t=',num2str(t),'ns'],'fontsize',14)
set(gca,'fontsize',12)
drawnow
frame=getframe(1); %获取当前图像,生成gif图
im=frame2im(frame);
[imind,cm]=rgb2ind(im,500);
if t==0
imwrite(imind,cm,gifname,'gif');
else
imwrite(imind,cm,gifname,'gif','WriteMode','append','DelayTime',0.1);
end
end
2.现象: