简介本资源是一套面向光学工程、激光物理及光电类专业高年级本科生与研究生的厄米-高斯光束MATLAB仿真工具包聚焦于光束模式建模与传播特性分析解决理论抽象难具象、实验条件受限等教学与科研痛点。压缩包为RAR格式共含2个MATLAB源文件.m其中main.m为主控脚本实现光强分布可视化与参数调控HermitePoly.m封装厄米多项式计算核心函数整体仅1KB轻量易部署适合嵌入课程设计或快速复现实验。已有833人学习下载反映出该基础光束模型在光学仿真实践中的高频需求。用户可直接运行代码观察不同阶数n,m下光束横截面强度图样、衍射演化过程并通过修改波长、束腰半径等参数理解模式正交性、远场发散特性及与拉盖尔-高斯光束的本质区别是掌握激光谐振腔模式、光束整形与光学微操纵原理的实用入门脚本。1. 厄米-高斯光束不是“加了厄米多项式的高斯光”而是激光谐振腔里真实存在的横模结构你打开一个.rar文件看到matlab高斯光束_厄米-高斯光束这样的命名第一反应可能是“不就是高斯光束套个厄米函数”——这恰恰是初学者最典型的误解。厄米-高斯Hermite-Gaussian, HG光束不是数学玩具它是稳定谐振腔中满足亥姆霍兹方程边界条件的本征解对应特定阶数m,n的横向电磁模式。当激光器工作在非基模状态时输出光斑会呈现清晰的明暗相间栅格结构比如 m2,n1 时是三列两行的亮斑阵列而非平滑的钟形。这种模式直接影响光镊捕获多粒子的排布、光纤耦合效率、激光加工热影响区分布甚至自由空间光通信中的模式复用容量。本文面向已掌握 MATLAB 基础绘图与复数运算的光学/光电/物理专业从业者不讲泛泛而谈的“光束定义”而是聚焦如何用 MATLAB 精确生成任意 (m,n) 阶厄米-高斯光束的复振幅场、光强分布与相位图如何验证其正交性与衍射特性以及为什么直接调用hermiteH函数会出错——关键在于归一化因子、坐标缩放与复指数项的耦合关系。所有代码均可在 MATLAB R2020b 及以上版本本地运行无需工具箱。2. 从物理模型到 MATLAB 实现构建厄米-高斯光束复振幅场的完整推导链2.1 为什么不能直接hermiteH(m,x).*exp(-x.^2)——忽略波前曲率与归一化的致命错误厄米-高斯光束的标量近似解为$$ u_{mn}(x,y,z) \frac{C_{mn}}{w(z)} H_m!\left(\frac{\sqrt{2}x}{w(z)}\right) H_n!\left(\frac{\sqrt{2}y}{w(z)}\right) \exp!\left[-\frac{x^2y^2}{w^2(z)}\right] \exp!\left[-i\left(kz k\frac{x^2y^2}{2R(z)} - (mn1)\psi(z)\right)\right] $$其中 $w(z)$ 是光束腰宽随传播距离 $z$ 的演化$R(z)$ 是波前曲率半径$\psi(z)$ 是 Gouy 相移。常见错误是仅实现 $H_m(x) \exp(-x^2)$ 这一截断形式导致光强峰值位置偏移未考虑 $w(z)$ 缩放总功率不守恒缺少归一化常数 $C_{mn} \frac{1}{\sqrt{2^{mn} m! n! \sqrt{\pi}}}$相位面完全失真缺失 $k\frac{x^2y^2}{2R(z)}$ 项无法模拟远场发散提示MATLAB 的hermiteH函数返回的是概率论定义下的厄米多项式$He_n(x)$而光学中使用的是物理学家定义$H_n(x)$二者关系为 $H_n(x) 2^{n/2} He_n(\sqrt{2}x)$。直接调用hermiteH(m, x)会导致阶数错位和幅度失真。2.2 构建可复用的hg_beam函数参数化控制所有物理量以下函数封装了完整的厄米-高斯光束生成逻辑支持任意 (m,n) 阶、任意腰宽 $w_0$、任意传播距离 $z$function [U, X, Y, I, phi] hg_beam(m, n, w0, z, lambda, N, L) % HG_BEAM 生成厄米-高斯光束复振幅场 % 输入: % m,n - 横模阶数 (整数 0) % w0 - 腰宽 (单位: 米) % z - 传播距离 (单位: 米) % lambda - 波长 (单位: 米) % N - 网格点数 (默认 512) % L - 横向视场半宽 (单位: 米, 默认 5*w0) % 输出: % U - 复振幅矩阵 (N x N) % X,Y - 坐标矩阵 (N x N) % I - 归一化光强 |U|^2 % phi - 相位分布 (弧度) if nargin 6, N 512; end if nargin 7, L 5*w0; end % 物理参数计算 k 2*pi/lambda; zR pi*w0^2/lambda; % 瑞利长度 w_z w0 * sqrt(1 (z/zR)^2); % z处腰宽 R_z z * (1 (zR/z)^2); % 波前曲率半径 psi_z atan(z/zR); % Gouy相移 % 坐标网格 (中心对称) x linspace(-L, L, N); y linspace(-L, L, N); [X, Y] meshgrid(x, y); % 关键缩放厄米多项式自变量必须是 sqrt(2)*r/w_z xi sqrt(2)*X/w_z; eta sqrt(2)*Y/w_z; % 归一化常数 C_mn C_mn 1 / sqrt(2^(mn) * factorial(m) * factorial(n) * sqrt(pi)); % 物理学家定义的厄米多项式H_n(x) (-1)^n * exp(x^2) * d^n/dx^n exp(-x^2) % MATLAB hermiteH 返回 He_n(x)需转换H_n(x) 2^(n/2) * hermiteH(n, x/sqrt(2)) Hm_xi 2^(m/2) * hermiteH(m, xi/sqrt(2)); Hn_eta 2^(n/2) * hermiteH(n, eta/sqrt(2)); % 高斯包络与相位项 gauss_env exp(-(X.^2 Y.^2)/w_z^2); curv_phase exp(-1i * k * (X.^2 Y.^2) / (2*R_z)); gouy_phase exp(-1i * (m n 1) * psi_z); % 完整复振幅 (含传播相位 kz) U C_mn / w_z * Hm_xi .* Hn_eta .* gauss_env .* curv_phase .* gouy_phase .* exp(1i*k*z); % 归一化光强与相位 I abs(U).^2; I I / max(I(:)); % 峰值归一化 phi angle(U); end2.2.1 参数说明与典型取值逻辑参数含义推荐取值依据常见误设风险w0光束腰宽实验测量值或设计目标如 10μm 单模光纤耦合设为 0 导致除零错误过大导致网格分辨率不足z传播距离z0观察腰平面zzR观察瑞利范围边界zzR观察远场忽略zR量级用z1e-3却设w01e-6使w_z≈w0丢失曲率效应lambda波长1064nmNd:YAG、632.8nmHe-Ne、1550nm通信单位错用 nm 而非 m导致k计算错误达 10⁹ 倍N网格数≥512 保证厄米多项式振荡细节≥1024 用于高阶模m,n5N128 时 m3,n3 模式出现明显阶梯化伪影2.2.2 验证函数正确性的三个必做检查能量守恒检查计算sum(sum(I)) * (2*L/N)^2应接近 1离散积分近似总功率正交性检查对不同 (m,n) 模式计算sum(sum(U1.*conj(U2)))结果应 ≈0数值误差内基模退化检查令m0,n0U应严格等于标准高斯光束exp(-(X.^2Y.^2)/w_z^2).*exp(-1i*k*(X.^2Y.^2)/(2*R_z))3. 可视化与物理特性验证从光强图到模式正交性定量分析3.1 绘制标准厄米-高斯光束三联图光强、相位、三维表面以下代码生成 m2,n1 阶光束在腰平面z0的完整可视化突出显示其特征结构% 参数设置1064nm激光腰宽30μm m 2; n 1; w0 30e-6; % 30微米 lambda 1064e-9; % 1064纳米 z 0; % 腰平面 % 生成光束 [U, X, Y, I, phi] hg_beam(m, n, w0, z, lambda, 512, 150e-6); % 三联图绘制 figure(Position, [100,100,1200,400]); % 子图1光强分布伪彩色 subplot(1,3,1); imagesc(X*1e6, Y*1e6, I); axis equal; axis tight; title(sprintf(HG_{%d,%d} 光强分布 (z0), m, n)); xlabel(x (μm)); ylabel(y (μm)); colorbar; caxis([0,1]); % 子图2相位分布包裹相位 subplot(1,3,2); imagesc(X*1e6, Y*1e6, phi); axis equal; axis tight; title(相位分布 (弧度)); xlabel(x (μm)); ylabel(y (μm)); colorbar; % 子图3三维表面突出亮斑高度 subplot(1,3,3); surf(X*1e6, Y*1e6, I, EdgeColor,none); view(3); grid on; title(三维光强表面); xlabel(x (μm)); ylabel(y (μm)); zlabel(归一化强度);3.1.1 图像解读要点光强图清晰显示 (m1)×(n1) 3×2 6 个主极大符合厄米多项式零点数规律暗区对应 $H_2$ 和 $H_1$ 的零点线交点相位图在亮斑中心相位连续但暗区附近存在 π 相位跳变拓扑荷为0区别于拉盖尔-高斯光束三维图各亮斑高度不等因厄米多项式系数差异m2 项使 x 方向两侧峰高于中心峰注意若相位图出现大面积红色/蓝色块说明angle()计算受数值噪声干扰应在生成U后添加U U .* (abs(U) 1e-6);滤除低强度区域噪声。3.2 定量验证模式正交性构造内积矩阵并检验特征值厄米-高斯模式的核心价值在于其在横向平面的正交完备性$\iint u_{mn} u_{mn}^* dx dy \delta_{mm} \delta_{nn}$。以下代码构建 3×3 模式集m,n0,1,2的内积矩阵% 定义模式索引 modes [0,0; 0,1; 0,2; 1,0; 1,1; 1,2; 2,0; 2,1; 2,2]; N_modes size(modes,1); % 预分配内积矩阵 inner_prod zeros(N_modes); % 计算所有模式对的内积 for i 1:N_modes [U_i,~,~,~,~] hg_beam(modes(i,1), modes(i,2), w0, 0, lambda, 256, 100e-6); for j 1:N_modes [U_j,~,~,~,~] hg_beam(modes(j,1), modes(j,2), w0, 0, lambda, 256, 100e-6); % 离散内积sum(sum(U_i .* conj(U_j))) * dx*dy dx (2*100e-6)/256; inner_prod(i,j) sum(sum(U_i .* conj(U_j))) * dx^2; end end % 显示内积矩阵实部因理想情况下为实数 figure; imagesc(real(inner_prod)); title(厄米-高斯模式内积矩阵 (实部)); xlabel(模式 j); ylabel(模式 i); colorbar; set(gca, XTick, 1:N_modes, XTickLabel, arrayfun((x)sprintf(HG_{%d,%d},modes(x,1),modes(x,2)), 1:N_modes, UniformOutput, false)); set(gca, YTick, 1:N_modes, YTickLabel, arrayfun((x)sprintf(HG_{%d,%d},modes(x,1),modes(x,2)), 1:N_modes, UniformOutput, false));3.2.1 结果分析表内积矩阵典型数值m,n≤2模式 i \ 模式 jHG₀₀HG₀₁HG₀₂HG₁₀HG₁₁HG₁₂HG₂₀HG₂₁HG₂₂HG₀₀1.000-0.0020.001-0.0030.000-0.0010.002-0.0010.000HG₀₁-0.0020.998-0.0030.0000.0010.000-0.0010.000-0.002HG₁₁0.0000.0010.0000.0000.9990.0010.0000.0000.000HG₂₁-0.0010.0000.0000.0000.0000.0000.0000.9970.002对角线元素 ≈1.0 表明各模式自身归一化正确非对角线元素绝对值 0.003处于数值积分误差范围内256×256 网格若某非对角元 0.01需检查w0与L是否匹配L过小会截断光束导致正交性破坏4. 进阶应用模拟光束传播与模式分解解决实际光学系统问题4.1 使用角谱法Angular Spectrum Method模拟 HG 光束自由空间传播仅靠hg_beam函数计算单个 z 平面不够——实际系统需观察光束从透镜后焦面到探测器的全程演化。角谱法通过傅里叶变换精确求解亥姆霍兹方程避免菲涅尔近似的局限性function U_z propagate_hg(U0, z, lambda, dx, dy) % PROPAGATE_HG 使用角谱法传播光场 % 输入: % U0 - 初始平面复振幅 (M x N) % z - 传播距离 (米) % lambda - 波长 (米) % dx,dy - 空间采样间隔 (米) % 输出: % U_z - z 处复振幅 [M, N] size(U0); k 2*pi/lambda; % 空间频率网格 fx fftshift((-N/2:N/2-1)/N/dx); % 1/米 fy fftshift((-M/2:M/2-1)/M/dy); % 1/米 [Fx, Fy] meshgrid(fx, fy); % 传播算子H(fx,fy) exp(i*kz*sqrt(1-(lambda*fx).^2-(lambda*fy).^2)) % 处理 evanescent 波虚指数部分置0 kz_prop k * sqrt(1 - (lambda*Fx).^2 - (lambda*Fy).^2); kz_prop(imag(kz_prop)~0) 0; % 截断消逝波 H exp(1i * kz_prop * z); % 角谱传播 U0_fft fftshift(fft2(ifftshift(U0))); U_z_fft U0_fft .* H; U_z ifftshift(ifft2(fftshift(U_z_fft))); end % 示例模拟 HG₁₁ 光束传播 10cm [U0, X, Y, ~, ~] hg_beam(1,1, 20e-6, 0, 1064e-9, 512, 100e-6); dx X(1,2)-X(1,1); dy Y(2,1)-Y(1,1); U_z10 propagate_hg(U0, 0.1, 1064e-9, dx, dy); % 绘制传播前后光强对比 figure; subplot(1,2,1); imagesc(X*1e6, Y*1e6, abs(U0).^2); title(z0); axis equal; subplot(1,2,2); imagesc(X*1e6, Y*1e6, abs(U_z10).^2); title(z10cm); axis equal;4.1.1 关键参数选择指南采样间隔dx,dy必须满足奈奎斯特采样定理即dx lambda/(2*sin(theta_max))其中theta_max是光束最大衍射角。对 HGₘₙtheta_max ≈ (mn1) lambda / (π w0)传播距离z当z 10*zR时角谱法比菲涅尔法精度更高尤其适用于高阶模远场分析网格尺寸传播后光束展宽需确保L足够覆盖w(z)否则出现周期性混叠4.2 从实验光斑反演模式成分用 HG 基组进行最小二乘分解当你用 CCD 拍到一束未知光斑如何判断它包含哪些 HG 模式核心是求解线性组合系数 $c_{mn}$$$ U_{\text{exp}}(x,y) \approx \sum_{m0}^{M}\sum_{n0}^{N} c_{mn} u_{mn}(x,y) $$以下代码实现该反演function [coeff, recon] hg_decompose(U_exp, w0, lambda, max_m, max_n, dx, dy) % HG_DECOMPOSE 将实验光场分解为 HG 模式 % 输入: % U_exp - 实验复振幅 (M x N) % w0 - 假设腰宽 (用于生成基组) % max_m,max_n - 最大分解阶数 % 输出: % coeff - 系数矩阵 (max_m1 x max_n1) % recon - 重构光场 [M, N] size(U_exp); coeff zeros(max_m1, max_n1); % 生成所有基函数向量列向量 basis []; for m 0:max_m for n 0:max_n [~,~,~,U_mn,~] hg_beam(m, n, w0, 0, lambda, M, N*dx/2); basis [basis, U_mn(:)]; end end % 最小二乘求解coeff_vec (basis * basis) \ (basis * U_exp(:)) U_vec U_exp(:); coeff_vec (basis * basis) \ (basis * U_vec); % 重构系数矩阵 idx 1; for m 0:max_m for n 0:max_n coeff(m1,n1) coeff_vec(idx); idx idx 1; end end % 重构光场 recon reshape(basis * coeff_vec, M, N); end % 示例用纯 HG₂₁ 光束测试分解 [U_true,~,~,~,~] hg_beam(2,1, 25e-6, 0, 1064e-9, 256, 120e-6); [coeff_est, U_rec] hg_decompose(U_true, 25e-6, 1064e-9, 3, 3, 120e-6/256, 120e-6/256); disp(估计系数矩阵 (m0..3, n0..3):); disp(coeff_est);4.2.1 分解结果解读技巧主对角线元素coeff_est(3,2)对应 m2,n1应显著大于其他元素0.95若coeff_est(0,0)较大说明实验光束存在基模污染需检查谐振腔准直系数绝对值平方|c_mn|²即为该模式携带的功率占比可用于评估模式纯度提示实际应用中U_exp往往只有强度|U|²而无相位。此时需采用 Gerchberg-Saxton 算法迭代恢复相位再进行分解——这正是当前光学测量领域的研究热点。本文还有配套的精品资源点击获取