干涉与衍射是光学的主要内容,也是计算机仿真的热点。与单色光相比,白光干涉与衍射的计算机仿真是个难点。本文依据七色光可合成为白光的原理,基于Matlab 仿真白光干涉与衍射实验。首先基于Matlab 编写白光光栅衍射仿真程序,然后通过改变输入参数而达到利用一个程序同时仿真白光干涉与衍射实验的目的,仿真结果与实际的白光干涉与衍射实验一致。最后编写操作性很强的人机交互界面,可以实现脱离matlab环境单独运行的效果,具有很强的实践性。
基于Matlab 的七色光仿真白光干涉与衍射实验, 其算法主要包括以下几个步骤:
①设置固定参数并赋值,设置可调参数并赋默认值;
②设置仿真光屏参数(即仿真结果RGB 值图像矩阵大小);
③计算各色光干涉或衍射的光强及其对应的RGB值矩阵数据;
④依据红绿蓝三基色加性混合法则,把各色光的RGB 值矩阵数据计入仿真结果RGB 值图像矩阵中;
⑤显示仿真结果(即显示仿真结果RGB 值图像矩阵)。
%基于matlab仿真白光光栅衍射实验程序
clear
clf
%设置固定参数
lamda=[600 610 570 550 460 440 410]*1e-9;%七色光的波长,单位m
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; %亮度调节系
%%%白光单缝衍射参数
% b=8e-6;
% N=1;%透光缝宽及光栅单元数
% Bright=20; %亮度调节系数
%白光双光束干涉
b=8e-6;
N=2;%透光缝宽及光栅单元数
Bright=1;