1 简介
利用MATLAB绘制白光单缝衍射图像和演示二维自由粒子的波函数演化过程
2 部分代码
lambda=[660,610,570,550,460,440,410].*10^(-9);%七色光的波长
RGB=[1,0,0;1,0.5,0;1,1,0;0,1,0;0,1,1;0,0,1;0.67,0,1];%七色光的RGB值
d=4e-5;b=8e-6;N=18;Bright=80;%单缝与光源的参数
Irgb=zeros(150,1885,3);%由空间各点的RGB值构成的数组,第三个维度是RGB值
Iw=zeros(150,1885,3);
for k=1:7
theta=(-0.003*pi:0.00001:0.003*pi);
phi=2*pi*d*sin(theta)/lambda(k);
alpha=pi*b*sin(theta)/lambda(k);
Idf=(sinc(alpha)).^2;
Idgs=(sin(N *phi/2)./sin(phi/2)).^2;%单缝衍射公式
I=Idf.*Idgs;
for i=1:150
Iw(i,:,1)=I*RGB(k,1);
Iw(i,:,2)=I*RGB(k,2);
Iw(i,:,3)=I*RGB(k,3);
end
%单色光的光强
Irgb=Irgb+Iw;
Iw=[];
end
Br=1/max(max(max(Irgb)));
II=Irgb*Br*Bright;%对光强进行一些调整,使图像亮度适中
imshow(II)%将RGB值转化为图像
3 仿真结果
4 参考文献
[1]学生, 高志强, 指导教师,等. 用 matlab 进行波动光学的计算机模拟.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。