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"
This commit is contained in:
wxchen
2023-08-29 23:06:40 +08:00
commit ba13a3f053
69 changed files with 1320863 additions and 0 deletions

87
rect_MRAF_SiminCao.m Normal file
View File

@@ -0,0 +1,87 @@
%MARF algorithm for the generation of Holograms of arbitrary designed beam shape
close all
clear all
clc
m=0.5;%mixing parameter when iterating,if m=1,then it is totally GS algorithm ,m = 1,GS
row=1280;%resolution of DOE in x direction
column=1024;%resolution of DOE in y direction
[x,y]=meshgrid(1:row,1:column);
R=0.0003;%curvature of quadratic phase profile
Alpha=0.5;%aspect ratio of quadratic phase profile
Phase=zeros(column,row);%initial phase i
K1=zeros(column,row);
for j=1:row
for k=1:column
K1(k,j)=4*R*(Alpha*(j-row/2)^2+(1-Alpha)*(k-column/2)^2);%initial quadratic phase
Phase(k,j)=mod(K1(k,j),2*pi);
end
end
figure,imshow(mod(Phase.*255./(2*pi),256),[0 255]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
F=0.04; %
w=F*row;
h=w*30/50; %w,h
for j=1:row
for k=1:column
if j>row/2-w/2&j<row/2+w/2&k>column/2-h/2&k<column/2+h/2
Photo(k,j)=255;
else
Photo(k,j)=0;
end
end
end
A=Photo;%target pattern
goals=double(A);%target pattern
figure(),surfc(x,y,goals), title('Target intensity distribution'), colormap jet, axis equal, axis tight, view([45, 45]), shading interp
SigRegion=((x-(row+1)/2).^2+(y-(column+1)/2).^2)./(2*w).^2; %2w
SigRegion(SigRegion<=1)=1;
SigRegion(SigRegion>1)=0;
A0=exp(-((x-row/2).^2+(y-column/2).^2)./(750^2));%Gaussian incident
Efficiency=[];%diffraction efficiency
Accuracy=[];%accuracy of the generated laser pattern
tic %tic/toc使
h=waitbar(0,'Caculating ...');
index=0;
loop=100;%times of iterative
for k=1:loop
f=exp(1i.*Phase).*A0;
f1=fftshift(fft2((fftshift(f))));
f1=f1.*sqrt(sum(sum(abs(A0).^2))/sum(sum(abs(f1).^2)));
% Factor=sqrt(sum(sum(abs(A0).^2))/sum(sum(abs(f1).^2)));
% disp(Factor)
f2=(m*sqrt(goals.*SigRegion)+(1-m)*abs(f1.*~SigRegion)).*exp(1i.*(angle(f1)));
f3=fftshift(ifft2(ifftshift(f2)));
Phase=angle(f3);
Efficiency=[Efficiency sum(sum(abs(f1.*goals./255).^2))/sum(sum(abs(f1).^2))];
fTarget=abs(f1).*goals./255;
goals_u=1-((max((fTarget(:))))^2-(min((fTarget(fTarget~=0))))^2)./((max((fTarget(:))))^2+(min((fTarget(fTarget~=0))))^2); %
Accuracy=[Accuracy goals_u];
index=index+1;
waitbar(index./loop); %
end
close(h); %
toc
Intensity=abs(f1).^2./sum(sum(abs(f1).^2))*100000;
figure(),surfc(x,y,Intensity), title('Simulated intensity distribution'), colormap jet, axis equal, axis tight, view([45, 45]), shading interp;
figure(),imshow(abs(f1),[])
figure,plot(Efficiency,'*'),title('efficiency');%Efficiency varies with iterative
figure,plot(Accuracy,'*'),title('accuracy');%Accuracy varies with iterative
Phase=Phase-min(min(Phase));
Phase=mod(Phase,2*pi);
hologram=round(Phase.*255./(2.*pi));
figure(),imshow(hologram,[0 255]);
imwrite(uint8(hologram),'MRAF.bmp');
% Addition=zeros(1080,420);
% hologramStandard=[Addition hologram Addition];
% figure,imshow(hologramStandard,[]);
% imwrite(uint8(hologram),'E:\CGH\MRAF\letter\APL\apl30\holo\L1920_03.bmp');