你对照单缝衍射光强分布公式看这个程序,就简单了,程序中用image函数仿真绘制衍射图样,用plot函数绘制光强;
没有主函数,程序前部分生成仿真单缝衍射所需要的光强分布数据(51个点数据),后部分是用image,plot两个函数(MATLAB自己的)仿真图像;
用subplot将图形窗口分成两块,第一块仿真绘制衍射图样,第二块用plot函数绘制光强。
关键语句,我在后面进行了注释!
lam=500e-9
a= 1e-3f=1
xm= 3*lam*f/a
nx= 51
xs=linspace(-xm,xm,nx)%在-xm到xm之间均匀产生51个数据
np=51
xp=linspace(0,a,np)%在0到a之间均匀产生51个数据
%以上语句创建若干变量,与特定公式有关
for i=1:nx
sinphi= xs(i)/f
alpha=2*pi*xp*sinphi/lam
sumcos=sum(cos(alpha))
sumsin=sum(sin(alpha))
B(i,:)=(sumcos^2+sumsin^2)/np^2
end
%以上语句为for循环,计算51个位置的衍射光强,放在B向量中
N=255
Br=(B/max(B))*N%归一化到对应像素灰度
figure(1)
subplot(1,2,1)
image(xm,xs,Br)%仿真衍射图像
colormap(gray(N))
subplot(1,2,2)
plot(B,xs)%仿真单缝衍射光强
lamda=[600 610 570 550 460 440 410]*1e-5%七色光的波长 RGB=[1,0,01,0.5,01,1,00,1,00,1,10,0,10.67,0,1]%七色光的RGB值 h=0.05%距离 pc=zeros(500,500,3)%设置光屏 %可调参数 r=0.54%反射系数 n=1.5%折射率 d=1.7%薄膜厚度 [x,y]=meshgrid(linspace(-0.005,0.005,500))z=x+1i*ytheta=atan(abs(z)/h)%设置入射角 for k=1:7 phi=4*pi*n*d*cos(theta)/lamda(k)%相位差 It=1./(1+4*r^2*sin(phi/2).^2/(1-r^2)^2)%光强 p(:,:,1)=It*RGB(k,1)p(:,:,2)=It*RGB(k,2)p(:,:,3)=It*RGB(k,3)%将包含颜色信息的光强用矩阵保存下来 pc=pc+pp=[]end%显示 Br=1/max(max(max(pc)))%调整矩阵元素的最大值为1的系数 pcl=pc*Br%调节 imshow(pcl,[]) %显示仿真结果 title('多光束干涉仿真结果')本人从日本回来,单位要求评估一下virtuallab这个软件。本人从事衍射光学设计,在日本和Virtuallab的日本代理有很多的交流,得知这个软件在日本和美国都卖不动,基本上没有人愿意使用这个软件,本人试用了多次,总结其原因如下: E5w75,1. 建模能力有限 ,不能支持CAD文件的导入;很多的面型需要编程来实现,采用C#和VB的编程方式反而没有matlab等数学软件编程方便。 <Dd>- K
2. 光学元件类型有限,没有反射镜模型,就是说不能考虑反射镜的模型;不能倾斜和偏心;在光栅工具只能考虑透射场;没有棱镜模型。 <h/%jM>9/
3. 此软件号称做衍射光学元件很强,可是仔细一看,只有傅里叶迭代的优化算法,居然没有常见的模拟退火和遗传算法-----。 0f^{Rp6
4. LED整形,只有微机构光栅模型,没有微结构棱镜和微结构的mirror模型,也就是用来能看看。 V)j[`,M:
5. 所谓的激光工具只是一个摆设,激光的简单的模型都不能分析。 A*EOn1hN
6. 光栅工具的光源只能用理想的平面波;不能考虑反射场。 FEaT}/h
7. 没见到号称所有的模拟技术都整合在一起,却是只见到几种简单的模拟技术,甚至没有FDTD算法。
-----------------不一一例举了----- J
综上所述,此软件只是适合于高校的教学演示使用。相比而言,没有matlab方便以及适用面广泛,没有能应用的实用价值。 <kak9 6A
回到国内,发现很多的研究所(如上海光机所和长光所)和高校(如南京理工和长春理工)均买了这个软件,而且价格很贵,听说要上100W了,在中国的报价比在美国和日本等地方的价格要高出很多倍,相信大家都懂这是什么原因。如此软件在欧美,使用者基本上没有,在中国却发扬光大。不知道国内的购买者用来做什么,难道需要这么贵的软件来进行教学演示吗?由此可知,软件本身的功能并不是重点,在这种交易后面的东西才是重要。一个愿意买,一个愿意卖,中间各得好处。本人有日本和美国的报价单,价格和国内相比,相差6倍左右,如此不堪一用的软件,居然能够在国内如此高价出售,大家都知道其中的原因。在这个软件所有的功能,本人通过自编程序或者matlab编程均可以实现。 Y@UkP+{f=
国内的购买者再怎么差劲,不至于让人如此欺骗吧--------
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)