基于Matlab高斯光束菲涅耳衍射的模拟
一、理论基础
现有高斯光束,如下式所示:
Ψ p 0 ( x , y ) = exp [ − ( x 2 + y 2 w 0 2 ) ] {{\Psi }_{p0}}\left( x,y \right)=\exp \left[ -\left( \frac{{{x}^{2}}+{{y}^{2}}}{{{w}_{0}}^{2}} \right) \right] Ψp0(x,y)=exp[−(w02x2+y2)] (1)
其中,
w
0
{{w}_{0}}
w0是束腰,具体是指当束腰振幅下降至中心振幅的
1
/
e
{1}/{e}\;
1/e处时光束的半径。如下图所示:
等式(2)的傅里叶变换也是高斯变换,如下式所示:
Ψ p 0 ( k x , k y ) = π w 0 2 exp [ − w 0 2 4 ( k 2 x + k 2 y ) ] {{\Psi }_{p0}}\left( {{k}_{x}},{{k}_{y}} \right)=\pi {{w}_{0}}^{2}\exp \left[ -\frac{{{w}_{0}}^{2}}{4}\left( {{k}^{2}}_{x}+{{k}^{2}}_{y} \right) \right] Ψp0(kx,ky)=πw02exp[−4w02(k2x+k2y)] (2)
当其传播距离z后,式(2)变为:
其中,q是高斯光束的q参数,定义为
q = z + j z R q=z+j{{z}_{R}} q=z+jzR (4)
其中,高斯光束的瑞利长度为 z R = ( k 0 w 2 0 ) / 2 {{z}_{R}}={\left( {{k}_{0}}{{w}^{2}}_{0} \right)}/{2}\; zR=(k0w20)/2。
对式(3)进行逆傅里叶变换,则有:
Ψ p ( x , y ; z ) = exp ( − j k 0 z ) ( j k 0 w 2 0 2 q ) exp [ − j k 0 ( x 2 + y 2 ) / 2 q ] {{\Psi }_{p}}\left( x,y;z \right)=\exp (-j{{k}_{0}}z)(j\frac{{{k}_{0}}{{w}^{2}}_{0}}{2q})\exp [{-j{{k}_{0}}\left( {{x}^{2}}+{{y}^{2}} \right)}/{2q}\;] Ψp(x,y;z)=exp(−jk0z)(j2qk0w20)exp[−jk0(x2+y2)/2q] (5)
二、仿真结果
首先,根据公式(1):模拟出初始高斯光束如下图所示:
此外,该程序中还模拟高斯光束传播至不同点时的高斯光束,其动画演示如下所示。
三、资源下载
上述程序可从以下资源处获取:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理