贝塞尔高斯光束自由传输matlab仿真

贝塞尔-高斯光束是一种特殊类型的光束,在自由空间传播时其横截面的强度分布保持不变。在 MATLAB 中模拟贝塞尔-高斯光束的自由传播可以通过以下步骤完成:

1. 确定仿真参数

  • 波长(例如,632.8 nm)
  • 初始光束参数(例如,光束的 waist 或初始尺寸)
  • 仿真区域的尺寸和分辨率
  • 传播距离

2. 计算初始光场分布

贝塞尔-高斯光束在初始平面(通常是 z = 0 处)的光场分布可以通过结合高斯光束和贝塞尔函数来计算。

3. 光场传播

使用合适的传播模型(例如,基于傅里叶变换的角谱法)来计算光束在不同距离处的光场分布。

4. 结果可视化

展示光束在不同传播距离处的强度分布(一般是光强的平方)。

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

仿真结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值