求matlab大神帮忙解决错误白光光栅衍射代码clf;%设置固定参数lamda=[660,610,570,550,460,440,410]*1e-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; %光栅常

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/22 10:34:14
求matlab大神帮忙解决错误白光光栅衍射代码clf;%设置固定参数lamda=[660,610,570,550,460,440,410]*1e-9;%七色光的波长,单位米RGB=[1,0,0;1,0

求matlab大神帮忙解决错误白光光栅衍射代码clf;%设置固定参数lamda=[660,610,570,550,460,440,410]*1e-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; %光栅常
求matlab大神帮忙解决错误白光光栅衍射代码
clf;
%设置固定参数
lamda=[660,610,570,550,460,440,410]*1e-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,1048,3); %仿真光屏矩阵(仿真结果RGB值图像矩阵,初值置零)
Iw=zeros(150,1048,3); %用于记录各色光衍射结果的RGB值矩阵(初值置零)
%计算白光光栅衍射的光强及对应的RGB 值矩阵数据
%计算各色光光栅衍射光强分布
for k=1:7
theta=(-0.015*pi:0.00001:0.015*pi); %衍射角度的变化范围
phi=2*pi*d*sin(theta)/lamda(k);
alpha=pi*b*sin(theta)/lamda(k);
Idf=(sinc(alpha)).^2; %单缝衍射的相对光强
Idgs=(sin(N*phi/2)./sin(phi/2)).^2; %多光束干涉的相对光强
I= Idf .* Idgs; %光栅衍射的相对光强
%计算与各色光衍射光强对应的RGB 值矩阵数据
for i=1:150
Iw(i,:,1)=I*RGB(k,1); %把红基色代码计入Iw 矩阵红维度
Iw(i,:,2)=I*RGB(k,2); %把绿基色代码计入Iw 矩阵绿维度
Iw(i,:,3)=I*RGB(k,3); %把蓝基色代码计入Iw 矩阵蓝维度
end
%计算白光光栅衍射RGB 值图像矩阵数据
Irgb=Irgb+Iw; %把各色光衍射的RGB 值矩阵计入仿真结果RGB 值图像矩阵中
Iw=[];
end
%显示白光光栅衍射实验仿真结果
Br=1/max(max(max(Irgb))); %调整Irgb 矩阵元素的最大值为1 的系数
II=Irgb*Br*Bright; %调节仿真图像亮度
imshow(II); %显示仿真结果

求matlab大神帮忙解决错误白光光栅衍射代码clf;%设置固定参数lamda=[660,610,570,550,460,440,410]*1e-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; %光栅常
clf;
%设置固定参数
lamda=[660,610,570,550,460,440,410]*1e-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,9425,3); %仿真光屏矩阵(仿真结果RGB值图像矩阵,初值置零)
Iw=zeros(150,9425,3); %用于记录各色光衍射结果的RGB值矩阵(初值置零)
%计算白光光栅衍射的光强及对应的RGB 值矩阵数据
%计算各色光光栅衍射光强分布
for k=1:7
theta=(-0.015*pi:0.00001:0.015*pi); %衍射角度的变化范围
phi=2*pi*d*sin(theta)/lamda(k);
alpha=pi*b*sin(theta)/lamda(k);
Idf=(sinc(alpha)).^2; %单缝衍射的相对光强
Idgs=(sin(N*phi/2)./sin(phi/2)).^2; %多光束干涉的相对光强
I= Idf .* Idgs; %光栅衍射的相对光强
%计算与各色光衍射光强对应的RGB 值矩阵数据
for i=1:150
red = I*RGB(k,1); %把红基色代码计入Iw 矩阵红维度
green = I*RGB(k,2); %把绿基色代码计入Iw 矩阵绿维度
yellow = I*RGB(k,3);%把蓝基色代码计入Iw 矩阵蓝维度
Iw(i,:,1)=red;
Iw(i,:,2)=green;
Iw(i,:,3)=yellow;
end
%计算白光光栅衍射RGB 值图像矩阵数据
Irgb=Irgb+Iw; %把各色光衍射的RGB 值矩阵计入仿真结果RGB 值图像矩阵中
Iw=[];
end
%显示白光光栅衍射实验仿真结果
Br=1/max(max(max(Irgb))); %调整Irgb 矩阵元素的最大值为1 的系数
II=Irgb*Br*Bright; %调节仿真图像亮度
imshow(II); %显示仿真结果