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

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

ID:24648712

大小:201.50 KB

页数:3页

时间:2018-11-14

模拟夫琅禾费衍射的matlab源代码_第1页
模拟夫琅禾费衍射的matlab源代码_第2页
模拟夫琅禾费衍射的matlab源代码_第3页
资源描述:

《模拟夫琅禾费衍射的matlab源代码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、源代码:N=512;disp('衍射孔径类型1.圆孔2.单缝3.方孔')kind=input('pleaseinput衍射孔径类型:');%输入衍射孔径类型whilekind~=1&kind~=2&kind~=3disp('超出选择范围,请重新输入衍射孔径类型');kind=input('pleaseinput衍射孔径类型:');%输入衍射孔径类型endswitch(kind)case1r=input('pleaseinput衍射圆孔半径(mm):');%输入衍射圆孔的半径I=zeros(N,N);[m,n]=meshgrid(linspa

2、ce(-N/16,N/16-1,N));D=(m.^2+n.^2).^(1/2);I(find(D<=r))=1;subplot(1,2,1),imshow(I);title('生成的衍射圆孔');case2a=input('pleaseinput衍射缝宽:');%输入衍射单缝的宽度b=1000;%单缝的长度I=zeros(N,N);[m,n]=meshgrid(linspace(-N/4,N/4,N));I(-a

3、e3a=input('pleaseinput方孔边长:');%输入方孔边长I=zeros(N,N);[m,n]=meshgrid(linspace(-N/4,N/4,N));I(-a/2

4、1=input('pleaseinput衍射波长(nm):');%输入衍射波长;lamda=lamda_1/1e6k=2*pi/lamda;z=input('pleaseinput衍射屏距离衍射孔的距离(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),im

5、show(log(1+abs(G)),[]);title('衍射后的图样');figuremeshz(x,y,abs(G));title('夫琅禾费衍射强度分布')实验输入:衍射孔径类型1.圆孔2.单缝3.方孔pleaseinput衍射孔径类型:1pleaseinput衍射圆孔半径(mm):3pleaseinput衍射波长(nm):632lamda=6.3200e-04pleaseinput衍射屏距离衍射孔的距离(mm):1000000实验结果:程序说明:本实验可以选择孔径类型、孔径半径、输入波长、衍射屏和衍射孔的距离等。当衍射屏和衍射孔的

6、距离相对较小时,此衍射为菲涅耳衍射,当距离相对较大时满足夫琅禾费衍射的条件,两者的程序一样,只是距离Z的大小不一致。又由于夫琅禾费衍射与傅里叶变换成正比,只差一个系数关系。所以程序中的衍射既是直接对物光进行傅里叶变换即可。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。