gaussian beams
Contents
gaussian waist (version 1)
ag = gaussian_beam(0.5,0); lambda_z = linspace(-1,1,100); a = gaussian_prop(ag,lambda_z); [b lambda_R] = gaussian_parm(a); plot(lambda_z,b,'k','LineWidth',1.5); hold on; plot(lambda_z,-b,'k','LineWidth',1.5); xlabel('z'); ylabel('beam edges'); hold off
gaussian waist (version 2)
% ZR = Raleigh range ZR=1; bw=0.5; z=linspace(-5*ZR,5*ZR,100); b = bw*sqrt((z/ZR).^2+1); plot(z,b); hold on; plot(z,-b); z = linspace(-5*ZR,5*ZR,9); b = bw*sqrt((z/ZR).^2+1); cv = z./(z.^2+ZR^2); r = linspace(-1,1,101); for i=1:length(z) zs = z(i)-sag(b(i)*r,cv(i)); btemp = bw*sqrt((zs/ZR).^2+1); idx = find(b(i)*abs(r)<=btemp); plot(zs(idx),b(i)*r(idx),'k','LineWidth',1.5); end hold off xlabel('z'); ylabel('beam size');
spatial filter - laser collimator example
Given a HeNe laser with a beam waist of 1.5 mm at the output of the laser.
(a) Find the half-power diameter: diameter of circle enclosing half of the laser power
bw = 1.5; % units are mm range = 2; r = linspace(0,range,101); y = gaus(r/bw).^2; r50 = interp1(y,r,0.50); fprintf('50%% power radius: r/bw %g\n',r50/bw); r99 = interp1(y,r,0.01); fprintf(' 1%% power radius: r/bw %g\n',r99/bw); plot(r,y,'k',[0 r50 r50],[0.5 0.5 0],'b--'); xlabel('radius'); ylabel('power');
50% power radius: r/bw 0.332149 1% power radius: r/bw 0.85626
gp = @(r) gaus(sqrt(2)*r/bw).*r; gt = zeros(size(r)); gtotal = bw^2/2; gnorm = 2*pi*quad(gp,0,20)/gtotal; fprintf('total power %g\n',gtotal); for k=2:101 gt(k) = 2*pi*quad(gp,0,r(k))/gtotal; end r50 = interp1(gt,r,0.50); fprintf('50%% enclosed-power radius: r/bw %g\n',r50/bw); r99 = interp1(gt,r,0.99); fprintf('99%% enclosed-power radius: r/bw %g\n',r99/bw); plot(r,gt,'k',[0 r50 r50],[0.5 0.5 0],'b--'); xlabel('radius'); ylabel('enclosed power');
total power 1.125 50% enclosed-power radius: r/bw 0.332149 99% enclosed-power radius: r/bw 0.856265
% overlay theory + calc gint = @(r) (1 - gaus(sqrt(2)*r/bw)); rt = linspace(0,range,11); plot(r,gt,rt,gint(rt),'o');
final answer
fprintf('half-power diameter: %g mm\n',2*r50)
half-power diameter: 0.996447 mm
(b) Find the beam divergence (full-angle) in mr ( milliradians) and the Raleigh range (in meters)
bw = 1.5; lambda = 0.6328e-3; % in mm div = 2*lambda/bw; fprintf('beam divergence %g milliradians\n',div*1e3); zR = bw^2/lambda; % in mm fprintf('Raleigh range %g meters\n',zR*1e-3);
beam divergence 0.843733 milliradians Raleigh range 3.55563 meters
(c) a 9-mm lens is placed 20-mm in front of the laser. Find the location and size of the beam waist after the lens
bw = 1.5; % units are mm lambda = 0.6328e-3; % in mm aobj = gaussian_beam(bw); Ain = 1.0; dist = 20; [a2, A2] = gaussian_prop(aobj,lambda*dist,Ain); [b2, lambda_R] = gaussian_parm(a2); fprintf('beam size %g\n',b2); fprintf('R2 %g\n',lambda_R/lambda); % effect of lens efl = 9; a2 = a2 - 1/(lambda*efl); %function [bwaist, lambda_zwaist] = gaussian_waist(ag) [bwaist, lambda_zwaist] = gaussian_waist(a2); fprintf('distance to waist: %g\n',lambda_zwaist/lambda); fprintf('waist %g\n',bwaist);
beam size 1.50002 R2 632144 distance to waist: 9.00007 waist 0.00379678
% check using propagation function [a3, A3] = gaussian_prop(a2,lambda_zwaist,A2); [b3, lambda_R] = gaussian_parm(a3); fprintf('\ncheck waist by using propagation function\n'); fprintf('beam size %g\n',b3); fprintf('R %g\n',lambda_R/lambda);
check waist by using propagation function beam size 0.00379678 R -1.93348e+012
(d) collimate beam with 50-mm focal length lens
efl = 50; [a4, A4] = gaussian_prop(a3,lambda*efl,A3); fprintf('\ncheck beam parameters at collimating lens\n'); [b4, lambda_R] = gaussian_parm(a4); a4 = a4 - 1/(lambda*efl); fprintf('beam size %g\n',b4); fprintf('R %g\n',lambda_R/lambda);
check beam parameters at collimating lens beam size 8.33337 R 50
look at distance to waist
[bwaist, lambda_zwaist] = gaussian_waist(a4); fprintf('\ncollimated output\n'); fprintf('distance to waist: %g\n',lambda_zwaist/lambda); fprintf('waist %g\n',bwaist);
collimated output distance to waist: 50 waist 8.33337
waist seems to be located at back focal plane of collimating lens
geometric scaling
bfinal = bw*50/9;
fprintf('geometric scaling: bfinal %g\n',bfinal);
geometric scaling: bfinal 8.33333
% plot profile % from laser to lens 1 z1 = linspace(0,20,21); a = gaussian_prop(aobj,lambda*z1); b1 = gaussian_parm(a); % from lens1 to waist z2 = linspace(0,9,10); a = gaussian_prop(a2,lambda*z2); b2 = gaussian_parm(a); % from waist to lens2 z3 = linspace(0,50,51); a = gaussian_prop(a3,lambda*z3); b3 = gaussian_parm(a); % from lens 3 z4 = linspace(0,100,101); a = gaussian_prop(a4,lambda*z4); b4 = gaussian_parm(a); z = [z1 z2+20 z3+29 z4+79]; b = [b1 b2 b3 b4]; plot(z,b,'b',z,-b,'g');
% final divergence div = lambda/bwaist; fprintf('output beam divergence %g milliradians\n',2*div*1e3); z = linspace(0,100,201); a = gaussian_prop(a4,lambda*z*1e3); b = gaussian_parm(a); plot(z,b,'k',z,-b,'k'); xlabel('distance (m)');
output beam divergence 0.151871 milliradians