Files
slm/Exz_mod.m
wxchen ba13a3f053 Initial commit
new file:   Copy_of_Exz_with_hamamatsu.m
	new file:   Exz_mod.m
	new file:   Exz_with_hamamatsu.m
	new file:   GS.m
	new file:   MRAF.m
	new file:   MRAF_8bit.bmp
	new file:   PSF of spherical aberration/Exz.m
	new file:   PSF of spherical aberration/Thumbs.db
	new file:   PSF of spherical aberration/josaa-12-10-2136.pdf
	new file:   PSF of spherical aberration/josaa-12-2-325.pdf
	new file:   PSF of spherical aberration/main.m
	new file:   "PSF of spherical aberration/\351\207\215\350\246\201psf\346\226\207\347\214\256.pdf"
	new file:   Spherical_aberration_SiminCao.m
	new file:   gen_m.m
	new file:   gen_rectangle.m
	new file:   hamamatsu.m
	new file:   m.tif
	new file:   m2.tif
	new file:   photo/50-30.BMP
	new file:   photo/8bit_50-30.BMP
	new file:   photo/8bit_ellipse.BMP
	new file:   photo/convert_8bit.exe
	new file:   photo/ellipse.BMP
	new file:   rect_MRAF_SiminCao.m
	new file:   rectangle.tif
	new file:   size/.vscode/settings.json
	new file:   size/black_c_20THSize_4f_1.064lamda.bmp
	new file:   size/black_c_30THSize_4f_61.064lamda.bmp
	new file:   size/black_output.bmp
	new file:   size/black_rect_30THSize_4f_1.064lamda.bmp
	new file:   size/black_rect_30THSize_4f_6_1.064lamda.bmp
	new file:   size/c_20THSize_4f_1.064lamda.bmp
	new file:   size/c_20THSize_4f_1.064lamda_resize.bmp
	new file:   size/c_30THSize_4f_61.064lamda.bmp
	new file:   size/c_30THSize_4f_61.064lamda_resize.bmp
	new file:   size/noisy_output.bmp
	new file:   size/output.bmp
	new file:   size/rect_30THSize_4f_1.064lamda.bmp
	new file:   size/rect_30THSize_4f_1.064lamda_resize.bmp
	new file:   size/rect_30THSize_4f_6_1.064lamda.bmp
	new file:   size/rect_30THSize_4f_6_1.064lamda_resize.bmp
	new file:   size/resize_4.7z
	new file:   size/resize_black.7z
	new file:   size/size copy.py
	new file:   size/size.py
	new file:   size/wave.7z
	new file:   sp.m
	new file:   to8bit.m
	new file:   trans_8bit.zip
	new file:   wavef/A.bmp
	new file:   wavef/B_linear.bmp
	new file:   wavef/PHA SID230828-2003.csv
	new file:   wavef/PHA_bilinear_1280_1024.csv
	new file:   wavef/PHA_bilinear_reversal.csv
	new file:   wavef/PHA_output_1280_1024.csv
	new file:   wavef/Untitled-1.py
	new file:   wavef/filled.bmp
	new file:   wavef/from PIL import Image.py
	new file:   wavef/matrix_filled.csv
	new file:   wavef/output.bmp
	new file:   wavef/output.csv
	new file:   wavef/output2.bmp
	new file:   wavef/pha_wavef copy.py
	new file:   wavef/pha_wavef.py
	new file:   wavef/pha_wavef_step.py
	new file:   wavef/wavef.zip
	new file:   wavef/xy_values.csv
	new file:   "wavef/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/matrix.csv"
	new file:   "wavef/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/matrix_filled.csv"
2023-08-29 23:06:40 +08:00

84 lines
2.7 KiB
Matlab

lambda=1.064;%单位um
d=210;%穿透深度
n1=1;
n2=2.585;
NA=0.65;
alpha=asin(NA/n1);
k0=2*pi/lambda;
x=linspace(-3,3,100);%linspace(-6,6,200);
D_z=linspace(-100,100,800);
% z=D_z*2.88+(2.88-1)*d;
z=linspace(-d,600,1000);
v=2*pi*n1/lambda*abs(x)*(NA/n1);
u=2*pi*n2/lambda*z*(NA/n1)^2;
[u,v]=meshgrid(u,v);
%% Fresnel transmission coefficients
% Rs=@(phi1,phi2)((n1*cos(phi1)-n2*cos(phi2))/(n1*cos(phi1)+n2*cos(phi2)));
% Rp=@(phi1,phi2)((n1*cos(phi2)-n2*cos(phi1))/(n1*cos(phi2)+n2*cos(phi1)));
% Ts=@(phi1,phi2)(1-Rs(phi1,phi2));
% Tp=@(phi1,phi2)(1-Rp(phi1,phi2));
Ts=@(phi1,phi2)2*n1*cos(phi1)/(n1*cos(phi1)+n2*cos(phi2));
Tp=@(phi1,phi2)2*n1*cos(phi1)/(n2*cos(phi1)+n1*cos(phi2));
% Ts=@(phi1,phi2)0.5;
% Tp=@(phi1,phi2)0.5;
%% Sphere Aberration
Phi_d=@(phi1,phi2,d)(-d*(n1*cos(phi1)-n2*cos(phi2)));
% Phi_d=@(phi1,phi2,d)d*n2*cos(phi2)*(1-1/0.3472); %Salter算法校正
% Phi_d=@(phi1,phi2,d)-1.8904*d*n2*cos(phi2); %中科院郑炜算法校正
% Phi_d=@(phi1,phi2,d)0;
%% I transfored integrals
I0_in=@(phi1,phi2)cos(phi1)^0.5*sin(phi1)* (Ts(phi1,phi2)+Tp(phi1,phi2)*cos(phi2))...
*exp(1i*u.*cos(phi2)/sin(alpha)^2)*exp(1i*k0*Phi_d(phi1,phi2,d)).* besselj(0,v*sin(phi1)/sin(alpha));
I1_in=@(phi1,phi2)cos(phi1)^0.5*sin(phi1)* (Tp(phi1,phi2)*sin(phi2))...
*exp(1i*u.*cos(phi2)/sin(alpha)^2)*exp(1i*k0*Phi_d(phi1,phi2,d)).* besselj(1,v*sin(phi1)/sin(alpha));
I2_in=@(phi1,phi2)cos(phi1)^0.5*sin(phi1)* (Ts(phi1,phi2)-Tp(phi1,phi2)*cos(phi2))...
*exp(1i*u.*cos(phi2)/sin(alpha)^2)*exp(1i*k0*Phi_d(phi1,phi2,d)).* besselj(2,v*sin(phi1)/sin(alpha));
%% integree 求和方式计算积分
intnum=500; %积分分段
Dphi=alpha/intnum;
I0=0;
I1=0;
I2=0;
for ii=0:intnum
disp(ii);
phi1=ii*Dphi;
phi2=asin(sin(phi1)*n1/n2);
I0=I0+I0_in(phi1,phi2)*Dphi;
I1=I1+I1_in(phi1,phi2)*Dphi;
I2=I2+I2_in(phi1,phi2)*Dphi;
end
%%
l0=1;%l_0 is an amplitude factor
f=4000; %f焦距um
K=pi*n1* f*l0/lambda;
%在xz的一个截面上 theta_p=0
e_2x=-1i*K*(I2+I0);
e_2y=0;
e_2z=-2*K*I1;
intensity=(e_2x.*conj(e_2x)+e_2y.*conj(e_2y)+e_2z.*conj(e_2z));
figure;
imagesc(z+d,x,intensity);
xlabel('z/um');
ylabel('x/um');
axis([500,750,-3,3])
figure(2)
plot(z+d,intensity(51,:))
% [c,h]=contour(z,x,intensity/max(intensity(:)),[0.025 0.05 0:0.1:1],'-');
% [c,h]=contour(z,x,intensity/max(intensity(:)),[1.1e-1, 5.6e-2, 2.9e-2, 1.5e-2, 8.1e-3, 4.3e-3, 2.2e-3, 1.2e-3, 6.2e-4, 3.3e-4, 1.7e-4, 9.1e-5, 4.8e-5, 2.5e-5, 1.3e-5, 6.9e-6, 3.7e-6, 1.9e-6, 1e-6, 5.3e-7]/1.3e-1,'-');
% clabel(c,h);
%
% rr=mat2gray(intensity(round(length(x)/2):end,round(length(D_z)/2)));
% r=linspace(0,x(end),length(rr));
% theta=linspace(0,2*pi,100);
% [R,Theta]=meshgrid(r,theta);
% zz=meshgrid(rr,theta);
% xx=R.*cos(Theta);
% y=R.*sin(Theta);
% figure
% pcolor(xx,y,zz);
% axis square;
% shading interp;