You are on page 1of 6

%% SCP_2D_ANGSP

%% Elliptical Strength of Conical lens (axicon)


% + Propagation w/ Q_rho (better resemble Experiment)
%% 2D - Angular Spectrum - CODE1745NOV052552
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Propagation of the angular spectrum
clear all; close all; clc;
charge = 1;
M = 1024;
a0 = 30e-3;% %% [m] Sim Size
a1 = 20e-3; % [m] %% -> Apperture - Size of SLM
rpeak = 0.7e-3; %% [m] Distance from center to peak
kappa = charge/rpeak;
x = linspace(-a0/2,a0/2,M); x = x'; %% [m]
dx = abs(diff(x(1:2)));
[xx,yy] = meshgrid(x,x);
[theta,rho] = cart2pol(xx,yy);
kx = (2*pi/a0)*linspace((-M)/2,(M-2)/2,M); kx = kx';
[kxx,kyy] = meshgrid(kx,kx);
%
Bnd1 = zeros(size(xx));
Bnd1(abs(xx)<=a1/2 & abs(yy)<=a1/2)=1;
%
figure(101);clf;set(gcf,'position',[10 300 200 200]);
imagesc(x*1e3,x*1e3,Bnd1);axis image;
title('SLM Bndry');
xlabel('x (mm)');ylabel('y (mm)');
%%
lambda = 780e-9; % [m]
k = (2*pi/lambda); % [rad/m]
kz = sqrt(k^2 - (kxx.^2 + kyy.^2));
focL = -inf;%-10;%+2.7;% %% [m] %% [+] Diverge [-] Converge
sigGss = 5e-3;
%
Axy = Bnd1.*exp(-rho.^2/(2*sigGss^2));
%
figure(102);clf;hold on;box on;
set(gcf,'position',[50 200 350 300]);axis image;
plot(x'*1e3,Axy(round(M/2),:));plot(x'*1e3,Bnd1(round(M/2),:)
,'r');
xlabel('x (mm)');ylabel('Amplitude (arb. unit)');
%
figure(103);clf;set(gcf,'position',[50 600 170 170]);
imagesc(x*1e3,x*1e3,Axy.^2);axis image; colormap(hot);
% title('Input Intensity');
xlabel('x (mm)');ylabel('y (mm)');
%
figure(105);clf;set(gcf,'position',[250 600 170 170]);
imagesc(x*1e3,x*1e3,Axy.^2);axis image; colormap(hot);
% title('Input Intensity');
xlabel('x (mm)');ylabel('y (mm)');
axis(4*[-1 1 -1 1]); % -> zoom in
%
ckr = 2*kappa; % [1/m] % CHANGE HERE
Kx = k*cos(deg2rad(90)); % [1/m] % CHANGE HERE
kxR = 3; % lens ellipticity control
kyR = 1; % lens ellipticity control % CHANGE HERE
%
chg = 0*charge; % -> create for label J0
%
Q_rho = -ckr*sqrt(kxR*xx.^2 + kyR*yy.^2);% %% [+] Diverge
[-] Converge
Q_tht = chg*theta;
Q_lens = +(k*(rho.^2))/(2*focL);
Q_Kx = Kx*xx;
%
% Q0 = Bnd1.*mod(Q_rho+Q_tht+Q_kx,2*pi);
Q0 = Q_rho + Q_tht + Q_Kx;
% Q0 = discrete_angle(Qn0,4); % make binary
Q_all = Q0 + Q_lens;
%
figure(104);clf;set(gcf,'position',[50 500 170 170]);
imagesc(x*1e3,x*1e3,Bnd1.*mod(Q0,2*pi));axis image;
% title('Input Mask');
colormap(gray);
xlabel('x (mm)');ylabel('y (mm)');
%
figure(106);clf;set(gcf,'position',[250 500 170 170]);
imagesc(x*1e3,x*1e3,Bnd1.*mod(Q0,2*pi));axis image;
% title('Input Mask');
colormap(gray);
xlabel('x (mm)');ylabel('y (mm)');
axis(4*[-1 1 -1 1]); % -> zoom in
%
fxy = Axy.*exp(i*Q_all);
%%
dz = 5;%1.2;% % [m] % CHANGE HERE
%
Gz = exp(i*kz*dz);
hxy = ifft((fft(fxy).*Gz));
Ih = abs(hxy).^2;
%
%%
figure(1);set(gcf,'position',[50 300 170 170]);
imagesc(x*1e3,x*1e3,Ih);axis image;
colormap(hot);
xlabel('x (mm)');ylabel('y (mm)');
% title(['Intensity Profile @dz =',num2str(dz),' m']);
%
figure(2);set(gcf,'position',[50 50 170 170]);
imagesc(x*1e3,x*1e3,angle(hxy));axis image
xlabel('x (mm)');ylabel('y (mm)');
% title(['Phase Profile @dz =',num2str(dz),' m']);
%
figure(3);set(gcf,'position',[250 300 170 170]);
imagesc(x*1e3,x*1e3,Ih);axis image;
colormap(hot);
xlabel('x (mm)');ylabel('y (mm)');
% title(['Intensity Profile @dz =',num2str(dz),' m']);
axis(4*[-1 1 -1 1]); % -> zoom in
%
figure(4);set(gcf,'position',[250 50 170 170]);
imagesc(x*1e3,x*1e3,angle(hxy));axis image
xlabel('x (mm)');ylabel('y (mm)');
% title(['Phase Profile @dz =',num2str(dz),' m']);
axis(4*[-1 1 -1 1]); % -> zoom in
%%

You might also like