在之前的文章中,我们仿真过拉盖尔高斯涡旋光束、高斯光束经过矩孔、圆形夫郎和费衍射,已经具备了夫郎和费衍射的基础知识,今天小编带大家用matlab仿真高斯光束经单缝双缝夫郎和费衍射后的图样。
仿真原理:
我们已知高斯光束的表达式为:
其中,E0为光场振幅(一般取1),w0为光束的束腰半径。这里我们设置高斯光束束腰w=1e-3m,波长wvl=632.8e-9m。夫郎和费衍射可以利用傅里叶形式投射,传播距离Dz=5000m:
单缝双缝则可以用矩形函数来表示:
仿真结果:
图1展示了我们所使用的单缝双缝图样
图1单缝双缝图样
图2展示了高斯光束以及经过单缝双缝的夫郎和费衍射图样,和它们各自对应的一维强度分布。
图2高斯光束以及经过单缝双缝的夫郎和费衍射图样
MATLAB仿真代码:
喜欢的话给小编点个关注点个赞呀
有任何问题可以在评论区留言
更多完整代码进T店博士生牛马赚点小钱
clear;clc;close;
%更多完整代码及讲解进T店博士生牛马赚点小钱
% 单双缝夫郎和费衍射图样
%% 设置输入面网格
N = 200; % 网格数
d1 = 6e-5; % 网格间距 [m]
w = 1e-3; % 高斯光束束腰 [m]
wvl = 632.8e-9; % 波长 [m]
k = 2 * pi / wvl;
Dz = 5000; % 传播距离 [m]
x=linspace(-N/2 , N/2-1,N)*d1;
[x1,y1] = meshgrid((-N/2 : N/2-1)*d1);%创建网格
[phi,r1] = cart2pol(x1,y1);
%% 设置单双缝
fd1=10*d1;%缝宽
%单缝
F1=rect(x1,fd1);
%双缝
fj=20.*d1;%缝间距
F2=rect(x1-fj/2,fd1)+rect(x1+fj/2,fd1);
%% 输入输出光强
Uin = F2.*exp(-(r1.^2)./(w.^2));
Iin=Uin.*conj(Uin);
%计算夫郎和费衍射
[Uout,x2,y2] = fraunhofer_prop(Uin, wvl, d1, Dz);
Iout=Uout.*conj(Uout);
dout=Iout(N/2,:);
%% 画图
figure
subplot(1,3,1)
imagesc(Iin);axis off ;axis square
subplot(1,3,2)
imagesc(Iout);axis off ;colormap("parula");axis square
subplot(1,3,3)
plot(x,dout,'LineWidth',1.2);axis square