news 2026/6/10 4:21:45

光束传输分析LightPipes入门教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
光束传输分析LightPipes入门教程

文章目录

    • 光场和光束
    • 基础孔径
    • 屏幕

光场和光束

LightPipes主要用于物理光学和光束传输仿真,基于角谱法(Angular Spectrum Method)、菲涅耳衍射(Fresnel diffraction)、夫琅禾费衍射(Fraunhofer diffraction)等经典物理光学理论,能够模拟光波在自由空间、通过光学元件(如透镜、光阑、相位板等)以及受扰动(如像差、湍流)后的传播行为。

在Python中可用pip安装该库

pipinstallLightPipes

作为入门示例,下面创建一个633nm波长的光场,并在光束传播的法平面上取出10mm的方格,进行512 × 512 512\times512512×512栅格化。然后基于此光场,创建一个束腰为1mm的高斯光束,并传播1m,其光斑图像为

代码如下

fromLightPipesimport*importmatplotlib.pyplotasplt plt.rcParams['font.sans-serif']='Times New Roman'# 创建高斯光束Field=Begin(10*mm,633*nm,512)Field=GaussBeam(Field,w0=1*mm)# 束腰 1mmField=Forvard(Field,1*m)# 传播 1 米# 光强可视化plt.subplot(121)plt.imshow(Intensity(Field),cmap='hot')plt.subplot(122)plt.imshow(Phase(Field),cmap='hot')plt.show()

【Begin】是LightPipes的开始指令,用于生成光场,其输入参数分别是方孔尺寸、波长以及栅格线数。

【GaussBean】用于生成高斯光束,其输入参数分别是激光注入的光场和高斯光束的束腰。此外,该函数还有一些可缺省参数,其中

  • x_shift, y_shift 用于设置x , y x,yx,y方向的偏移
  • tx, ty 用于设置x , y x,yx,y方向的倾斜角,单位是弧度
  • doughnut 为True时,生成环形光束(常用于L G 01 LG_{01}LG01模近似)
  • LG 为True时,生成Laguerre-Gaussian光束

【Forvard】可将光场传输一段距离,其输入参数除了光场、距离之外,还有一个usepyFFTW,为True时,将使用pyFFTW库来实现快速Fourier变换(FFT),否则使用自身的FFT。

【Intensity】可获取光场的强度分布,其输入参数除了光场外,还有一个flag用于归一化,默认为0,即不进行归一化;为1时归一化到1;flag=2时归一化到255。

【Phase】用于获取光场的相位分布。

基础孔径

LightPipes提供了三种基础孔径和屏幕,分别是

圆形CircApertureCircScreen
矩形RectApertureRectScreen
高斯型GaussApertureGaussScreen

三种孔径如图所示

代码如下

fromLightPipesimport*importmatplotlib.pyplotasplt Field=Begin(10*mm,532*nm,512)dct={}dct["Circle"]=CircAperture(Field,0.7*mm,1*mm,1.5*mm)dct["Rect"]=RectAperture(Field,1*mm,1*mm,-1.5*mm,-1.5*mm,-0.002)dct["Gauss"]=GaussAperture(Field,4*mm,0,0,1)fori,keyinenumerate(dct):ax=plt.subplot(131+i)ax.imshow(Intensity(0,dct[key]))plt.title(key+" Aperture")plt.axis('off')plt.show()

屏幕

官方文档提供了一个屏幕遮挡的示例

GridSize=10*mm GridDimension=256lambda_=1000*nm#lambda_ is used because lambda is a Python build-in function.R=2.5*mm#Radius of the aperturexs=1*mm;ys=1*mm#shift of the apertureField=Begin(GridSize,lambda_,GridDimension)Field=CircScreen(0.7*mm,1*mm,1.5*mm,Field)Field=RectScreen(1*mm,1*mm,-1.5*mm,-1.5*mm,-0.002,Field)Field=RectScreen(1*mm,3.5*mm,-2*mm,2.5*mm,30,Field)Field=GaussAperture(4*mm,0,0,1,Field)I=Intensity(0,Field)plt.imshow(I);plt.axis('off')plt.show()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 4:21:11

sbert-base-chinese-nli-openmind部署指南:Docker容器化与云端服务化

sbert-base-chinese-nli-openmind部署指南:Docker容器化与云端服务化 【免费下载链接】sbert-base-chinese-nli-openmind 项目地址: https://ai.gitcode.com/hf_mirrors/jeffding/sbert-base-chinese-nli-openmind 欢迎来到sbert-base-chinese-nli-openmind…

作者头像 李华
网站建设 2026/6/10 4:07:52

Python函数默认参数错?PyCharm中新手1招根治

新手必看:默认参数常见陷阱 在 PyCharm 中,新手利用 Python 函数的默认参数写代码时,常常会掉进Python函数默认参数陷阱。即使代码没有出现 Traceback (most recent call last): 等红色报错字样,运行结果却与预期不符&#xff0c…

作者头像 李华
网站建设 2026/6/10 4:07:23

2026年选购电缆故障定点仪,该怎么找到口碑好的专业优质企业

盛夏深夜的城区突发电缆故障,片区停电后运维团队带着新采购的定点仪赶到现场,折腾四五个小时仍无法锁定精准故障点,最终只能依靠人工开挖排查,不仅延误了供电恢复时间,还额外产生了数倍的施工成本——这是不少电力、市…

作者头像 李华
网站建设 2026/6/10 4:04:00

一次性丁腈手套哪家性价比最高

在众多的一次性防护用品中,一次性丁腈手套凭借其独特的性能,在医疗、食品加工、科研等多个领域得到广泛应用。那哪家的一次性丁腈手套性价比最高呢?下面来分析一下。行业现状与痛点目前,一次性丁腈手套市场竞争激烈,品…

作者头像 李华