%% setting clear; depthin = zeros(200, 1); zpsflong = zeros(200, 1); intensity_record = []; for jj = 0:600 lambda = 0.8; % d = jj; % n1 = 1.08; n2 = 1.43; NA = 0.75; alpha = asin(NA / n1); k0 = 2 * pi / lambda; x = 0; %linspace(-6,6,200); D_z = linspace(-10, 50, 200); z = D_z * n2 / n1 + (n2 / n1 - 1) * d; v = 2 * pi * n1 / lambda * sqrt(2 * x .^ 2) * (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)); %% Sphere Aberration Phi_d = @(phi1, phi2, d)(-d * (n1 * cos(phi1) - n2 * cos(phi2))); %% 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 = 100; 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 = 250; %f���� 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)); intensity_record = [intensity_record; intensity]; z_pix = (max(z) - min(z)) / size(z, 2); [depthin(jj + 1), maxidx] = max(intensity(:)); intensity_mainlobe = intensity(maxidx - 33:maxidx + 33); intensity_mainlobe(intensity_mainlobe < max(intensity_mainlobe) / 2) = []; zpsflong(jj + 1) = size(intensity_mainlobe, 2) * z_pix; end figure1 = figure; ribbon(z, depthin, 0.1); colormap('autumn'); % Create ylabel ylabel({'Longitudinal length/um'}); % Create zlabel zlabel({'intensity'}); legend('50um', '100um', '150um', '200um', '250um', '300um', '350um', '400um', '450um'); % figure; % plot(intensity(100,:)); % hold on; % plot(intensity(:,101),'r-'); % figure; % [c,h]=contour(z,x,intensity/max(intensity(:)),[0.025 0.05 0:0.1:1],'-'); %clabel(c,h); depthin = depthin / max(depthin);