杨氏干涉原理的matlab程序及实现
杨氏干涉是光学中常见的一种干涉现象,其基本原理为使用相干光源照射一个或多个物体,使光线经过物体后形成的干涉图案。本文将介绍利用matlab实现杨氏干涉模拟的源代码以及具体实现方法。
首先,为了方便模拟光源的产生,我们可以采用高斯光束函数产生一个直径为w的横向高斯光束。
function beam = GaussianBeam(x, y, w)
k = 2*pi/ 632.8e-9;
zr = pi*w^2/632.8e-9;
R = 10;
z = 0;
beam = exp(-(x.^2 + y.^2)/w^2).*exp(1i*k*(x.^2 + y.^2)/(2*R - 2i*z + zr));
end
接着,我们定义一个函数来计算双缝和单缝的光程差,这里以双缝干涉为例,其余类型的干涉原理类似。
function phase = DoubleSlit(x, y, d, L)
k = 2*pi/ 632.8e-9;
slit_width = 5e-6;
E1 = zeros(size(x));
E2 = zeros(size(y));
E1(x >= -d/2 - slit_width/2 & x <= -d/2 + slit_width/2) = 1;