clear %%This is for Zhaohongze
close all
clc
%% DMD phase mask
%Ax = 768; Ay = 768; a=0.004; lamda=632*10^(-9); x0=1/50;
M=200; a=0.12; b=800; d=0.05; x0=1/80; x0=1/60; x0=1/160; %InitialIntensityXiaoGuoHao %x0可以降低噪声; 越小效果越好 光场效果越清晰。
X=linspace(-M,M,b); Y=linspace(-M,M,b); lamda=632*10^(-9); [x,y]=meshgrid(X,Y); p=0*pi/6;q=0; %r=sqrt(x.^2+y.^2); l=0; p1=0*pi/3; % b1=1; a1=0.3; %加权调整a1... t=atan2(x,y);
x0=1/160; a1=1; v=1.8; c=40;
%%%Or M=400; x0=1/160;
%% Create the spatial grid
% l=input('输入拓扑荷数');
% c=input('输入椭圆率');
% X=X*cos(pi/4)-Y*sin(pi/4); Y=X*sin(pi/4)+Y*cos(pi/4); %坐标系旋转45度 %%%tp=2时,加坐标旋转xz图效果好
% x=x1*cos(q)-y1*sin(q); y=x1*sin(p)+y1*cos(p); %坐标变换
%E_amplitude=exp(-a*(x0^2)*(x.^2+y.^2)); %振幅项不加椭圆银子,始终不变,这项比下面振幅项为1的效果好;
%E_amplitude=1; %E_phase=angle(E);
%E=((X+1i*Y).^l).*exp(1i*((abs(X)./60).^3+(abs(Y)./60).^3)); % 2D vortex Symmetric Airy beam
%E_phase = (abs(x)./100).^3+(abs(c*y)./100).^3; %E_phase =(x0^3*(abs(X)).^3+(abs(Y)).^3); %%%%60 60
%E_phase =mod((abs(X)./100).^3,2*pi); % 1D Symmetric Airy beam
%E_target=(E_amplitude).*exp(1i*E_phase).*((X+1i*Y).^n); %on-axis 同轴涡旋
% E_target=(E_amplitude).*exp(1i*E_phase).*(((X-d)+1i*(Y-d)).^n); %off-axis
%E_target=(E_amplitude).*exp(1i*E_phase).*(((x-d)+1i*y).^n); %E_target=(E_amplitude).*exp(1i*E_phase);
%E_target=(E_amplitude).*exp(1i*E_phase).*(((X-d)+1i*(Y-d)).^n).*(((X+d)+1i*(Y+d)).^n); %%%% vortex pairs first kind...两拐点
%E_target=(E_amplitude).*exp(1i*E_phase).*(((X-d)+1i*Y).^n).*(((X+d)+1i*Y).^n); %%%% vortex pairs first kind... 两侧
%%五尖光场
% E_1=abs(x*x0).^5+abs(y*x0).^5+5.*abs(x*x0).^4.*abs(y*x0)+5.*abs(x*x0).*abs(y*x0).^4-10.*abs(x*x0).^3.*abs(y*x0).^2-10.*abs(x*x0).^2.*abs(y*x0).^3; E_target=exp(1i*E_1);
% E_1=abs(x*x0).^5+abs(a1*y*x0).^5+5.*(x*x0).^4.*abs(a1*y*x0)+5.*abs(x*x0).*(a1*y*x0).^4-10.*abs(x*x0).^3.*(a1*y*x0).^2-10.*(x*x0).^2.*abs(a1*y*x0).^3;
% E_1=(x*x0).^5+(y*x0).^5+5.*(x*x0).^4.*(y*x0)+5.*(x*x0).*(y*x0).^4-10.*(x*x0).^3.*(y*x0).^2-10.*(x*x0).^2.*(y*x0).^3; E_target=exp(1i*E_1);
%symmetric Cusp beam
% E_1=abs(x*x0).^3-3*(abs(x*x0).^2).*abs(y*x0)-3*abs(x*x0).*(abs(y*x0).^2)+abs(y*x0).^3; %E_2=angle((r.^l).*exp(1i*l.*t)); E_target=exp(1i*E_1).*exp(1i*l*E_2); %涡旋镶嵌...................
% triple cusp Beam
% E_1=(x*x0).^3-3*((x*x0).^2).*(y*x0)-3*(x*x0).*((y*x0).^2)+(y*x0).^3; %E_target=exp(1i*E_1); % E_2=angle((r.^l).*exp(1i*l.*t)); E_target=exp(1i*E_1).*exp(1i*l*E_2); %涡旋镶嵌...................
E_1=(x*x0).^7-7*((x*x0).^6).*(a1*y*x0)-7*(x*x0).*((a1*y*x0).^6)-21*((x*x0).^5.*(a1*y*x0).^2+(x*x0).^2.*(a1*y*x0).^5)+35*((x*x0).^4.*(a1*y*x0).^3+(x.*x0).^3.*(a1*y.*x0).^4)+(a1*y*x0).^7; E_target=exp(1i*E_1);
% E_target=exp(1i*E_1).*exp(v*((x*x0).^2+(y*x0).^2)); E_target=exp(1i*E_1).*exp(v*((x*x0)+(y*x0))); E_target=exp(1i*E_1);
% E_1=abs(x*x0).^7-7*((x*x0).^6).*abs(y*x0)-7*abs(x*x0).*((y*x0).^6)-21*(abs(x*x0).^5.*(y*x0).^2+(x*x0).^2.*abs(y*x0).^5)+35*((x*x0).^4.*abs(y*x0).^3+abs(x.*x0).^3.*(y.*x0).^4)+abs(y*x0).^7; E_target=exp(1i*E_1);
E_target=exp(1i*E_1);
E1=ifftshift(ifft2(fftshift(E_target)));
figure,imagesc(abs(E1).^2);colormap(hot); axis square;
% figure,subplot(1,2,1),imagesc(angle(E1));colormap(hot); axis square; subplot(1,2,2),imagesc(angle(E_target));colormap(hot); axis square;
E1=abs(E1)./max(max(abs(E1))); I1=E1.^2;
%{
for k=1:10
z=(k-1)*15;
G11=E_target.*exp(1i*2*pi*z*sqrt(ones(b,b)/(lamda.^2)-x.^2-y.^2)); %kx ky和x,y对结果无影响,均只是提供数据来源
E11=ifftshift(ifft2(fftshift(G11)));
for i=1:b
for j=1:b
E1z(i,j,k)=E11(i,j);
end
end
end
%}
for k=1:c
z=(k-1)*15;
G11=E_target.*exp(1i*2*pi*z*sqrt(ones(b,b)/(lamda.^2)-x.^2-y.^2)); %kx ky和x,y对结果无影响,均只是提供数据来源
E11=ifftshift(ifft2(fftshift(G11)));
E1z(:,k)=E11(:,0.5*b); I2(1,k)=max(max(abs(E11).^2)); E2z(k,:)=E11(:,0.5*b); %0.5*b行上的所有数据.....
end
G12=ifftshift(fft2(fftshift(E11)));
%figure,imagesc(angle(G12));colormap(hot); axis square;
figure,imagesc(abs(E1z).^2);colormap(hot);axis off; axis square;
figure,imagesc(abs(E11).^2);colormap(hot);axis square; %figure,imagesc(angle(E11));colormap(hot);axis square; %确定z平面处的光强分布,任意处的光强分布可以通过调节k值来获得 k=50效果就很不错。
E11=abs(E11)./max(max(abs(E11))); I2=abs(E11).^2;
k=-20;
z=(k-1)*15;
G11=E_target.*exp(1i*2*pi*z*sqrt(ones(b,b)/(lamda.^2)-x.^2-y.^2)); %kx ky和x,y对结果无影响,均只是提供数据来源
E11=ifftshift(ifft2(fftshift(G11)));
figure,imagesc(abs(E11).^2);colormap(hot);axis square;
k=20;
z=(k-1)*15;
G11=E_target.*exp(1i*2*pi*z*sqrt(ones(b,b)/(lamda.^2)-x.^2-y.^2)); %kx ky和x,y对结果无影响,均只是提供数据来源
E11=ifftshift(ifft2(fftshift(G11)));
figure,imagesc(abs(E11).^2);colormap(hot);axis square;
k=30;
z=(k-1)*25;
G11=E_target.*exp(1i*2*pi*z*sqrt(ones(b,b)/(lamda.^2)-x.^2-y.^2)); %kx ky和x,y对结果无影响,均只是提供数据来源
E11=ifftshift(ifft2(fftshift(G11)));
figure,imagesc(abs(E11).^2);colormap(hot);axis square;
k=40;
z=(k-1)*25;
G11=E_target.*exp(1i*2*pi*z*sqrt(ones(b,b)/(lamda.^2)-x.^2-y.^2)); %kx ky和x,y对结果无影响,均只是提供数据来源
E11=ifftshift(ifft2(fftshift(G11)));
figure,imagesc(abs(E11).^2);colormap(hot);axis square;
k=80;
z=(k-1)*20;
G11=E_target.*exp(1i*2*pi*z*sqrt(ones(b,b)/(lamda.^2)-x.^2-y.^2)); %kx ky和x,y对结果无影响,均只是提供数据来源
E11=ifftshift(ifft2(fftshift(G11)));
figure,imagesc(abs(E11).^2);colormap(hot);axis square; axis off;
% k=80;
% z=(k-1)*20;
% G11=E_target.*exp(1i*2*pi*z*sqrt(ones(b,b)/(lamda.^2)-x.^2-y.^2)); %kx ky和x,y对结果无影响,均只是提供数据来源
% E11=ifftshift(ifft2(fftshift(G11)));
% figure,imagesc(abs(E11).^2);colormap(jet);axis square;