Matlab 代码:
%单缝衍射对多缝干涉的调制
clear
clf
a=0.8e-5; d=4e-5; lamda=5e-7; % 缝宽、缝间距、波长
N=input('请输入缝数 N= ') ; %输入缝数
theta = -0.015*pi:0.00001: 0.015*pi; %衍射角度变化范围
phi=2*pi*d*sin(theta)/ lamda; %将衍射角转化为相位角
u= pi*a*sin(theta)/ lamda;
I0=(sinc(u)).^2; %计算单缝相对光强
Id=(sin(N*phi/2)./sin(phi/2)).^2; %计算多缝相对光强
I= I0.* Id; %单缝衍射对多缝干涉调制后的光强
subplot(2,2,1)
plot(sin(theta), I0, 'b') %画出单缝衍射相对光强的分布
xlabel('sin(theta)');
ylabel('单缝衍射相对光强');
subplot(2,2,2)
plot(sin(theta), Id, 'k') %画出N缝衍射相对光强的分布
xlabel('sin(theta)'); ylabel('多缝干涉相对光强');
subplot(2,1,2)
plot(sin(theta), N*N*I0, ':b', sin(theta), I, 'k') %画出单缝衍射对多缝干涉调制后的 光强分布图
xlabel('sin(theta)'); ylabel('光栅衍射的相对光强');
(命令行:请输入缝数 N= 8)
操作视频: