


如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
源代码: N=512; disp('衍射孔径类型1.圆孔2.单缝3.方孔') kind=input('pleaseinput衍射孔径类型:');%输入衍射孔径类型 whilekind~=1&kind~=2&kind~=3 disp('超出选择范围,请重新输入衍射孔径类型'); kind=input('pleaseinput衍射孔径类型:');%输入衍射孔径类型 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;%单缝的长度 I=zeros(N,N); [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); title('生成的衍射单缝'); case3 a=input('pleaseinput方孔边长:');%输入方孔边长 I=zeros(N,N); [m,n]=meshgrid(linspace(-N/4,N/4,N)); I(-a/2<m&m<a/2&-a/2<n&n<a/2)=1; subplot(1,2,1),imshow(I); title('生成的方孔'); otherwisekind=input('pleaseinput衍射孔径类型:');%输入衍射孔径类型 end %夫琅禾费衍射的实现过程 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)),[]); title('衍射后的图样'); figure meshz(x,y,abs(G)); title('夫琅禾费衍射强度分布') 实验输入:衍射孔径类型1.圆孔2.单缝3.方孔 pleaseinput衍射孔径类型:1 pleaseinput衍射圆孔半径(mm):3 pleaseinput衍射波长(nm):632 lamda=6.3200e-04 pleaseinput衍射屏距离衍射孔的距离(mm):1000000 实验结果: 程序说明:本实验可以选择孔径类型、孔径半径、输入波长、衍射屏和衍射孔的距离等。当衍射屏和衍射孔的距离相对较小时,此衍射为菲涅耳衍射,当距离相对较大时满足夫琅禾费衍射的条件,两者的程序一样,只是距离Z的大小不一致。又由于夫琅禾费衍射与傅里叶变换成正比,只差一个系数关系。所以程序中的衍射既是直接对物光进行傅里叶变换即可。

王子****青蛙
实名认证
内容提供者


最近下载