% Laguerre Gaussian Modes w0=5; % number of smaple points nx = 256; xrange = 10* w0; delta_x = 2.*xrange / nx; frange = 1./ delta_x / 2.; delta_f = frange / nx; % colormap(gray(256)); for n = 1:256 g(n) = log(n)/log(256); graylog(n,:) = [ g(n) g(n) g(n) ]; end colormap(graylog); x=-xrange:delta_x:xrange; y=x; [X,Y] = meshgrid(x,y); R=X.^2+Y.^2; PHI=atan2(Y,X); arg=2.*R./w0^2; L=1; %p=1 LG1l= L + 1 - arg; Efield= arg.^(L./2).*LG1l.*cos(L*PHI).*exp(-arg*0.5); Inten=Efield.*conj(Efield); norm=256/max(max(Inten)); subplot(3,2,1); Inten=Efield.*conj(Efield); norm=256/max(max(Inten)); subplot(3,2,1); image(x,y,Inten*norm); title('LG(p=1,l=1)') axis('square'); % Far field xf=-frange:delta_f:frange; yf=xf; U=fft2(Efield); UF=U.*conj(U); UF=fftshift(UF); norm=256/max(max(UF)); subplot(3,2,2); image(xf,yf,UF*norm); title('LG(p=1,l=1) far field') axis('square'); L=2; %p=1 LG1l= L + 1 - arg; Efield= arg.^(L./2).*LG1l.*cos(L*PHI).*exp(-arg*0.5); Inten=Efield.*conj(Efield); norm=256/max(max(Inten)); subplot(3,2,3); image(x,y,Inten*norm); title('LG(p=1,l=2)') axis('square'); % Far field U=fft2(Efield); UF=U.*conj(U); UF=fftshift(UF); norm=256/max(max(UF)); subplot(3,2,4); image(xf,yf,UF*norm); title('LG(p=1,l=2) far field') axis('square'); L=1; % p=2 LG2l= 0.5*(1+L)*(L+2)-(L+2)*arg+0.5.*arg.^2; Efield= arg.^(L./2).*LG2l.*cos(L*PHI).*exp(-arg*0.5); Inten=Efield.*conj(Efield); norm=256/max(max(Inten)); subplot(3,2,5); image(x,y,Inten*norm); title('LG(p=2,l=1)') axis('square'); % Far field U=fft2(Efield); UF=U.*conj(U); UF=fftshift(UF); norm=256/max(max(UF)); subplot(3,2,6); image(xf,yf,UF*norm); title('LG(p=2,l=1) far field') axis('square');