关于不同探测距离的鬼衍射衍射图样输出问题

鬼成像是一种基于二阶关联的成像系统,即测试光路的光强信息与参考光路的光场信息相关联而成像。而鬼衍射特殊参数下的鬼成像,下图是鬼成像原理图

img


这里,只有鬼成像源程序,我实在不懂怎么弄出鬼衍射的衍射图样。基本参数;
clc;
clear all;
lamda=532e-9;
z2=0.6;
z0=0.2;
z1=0.4; %远场。
D=5e-3; %光源尺寸
deltax=lamdaz/D; %散斑尺寸1.1mm,适宜成像的物体的细节尺寸3mm
%%
%构建物面(Dr面)尺寸50mm,步长1mm,步数50。Dt紧贴后物面
%构建点扩散函数矩阵
dx=1e-3; %物面步长
M=50; %物面步数
ds=0.1e-3; %光源面步长
M0=50;
dt=1e-3; %Dt面步长
M1=50; %Dt面步数
dr=0.1e-3;%Dr面步长
M2=50; %Dr面步数 %光源面步数
N=M
M; %物面(Dr面)像素数
beta=0.8; %采样率
K=Nbeta;
;
%采样数
source=zeros(M0,M0,K); %方形光斑,尺寸5mm,步长0.1mm,步数50,每一个独立子光源振幅在0-1之间随机分布,相位在0-2pi之间随机分布;
Lp=lamda
z0/ds; %独立子光源尺寸为ds,有效成像周期为53.2mm,成像物体应该小于该尺寸;如果不想看到伪像,Dr面尺寸也应该小于该尺寸。

D1=zeros(M,M0);
for m=1:M
n=1:M0
D1(m,n)= exp(1j*(pi/(lamda.z2))((m-M/2)*ds-(n-M0/2).dr).^2);
end%(Dr面傅里叶变换)
D2=zeros(M0,M);
for m=1:M0
n=1:M
D2(m,n)=exp(1j
(pi/(lamda.z0))((m-M0/2)*ds-(n-M/2).dx).^2);
end%物面傅里叶变换
D3=zeros(M0,M1);
for m=1:M1
n=1:M2
D3(m,n)=exp1j
(pi/(lamda.z1))((m-M0/2)*dt-(n-M/2).*dx).^2);
end%Dt面傅里叶变换
待测物体是双缝,其输出图形为

img

不考虑测试光路桶探测器大小,求鬼衍射在不同参数z0下输出的衍射图样