
高斯光束的聚焦与准直MATLAB程序
最近在折腾高斯光束的模拟,发现用MATLAB搞透镜变换特别有意思。咱们今天要聊的就是怎么用薄
透镜给高斯光束做聚焦和准直,手把手教你写能直接跑的代码。先别急着翻《激光原理》,看完这篇保你半
小时内能自己调参数玩转光斑变化。
先来点硬核的——直接上核心代码段。高斯光束经过透镜后的变换关键在q参数,这个量包含了光斑
尺寸和波前曲率的信息:
```matlab
% 透镜变换函数
function q_out = lens_transformation(q_in, f)
q_out = 1/(1/q_in - 1/f);
end
```
别看这短短三行,它藏着几何光学和波动光学的跨界操作。这里q_in是入射光束的复参数,f是透镜
焦距。有意思的是当入射光束的腰斑位于透镜前焦点时,出射光束会变成准直光束——这个特性咱们后面会
实际验证。
整套模拟需要三个模块:参数设定、透镜变换、传播模拟。先看参数初始化部分:
```matlab
lambda = 632.8e-9; % 氦氖激光波长
w0 = 0.5e-3; % 初始腰斑半径
f = 50e-3; % 透镜焦距
L = 1.0; % 传播距离
% 计算瑞利长度
zR = pi * w0^2 / lambda;
q0 = 1i * zR; % 初始q参数(腰斑处)
```
这里有个新手容易踩的坑:量纲统一。波长用米作单位,光斑半径也用米,否则算出来的瑞利长度会
错得离谱。曾经有个哥们把毫米当米输,结果模拟出能绕地球三圈的光斑,差点以为发现了新物理现象...
传播模拟部分我们分两段:到透镜前的传播和透镜后的传播。用了个自定义的beam_propagate函数
(具体实现后面给):
```matlab
% 传播到透镜前