matlab lamda是什么,【求matlab大神帮忙解决错误白光光栅衍射代码clf;%设置固定参数lamda=[660,610,570,550,460,440,410]*1e-9;%七色光的波长,...

求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); %显示仿真结果

作业帮用户2017-11-01举报

6c0a0adef10d1043fa4f41a7897345ed.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值