(完整 word 版)模拟夫琅禾费衍射的 matlab 源代码
源代码:
N=512;
disp('衍射孔径类型 1.圆孔 2.单缝 3.方孔')
kind=input('please input 衍射孔径类型:');% 输入衍射孔径类型
while kind~=1&kind~=2&kind~=3
disp('超出选择范围,请重新输入衍射孔径类型');
kind=input('please input 衍射孔径类型:');% 输入衍射孔径类型
end
switch(kind)
case 1
r=input('please input 衍射圆孔半径(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('生成的衍射圆孔');
case 2
a=input('please input 衍射缝宽:');% 输入衍射单缝的宽度
b=1000;% 单缝的长度
I=zeros(N,N);
[m,n]=meshgrid(linspace(-N/4,N/4,N));
评论0
最新资源