满意答案
usrdu
2013.11.22
采纳率:50% 等级:13
已帮助:9126人
%%傅里叶变换法
clear all
z1=20;
r=4;
N=512;
d=180;
lambda=0.0039;
k=2*pi/lambda;
f1=16*pi/lambda;
R=z1+f1^2/z1;
k0=-N/2:N/2-1;
a=sqrt(lambda*d/N);
[x0,y0]=meshgrid(k0*a);
w=4*sqrt(1+(z1/f1)^2);
Ein=100/w*exp(-(x0.^2+y0.^2)/w^2).*exp(-i*(k*(z1+(x0.^2+y0.^2)/2/R)-atan(z1/f1)));
for m=1:N %%%%%%%%%%%%%%%%%%%圆孔
for n=1:N
if (x0(m,n)^2+y0(m,n)^2>(r)^2)
Ein(m,n) = 0;
end
end
end
E=fft2(Ein.*exp(i*k/2/d*(x0.^2+y0.^2))); %%%%傅里叶变换
Eout=fftshift(abs(E));
x=x0;
y=y0;
U=exp(i*k*d)/i/lambda/d.*exp(i*k/2/d*(x.^2+y.^2)).*Eout;
I=U.*conj(U);
figure,mesh(x,y,I)
figure,plot(x,I)
00分享举报