near-field calculations

convolution via Fourier Transform

Contents

nearfield example

Test recovery of original input (infinite Fresnel number)

N=1024;
D=32;
invNf=0;

k=-N/2:N/2-1;
x = (1/D)*k;
dx = x(2)-x(1);

g = rect(x/2);
gf = fftshift(fft(fftshift(g)))*dx;

f = gf.*qchirp(fx,-invNf);

z = fftshift(ifft(fftshift(f)))*dx*N;
x = (D/N)*k;
y = z.*conj(z);

xrange=2;
idx = find(abs(x)<xrange);
plot(x(idx),y(idx),'k','LineWidth',1.5);
axis([-xrange xrange 0 1.2]);
xlabel('x/w');
ylabel('irradiance');

example1 (infinite Fresnel number)

nslit(0);

Nf = 100

nslit(1/100);

Nf = 10

nslit(1/10);

Nf = 1

nslit(1);

Nf = 0.1;

nslit(10);

compare Nf = 1

ncompare(1);

compare Nf = 10

ncompare(10);

exact vs. near-field

Nf = 50;

% near field calculation
nslit(1/Nf);

% direct calculation
subplot(2,1,1);
slit(Nf);