模拟夫琅禾费衍射的matlab源代码_精品文档文档格式.doc
- 文档编号:14437769
- 上传时间:2022-10-22
- 格式:DOC
- 页数:3
- 大小:201.50KB
模拟夫琅禾费衍射的matlab源代码_精品文档文档格式.doc
《模拟夫琅禾费衍射的matlab源代码_精品文档文档格式.doc》由会员分享,可在线阅读,更多相关《模拟夫琅禾费衍射的matlab源代码_精品文档文档格式.doc(3页珍藏版)》请在冰豆网上搜索。
'
);
%输入衍射孔径类型
whilekind~=1&
kind~=2&
kind~=3
disp('
超出选择范围,请重新输入衍射孔径类型'
kind=input('
%输入衍射孔径类型
end
switch(kind)
case1
r=input('
pleaseinput衍射圆孔半径(mm):
%输入衍射圆孔的半径
I=zeros(N,N);
[m,n]=meshgrid(linspace(-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('
生成的衍射圆孔'
case2
a=input('
pleaseinput衍射缝宽:
%输入衍射单缝的宽度
b=1000;
%单缝的长度
[m,n]=meshgrid(linspace(-N/4,N/4,N));
I(-a<
m&
m<
a&
-b<
n&
n<
b)=1;
subplot(1,2,1);
imshow(I);
生成的衍射单缝'
case3
pleaseinput方孔边长:
%输入方孔边长
I(-a/2<
a/2&
-a/2<
a/2)=1;
生成的方孔'
otherwisekind=input('
%夫琅禾费衍射的实现过程
L=500;
[x,y]=meshgrid(linspace(-L/2,L/2,N));
lamda_1=input('
pleaseinput衍射波长(nm):
%输入衍射波长;
lamda=lamda_1/1e6
k=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),imshow(log(1+abs(G)),[]);
衍射后的图样'
figure
meshz(x,y,abs(G));
夫琅禾费衍射强度分布'
实验输入:
衍射孔径类型1.圆孔2.单缝3.方孔
1
3
632
lamda=6.3200e-04
1000000
实验结果:
程序说明:
本实验可以选择孔径类型、孔径半径、输入波长、衍射屏和衍射孔的距离等。
当衍射屏和衍射孔的距离相对较小时,此衍射为菲涅耳衍射,当距离相对较大时满足夫琅禾费衍射的条件,两者的程序一样,只是距离Z的大小不一致。
又由于夫琅禾费衍射与傅里叶变换成正比,只差一个系数关系。
所以程序中的衍射既是直接对物光进行傅里叶变换即可。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模拟 夫琅禾费 衍射 matlab 源代码 精品 文档
![提示](https://static.bdocx.com/images/bang_tan.gif)