模拟夫琅禾费衍射的matlab源代码

上传人:人*** 文档编号:510392035 上传时间:2024-01-29 格式:DOC 页数:3 大小:188.50KB
返回 下载 相关 举报
模拟夫琅禾费衍射的matlab源代码_第1页
第1页 / 共3页
模拟夫琅禾费衍射的matlab源代码_第2页
第2页 / 共3页
模拟夫琅禾费衍射的matlab源代码_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《模拟夫琅禾费衍射的matlab源代码》由会员分享,可在线阅读,更多相关《模拟夫琅禾费衍射的matlab源代码(3页珍藏版)》请在金锄头文库上搜索。

1、 源代码:N=512; disp(衍射孔径类型 1.圆孔 2.单缝 3.方孔)kind=input(please input 衍射孔径类型:);% 输入衍射孔径类型while kind=1&kind=2&kind=3 disp(超出选择范围,请重新输入衍射孔径类型); kind=input(please input 衍射孔径类型:);% 输入衍射孔径类型 endswitch(kind)case 1 r=input(please input 衍射圆孔半径(mm):);% 输入衍射圆孔的半径I=zeros(N,N);m,n=meshgrid(linspace(-N/16,N/16-1,N);D=(

2、m.2+n.2).(1/2);I(find(D=r)=1;subplot(1,2,1),imshow(I);title(生成的衍射圆孔); case 2a=input(please input 衍射缝宽:);% 输入衍射单缝的宽度b=1000;% 单缝的长度I=zeros(N,N);m,n=meshgrid(linspace(-N/4,N/4,N);I(-am&ma&-bn&nb)=1;subplot(1,2,1);imshow(I);title(生成的衍射单缝); case 3a=input(please input 方孔边长:);% 输入方孔边长I=zeros(N,N);m,n=meshg

3、rid(linspace(-N/4,N/4,N);I(-a/2m&ma/2&-a/2n&na/2)=1;subplot(1,2,1),imshow(I);title(生成的方孔); otherwise kind=input(please input 衍射孔径类型:);% 输入衍射孔径类型end % 夫琅禾费衍射的实现过程 L=500;x,y=meshgrid(linspace(-L/2,L/2,N);lamda_1=input(please input 衍射波长(nm):);% 输入衍射波长;lamda=lamda_1/1e6k=2*pi/lamda;z=input(please input

4、衍射屏距离衍射孔的距离(mm):);% 衍射屏距离衍射孔的距离h=exp(1j*k*z)*exp(1j*k*(x.2+y.2)/(2*z)/(1j*lamda*z);%脉冲相应H =fftshift(fft2(h);%传递函数B=fftshift(fft2(I);%孔频谱G=fftshift(ifft2(H.*B);subplot(1,2,2),imshow(log(1+abs(G),);title(衍射后的图样);figuremeshz(x,y,abs(G);title(夫琅禾费衍射强度分布) 实验输入:衍射孔径类型 1.圆孔 2.单缝 3.方孔please input 衍射孔径类型:1please input 衍射圆孔半径(mm):3please input 衍射波长(nm):632lamda =6.3200e-04please input 衍射屏距离衍射孔的距离(mm):1000000实验结果:程序说明:本实验可以选择孔径类型、孔径半径、输入波长、衍射屏和衍射孔的距离等。当衍射屏和衍射孔的距离相对较小时,此衍射为菲涅耳衍射,当距离相对较大时满足夫琅禾费衍射的条件,两者的程序一样,只是距离Z的大小不一致。又由于夫琅禾费衍射与傅里叶变换成正比,只差一个系数关系。所以程序中的衍射既是直接对物光进行傅里叶变换即可。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号