高斯光束matlab仿真代码
时间: 2023-09-20 17:03:42 浏览: 130
以下是一个简单的高斯光束Matlab仿真代码,它可以生成和显示一个二维高斯光束的强度分布图像。
```
% 高斯光束Matlab仿真代码
% 生成和显示一个二维高斯光束的强度分布图像
% 定义参数
lambda = 1; % 波长
w0 = 5; % 光束腰半径
z = 10; % 传输距离
Nx = 200; % x方向网格数
Ny = 200; % y方向网格数
Lx = 10; % x方向尺寸
Ly = 10; % y方向尺寸
% 生成网格
x = linspace(-Lx/2, Lx/2, Nx);
y = linspace(-Ly/2, Ly/2, Ny);
[X, Y] = meshgrid(x, y);
% 计算高斯光束
wz = w0*sqrt(1+(z*pi*w0^2/lambda)^2); % 光束腰半径随传输距离的变化
Rz = z*(1+(lambda*pi*w0^2/z)^2); % 半径曲率随传输距离的变化
phi = atan(z/(lambda*pi*w0^2)); % 相位随传输距离的变化
w = w0*sqrt(1+((X.^2+Y.^2)/Rz^2)); % 光束腰半径随位置的变化
G = exp(-(X.^2+Y.^2)/w^2); % 高斯因子
E = G.*exp(-1i*(2*pi/lambda)*(X.^2+Y.^2)/(2*Rz)-1i*phi); % 电场分布
I = abs(E).^2; % 强度分布
% 显示结果
figure;
imagesc(x, y, I);
axis equal tight;
colormap('hot');
xlabel('x (m)');
ylabel('y (m)');
title('Gaussian Beam Intensity');
```
阅读全文