MATLAB实现多缝衍射 , 体现不同a,d取值对衍射的影响,查看缺级情况

% duo缝衍射
clear all
clc
lambda=500e-9; %波长
a=input('a='); %缝宽可取0.3e-3,1e-3,2e-3等情况
z=1; %缝到屏之间的距离取1
x1max=3*lambda*z/a; %屏幕范围
Nx=51;
xs=linspace(-x1max,x1max,Nx); %屏幕上的点数
Np=51;
xPoint=linspace(-a/2,a/2,Np); %将单缝分为Np个光源
for i=1:Nx  %对屏幕上x向各点作循环
    SinPhi=xs(i)/z; %角度
    alpha=2*pi.*xPoint*SinPhi/lambda;
    SumCos=sum(cos(alpha));
    SumSin=sum(sin(alpha));
    B(i,:)=(SumCos^2+SumSin^2)/Np^2; %取单缝上NP个光源的振幅都为1,在x,y轴
    %上的分量各位cosα,sinα,合振幅的平方为平方和,也即相对光强
end
N=255;
Br=B/max(B)*N;
subplot(121),image(x1max,xs,Br);
axis([0,0.5,-1.5e-3,1.5e-3]);colormap(gray(N));
subplot(122),plot(B,xs,'*-');
axis([0,1,-1.5e-3,1.5e-3]),grid on

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值