高斯光束matlab仿真代码
时间: 2023-09-03 20:10:33 浏览: 98
以下是一个简单的高斯光束Matlab仿真代码:
```matlab
% 定义常量
lambda = 632.8e-9; %波长
w0 = 2e-3; %光束腰半径
zR = pi * w0^2 / lambda; %瑞利范围
z = 0:0.01:2*zR; %传播距离(从0到2个瑞利范围)
% 计算高斯光束
w = w0 * sqrt(1 + (z./zR).^2); %光束腰半径
R = z + zR^2./z; %曲率半径
phi = atan(z./zR); %高斯相位
% 绘制高斯光束
figure;
subplot(2,2,1);
plot(z,w);
xlabel('传播距离');
ylabel('光束腰半径');
title('高斯光束腰半径');
subplot(2,2,2);
plot(z,R);
xlabel('传播距离');
ylabel('曲率半径');
title('高斯光束曲率半径');
subplot(2,2,[3 4]);
[X,Y] = meshgrid(-1e-3:0.01e-3:1e-3, -1e-3:0.01e-3:1e-3);
I = exp(-(X.^2 + Y.^2)./w(1).^2).*exp(-1i*k*R(1)).*exp(1i*phi(1)); %计算光强分布
surf(X,Y,abs(I).^2);
shading interp;
axis square;
xlabel('x');
ylabel('y');
zlabel('光强');
title('高斯光束光强分布');
```
这段代码首先定义了常量,包括波长、光束腰半径和瑞利范围。然后计算了高斯光束的参数,包括光束腰半径、曲率半径和相位。最后绘制了高斯光束的腰半径和曲率半径的变化,以及光强分布的三维表面图。
阅读全文