MATLAB仿真光的干涉(二)

光的干涉是指两列或两列以上的波在空间中重叠时,发生叠加,形成新波形的现象。

满足下列条件的光可以发生干涉:

1、光的波长(频率)相同;

2、电矢量振动方向相同;

3、相遇处相位差恒定。

两列光发生干涉,可能相长、可能相消(详见同专栏上一篇文章)。

为了利用光干涉的特殊性质完成诸如表面检测等特殊功能,我们需要人为制造相干的两列波。

这篇文章主要介绍波前分割法中的杨氏双缝干涉。

如图:

MATLAB仿真光的干涉(二)_第1张图片

 两束光的光程分别为L1、L2,用勾股定理很容易计算

可以利用光程差计算相位差,然后直接用相位差和\pi的对应关系,找到最大值和最小值所在处。

也可以用虚数表示振幅,并利用光强等于振幅平方计算光强的表达式。

本文采用第二种方式

程序代码如下:

clear,close all
lambda = 632.8e-9;%波长
d = 0.08e-3;%双缝间距
L = 1%观察屏离双缝的距离
H = 0.1%观察屏的尺寸

x01 = d/2;
x02 = -d/2;

y = linspace(-H/2,H/2,501);
x = linspace(-H/2,H/2,501);
[X Y] = meshgrid(x,y);%形成观察屏
I2 = zeros(size(X));

R1 = sqrt((y-x01).^2+L^2);
R2 = sqrt((y-x02).^2+L^2);

A1 = exp(i*2*pi/lambda*R1);
A2 = exp(i*2*pi/lambda*R2);

I = (A1+A2).*conj(A1+A2);%只考虑大小关系,不考虑实际的数值
I = I/max(I)

for k = 1:length(y)
    I2(:,k) = I(k);%每一列都填充同一个数值
end

I2

figure
imshow(I2)
title('Intensity pattern on the screen');

figure
plot(x,I)
xlabel('x (m)')
ylabel('Relative Intensity')

结果:

MATLAB仿真光的干涉(二)_第2张图片MATLAB仿真光的干涉(二)_第3张图片

 可以看到清晰的明暗条纹。

你可能感兴趣的:(#,MATLAB光学建模仿真,matlab)