基模高斯光束matlab_MATLAB 高斯光束传播轨迹的模拟
时间: 2023-08-06 12:10:33 浏览: 211
基于Matlab高斯光束前向与后向传播的模拟
5星 · 资源好评率100%
在 Matlab 中,可以使用 `propagate` 函数来模拟高斯光束的传播轨迹。以下是一个简单的示例代码:
```matlab
% 定义高斯光束参数
w0 = 1; % 初始光束半径
z0 = 0; % 初始传播距离
lambda = 1; % 波长
k = 2*pi/lambda; % 波数
zR = pi*w0^2/lambda; % Rayleigh 范围
% 定义传播距离
z = linspace(0, 10*zR, 100);
% 计算高斯光束传播轨迹
[q, z_out] = propagate(w0, z0, lambda, z, 'rayleigh', w0);
% 绘制高斯光束传播轨迹
figure;
plot(z./zR, abs(q).^2./max(abs(q).^2), 'LineWidth', 2);
xlabel('传播距离 / Rayleigh 范围');
ylabel('归一化光强');
title('高斯光束传播轨迹');
```
在上面的示例代码中,我们首先定义了高斯光束的参数,包括初始光束半径、初始传播距离、波长、波数和 Rayleigh 范围。然后我们定义了一组传播距离,使用 `propagate` 函数来计算高斯光束在这些传播距离上的传播轨迹。最后,我们将计算结果绘制成图形,并对光强进行归一化处理。
需要注意的是,`propagate` 函数的第一个输出参数 `q` 表示高斯光束的复振幅,需要取其模长的平方才能得到光强。另外,传播距离 `z` 的单位应该与 Rayleigh 范围 `zR` 的单位保持一致,例如可以使用 `z./zR` 进行归一化处理。
阅读全文