%圆孔的夫琅禾费衍射:
N=512;
r=3; %衍射圆孔的半径
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('生成的衍射圆孔');
% 夫琅禾费衍射的实现过程
L=500;
[X,Y]=meshgrid(linspace(-L/2,L/2,N));
lamda_1=630; % 输入衍射波长;
lamda=lamda_1/1e6
k=2*pi/lamda;
z=1000000; % 衍射屏距离衍射孔的距离
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('夫琅禾费衍射强度分布')