赞
踩
贝塞尔-高斯光束是一种特殊类型的光束,在自由空间传播时其横截面的强度分布保持不变。在 MATLAB 中模拟贝塞尔-高斯光束的自由传播可以通过以下步骤完成:
贝塞尔-高斯光束在初始平面(通常是 z = 0 处)的光场分布可以通过结合高斯光束和贝塞尔函数来计算。
使用合适的传播模型(例如,基于傅里叶变换的角谱法)来计算光束在不同距离处的光场分布。
展示光束在不同传播距离处的强度分布(一般是光强的平方)。
matlab代码:
- % 贝塞尔高斯光束自由传输仿真
-
- % 设置仿真参数
- lambda = 0.6328e-6; % 波长(米)
- wavelength = lambda; % 波长用于 paraxial 近似
- k = 2 * pi / lambda; % 波数
-
- % 初始贝塞尔高斯光束参数
- w0 = 0.1e-3; % 初始束腰半径(米)
- zR = pi * w0^2 / lambda; % 瑞利范围
- z = 0; % 初始传输距离
-
- % 空间坐标设置
- x = linspace(-2*w0, 2*w0, 400);
- y = x;
-
- [X, Y] = meshgrid(x, y);
-
- % 计算初始光束复振幅分布
- wz = w0 * sqrt(1 + (z/zR)^2);
- Rz = z * (1 + (zR/z)^2);
- psi = atan(z/zR);
- w = w0 * sqrt(1 + ((lambda*z)/(pi*w0^2))^2);
- GaussianBeam = exp(-(X.^2 + Y.^2) / w^2) * exp(-1i * k * z - 1i * k * (X.^2 + Y.^2) / (2 * Rz) + 1i * psi);
-
- % 显示初始光束
- figure;
- subplot(1, 2, 1);
- imagesc(x, y, abs(GaussianBeam).^2);
- title('Initial Beam Profile');
- xlabel('X (m)');
- ylabel('Y (m)');
- axis square;
- colormap('hot');
- colorbar;
-
- % 自由传输仿真
- z_final = 2; % 最终传输距离
- dz = z_final / 100; % 传输步长
-
- for z = 0:dz:z_final
- wz = w0 * sqrt(1 + (z/zR)^2);
- Rz = z * (1 + (zR/z)^2);
- psi = atan(z/zR);
- w = w0 * sqrt(1 + ((lambda*z)/(pi*w0^2))^2);
-
- % 计算传输后的光束复振幅分布
- GaussianBeam = exp(-(X.^2 + Y.^2) / w^2) * exp(-1i * k * z - 1i * k * (X.^2 + Y.^2) / (2 * Rz) + 1i * psi);
-
- % 显示传输后的光束
- subplot(1, 2, 2);
- imagesc(x, y, abs(GaussianBeam).^2);
- title(['Beam Profile at z = ' num2str(z_final) ' m']);
- xlabel('X (m)');
- ylabel('Y (m)');
- axis square;
- colormap('hot');
- colorbar;
- drawnow;
- end
仿真结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。