Contents

One point, regular pattern

N=4096;M=N;
dx=0.25e-6;dy=dx;
lambda=800e-9;
NA=0.9;
xax=fftaxisshift([0:N-1]*dx);
yax=fftaxisshift([0:M-1]*dy);
fxax=fftaxisshift(fftaxis(xax));
fyax=fftaxisshift(fftaxis(yax));
uax=fxax*lambda;
vax=fyax*lambda;

[x,y]=meshgrid(xax,yax);
[fx,fy]=meshgrid(fxax,fyax);
[u,v]=meshgrid(uax,vax);

locx=2200;locy=2049;
d=zeros(size(x));
d(locy,locx)=1;
yy=yax(locy);xx=xax(locx);
d=fftshift(d);

D=fftshift(fft2(d));
maskNA1=double((u.^2+v.^2)<NA^2);
D2=D.*maskNA1;
mask=zeros(size(u));

R=NA*0.9;r=NA/10;
Angles=7;
for n=1:Angles;
  a=2*pi/Angles*n;
  centeru=R*cos(a);centerv=R*sin(a);
  mask(find(((u-centeru).^2+(v-centerv).^2)<r^2))=1;
end;
R=NA*0.45;r=NA/10;
Angles=5;
for n=1:Angles;
  a=2*pi/Angles*n;
  centeru=R*cos(a);centerv=R*sin(a);
  mask(find(((u-centeru).^2+(v-centerv).^2)<r^2))=1;
end;
D3=D2.*mask;

figure;imagesc(uax,vax,abs(D2));axis image;
xlabel('u');ylabel('v');
colorbar;
title('Pupil Amplitude');
figure;imagesc(uax,vax,angle(D2));axis image;
xlabel('u');ylabel('v');
colormap(hsv);colorbar;
title('Pupil Phase');

figure;imagesc(uax,vax,abs(D3));axis image;
xlabel('u');ylabel('v');
colorbar;
title('Pupil Amplitude');
hold on;circle(0,0,NA,'w');hold off;
figure;imagesc(uax,vax,angle(D3));axis image;
xlabel('u');ylabel('v');
colormap(hsv);colorbar;
title('Pupil Phase');
hold on;circle(0,0,NA,'w');hold off;

d2=ifftshift(ifft2(D2));
figure;imagesc(xax*1e6,yax*1e6,abs(d2).^2);axis image;colorbar;
xlabel('x, \mum');ylabel('y, \mum');
title('Abs of Image');
axis([xx*1e6+[-5,5],yy*1e6+[-5,5]]);

d3=ifftshift(ifft2(D3));
figure;imagesc(xax*1e6,yax*1e6,abs(d3).^2);axis image;colorbar;
xlabel('x, \mum');ylabel('y, \mum');
title('Abs of Compressed Image');
axis([xx*1e6+[-5,5],yy*1e6+[-5,5]]);

points_in_pupil=length(find(maskNA1>0))
points_used=length(find(mask>0))
points_in_pupil =
     4169025
points_used =
      500261

One point, random pattern

N=4096;M=N;
dx=0.25e-6;dy=dx;
lambda=800e-9;
NA=0.9;
xax=fftaxisshift([0:N-1]*dx);
yax=fftaxisshift([0:M-1]*dy);
fxax=fftaxisshift(fftaxis(xax));
fyax=fftaxisshift(fftaxis(yax));
uax=fxax*lambda;
vax=fyax*lambda;

[x,y]=meshgrid(xax,yax);
[fx,fy]=meshgrid(fxax,fyax);
[u,v]=meshgrid(uax,vax);

locx=2200;locy=2049;
d=zeros(size(x));
d(locy,locx)=1;
yy=yax(locy);xx=xax(locx);
d=fftshift(d);

D=fftshift(fft2(d));
maskNA1=double((u.^2+v.^2)<NA^2);
D2=D.*maskNA1;
mask=zeros(size(u));

subs=12;
for n=1:subs;
R=rand(1)*NA*0.9;r=NA/20+rand(1)*NA/20;
  a=2*pi*rand(1);
  centeru=R*cos(a);centerv=R*sin(a);
  mask(find(((u-centeru).^2+(v-centerv).^2)<r^2))=1;
end;
D3=D2.*mask;

figure;imagesc(uax,vax,abs(D2));axis image;
xlabel('u');ylabel('v');
colorbar;
title('Pupil Amplitude');
figure;imagesc(uax,vax,angle(D2));axis image;
xlabel('u');ylabel('v');
colormap(hsv);colorbar;
title('Pupil Phase');

figure;imagesc(uax,vax,abs(D3));axis image;
xlabel('u');ylabel('v');
colorbar;
title('Pupil Amplitude');
hold on;circle(0,0,NA,'w');hold off;
figure;imagesc(uax,vax,angle(D3));axis image;
xlabel('u');ylabel('v');
colormap(hsv);colorbar;
title('Pupil Phase');
hold on;circle(0,0,NA,'w');hold off;

d2=ifftshift(ifft2(D2));
figure;imagesc(xax*1e6,yax*1e6,abs(d2).^2);axis image;colorbar;
xlabel('x, \mum');ylabel('y, \mum');
title('Abs of Image');
axis([xx*1e6+[-5,5],yy*1e6+[-5,5]]);

d3=ifftshift(ifft2(D3));
figure;imagesc(xax*1e6,yax*1e6,abs(d3).^2);axis image;colorbar;
xlabel('x, \mum');ylabel('y, \mum');
title('Abs of Compressed Image');
axis([xx*1e6+[-5,5],yy*1e6+[-5,5]]);

points_in_pupil=length(find(maskNA1>0))
points_used=length(find(mask>0))
points_in_pupil =
     4169025
points_used =
      264871

Two points, random pattern

N=4096;M=N;
dx=0.25e-6;dy=dx;
lambda=800e-9;
NA=0.9;
xax=fftaxisshift([0:N-1]*dx);
yax=fftaxisshift([0:M-1]*dy);
fxax=fftaxisshift(fftaxis(xax));
fyax=fftaxisshift(fftaxis(yax));
uax=fxax*lambda;
vax=fyax*lambda;

[x,y]=meshgrid(xax,yax);
[fx,fy]=meshgrid(fxax,fyax);
[u,v]=meshgrid(uax,vax);

d=zeros(size(x));
d(2049,2200)=1;
d(2000,2500)=1;
d=fftshift(d);

D=fftshift(fft2(d));
maskNA1=double((u.^2+v.^2)<NA^2);
D2=D.*maskNA1;
mask=zeros(size(u));

subs=12;
for n=1:subs;
R=rand(1)*NA*0.9;r=NA/20+rand(1)*NA/20;
  a=2*pi*rand(1);
  centeru=R*cos(a);centerv=R*sin(a);
  mask(find(((u-centeru).^2+(v-centerv).^2)<r^2))=1;
end;
D3=D2.*mask;

figure;imagesc(uax,vax,abs(D2));axis image;
xlabel('u');ylabel('v');
colorbar;
title('Pupil Amplitude');
figure;imagesc(uax,vax,angle(D2));axis image;
xlabel('u');ylabel('v');
colormap(hsv);colorbar;
title('Pupil Phase');

figure;imagesc(uax,vax,abs(D3));axis image;
xlabel('u');ylabel('v');
colorbar;
title('Pupil Amplitude');
hold on;circle(0,0,NA,'w');hold off;
figure;imagesc(uax,vax,angle(D3));axis image;
xlabel('u');ylabel('v');
colormap(hsv);colorbar;
title('Pupil Phase');
hold on;circle(0,0,NA,'w');hold off;

d2=ifftshift(ifft2(D2));
figure;imagesc(xax*1e6,yax*1e6,abs(d2).^2);axis image;colorbar;
xlabel('x, \mum');ylabel('y, \mum');
title('Abs of Image');
axis([30,120,-45,45]);

d3=ifftshift(ifft2(D3));
figure;imagesc(xax*1e6,yax*1e6,abs(d3).^2);axis image;colorbar;
xlabel('x, \mum');ylabel('y, \mum');
title('Abs of Compressed Image');
axis([30,120,-45,45]);

points_in_pupil=length(find(maskNA1>0))
points_used=length(find(mask>0))
points_in_pupil =
     4169025
points_used =
      245475