高斯光束的matlab仿真复习进程.docx
《高斯光束的matlab仿真复习进程.docx》由会员分享,可在线阅读,更多相关《高斯光束的matlab仿真复习进程.docx(15页珍藏版)》请在冰豆网上搜索。
高斯光束的matlab仿真复习进程
高斯光束的matlab仿真
题目:
根据高斯光束数学模型,模拟仿真高斯光束在谐振腔中某一位置处的归一化强度分布并给出其二维、三维强度分布仿真图;用Matlab读取实际激光光斑照片中所记录的强度数据(读取照片中光斑的一个直径所记录的强度数据即可,Matlab读取照片数据命令为imread),用该数据画出图片中激光光斑的强度二维分布图,与之前数学模型仿真图对比。
(如同时考虑高斯光束光斑有效截面半径和等相位面特点,仿真高斯光束光强、光斑有效截面半径以及等相位面同时随传播距离z的变化并给出整体仿真图可酌情加分。
)
原始光斑如图1所示,用imread命令读入matlab后直接用imshow命令读取即可,
图1CCD采集的高斯光束强度分布
读入的数据是一个224X244的矩阵,矩阵中的数值代表光强分布。
用读入的数据取中间一行(122行)画出强度分布如图2所示。
图2实验测量高斯曲线
用理论上的高斯曲线公式画出理论高斯曲线如图3所示。
图3理论高斯曲线
M文件如下:
A=imread('D:
\documents\作业\激光原理与应用\高斯.bmp');
A1=A(:
122);
x1=1:
1:
224;
x2=-100:
1:
100;
a2=exp(-x2.^2/10);
figure
imshow(A);
axisoff
title('\fontsize{12}CCD采集的高斯光束光强分布');
figure
plot(x2,a2,'linewidth',1,'color','b');
axis([-404001.2])
title('\fontsize{12}实验测量高斯曲线')
figure
plot(x1,A1,'linewidth',1,'color','r')
title('\fontsize{12}理论高斯曲线')
axis([502000180])
画三维强度分布。
取图片矩阵的中间层,用mesh命令画出三维图如图4所示。
图4三维强度分布
由于读入的图片有一行白边,需要手动去除掉,否则三维图会有一边整体竖起来,影响观察。
最终的M文件如下。
A=imread('D:
\documents\作业\激光原理与应用\高斯.bmp');
[high,width,color]=size(A);
x=1:
width;
y=1:
high-1;
mesh(x',y',double(A(2:
224,:
1)));
gridon
xlabel('x'),ylabel('y'),zlabel('z');
title('三维强度分布');
再用matlab仿真理论上传播过程中高斯光束的变化
这次先给出M文件:
%Gaussian_propagation.m
%SimulationofdiffractionofGaussianBeam
clear;
%GaussianBeam
%N:
samplingnumber
N=input('Numberofsamples(enterfrom100to500)=');
L=10*10^-3;
Ld=input('wavelengthoflightin[micrometers]=');
Ld=Ld*10^-6;
ko=(2*pi)/Ld;
wo=input('WaistofGaussianBeamin[mm]=');
wo=wo*10^-3;
z_ray=(ko*wo^2)/2*10^3;
sprintf('Rayleighrangeis%f[mm]',z_ray)
z_ray=z_ray*10^-3;
z=input('Propagationlength(z)in[mm]');
z=z*10^-3;%dx:
stepsize
dx=L/N;
forn=1:
N+1
form=1:
N+1
%Spaceaxis
x(m)=(m-1)*dx-L/2;
y(n)=(n-1)*dx-L/2;
%GaussianBeaminspacedomain
Gau(n,m)=exp(-(x(m)^2+y(n)^2)/(wo^2));%Frequencyaxis
Kx(m)=(2*pi*(m-1))/(N*dx)-((2*pi*(N))/(N*dx))/2;
Ky(n)=(2*pi*(n-1))/(N*dx)-((2*pi*(N))/(N*dx))/2;
%Freespacetransferfunction
H(n,m)=exp(j/(2*ko)*z*(Kx(m)^2+Ky(n)^2));
end
end
%GaussianBeaminFrequencydomain
FGau=fft2(Gau);
FGau=fftshift(FGau);
%PropagatedGaussianbeaminFrequencydomain
FGau_pro=FGau.*H;
%PeakamplitudeoftheinitialGaussianbeam
Peak_ini=max(max(abs(Gau)));
sprintf('Initialpeakamplitudeis%f[mm]',Peak_ini)%PropagatedGaussianbeaminspacedomain
Gau_pro=ifft2(FGau_pro);
Gau_pro=Gau_pro;
%PeakamplitudeofthepropagatedGaussianbeam
Peak_pro=max(max(abs(Gau_pro)));
sprintf('Propagatedpeakamplitudeis%f[mm]',Peak_pro)%CalculatedBeamWidth
[NM]=min(abs(x));
Gau_pro1=Gau_pro(:
M);
[N1M1]=min(abs(abs(Gau_pro1)-abs(exp(-1)*Peak_pro)));
Bw=dx*abs(M1-M)*10^3;
sprintf('Beamwidth(numerical)is%f[mm]',Bw)%TheoreticalBeamWidth
W=(2*z_ray)/ko*(1+(z/z_ray)^2);
W=(W^0.5)*10^3;
sprintf('Beamwidth(theoretical)is%f[mm]',W)%axisinmmscale
x=x*10^3;
y=y*10^3;
figure
(1);
mesh(x,y,abs(Gau))
title('InitialGaussianBeam')
xlabel('x[mm]')
ylabel('y[mm]')
axis([min(x)max(x)min(y)max(y)01])
axissquare
figure
(2);
mesh(x,y,abs(Gau_pro))
title('propagatedGaussianBeam')
xlabel('x[mm]')
ylabel('y[mm]')
axis([min(x)max(x)min(y)max(y)01])
axissquare
程序主要根据高斯光束的传播规律计算传播过程中任意z处的高斯光强分布。
运行结果:
Numberofsamples(enterfrom100to500)=500
wavelengthoflightin[micrometers]=0.568
WaistofGaussianBeamin[mm]=1
ans=
Rayleighrangeis5530.972982[mm]
Propagationlength(z)in[mm]100000
ans=
Initialpeakamplitudeis1.000000[mm]
ans=
Propagatedpeakamplitudeis0.210252[mm]
ans=
Beam?
width(numerical)is1.940000[mm]
ans=
Beam?
width(theoretical)is18.107635[mm]
>>
束腰半径处的理想高斯光强分布
传播1m处的理想高斯光强分布
传播10m处的理想高斯光强分布
传播20m处的理想高斯光强分布
传播30m处的理想高斯光强分布
传播50m处的理想高斯光强分布
传播100m处的理想高斯光强分布
而用实验测得的光斑仿真的结果是:
原始光斑的光强分布
0.1m处
1m处
1.8m处
5m处
10m以后,已经基本是均匀强度的光斑