news 2026/5/1 9:30:30

基于光学仿真的物理光学研究:傅立叶变换与衍射光场计算的深入探索

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于光学仿真的物理光学研究:傅立叶变换与衍射光场计算的深入探索

光学仿真,物理光学,傅立叶光学,衍射光场计算。

光场计算这玩意儿看起来玄乎,实际玩起来跟搭乐高似的有意思。咱就拿菲涅尔衍射举个栗子,用Python搞个光场传播模拟。先整块方形孔当光源,波长532nm绿光,传播距离0.5米,代码开头先摆参数:

import numpy as np import matplotlib.pyplot as plt wavelength = 532e-9 # 纳米转米 k = 2*np.pi/wavelength distance = 0.5 # 传播距离 size = 0.01 # 计算区域尺寸10cm N = 2048 # 采样点数

采样间隔得算准了,不然会出现频谱混叠。这里dx=size/N,对应空间频率上限1/(2dx),保证采样定理满足。接着初始化光场,整个方形孔:

x = np.linspace(-size/2, size/2, N) X, Y = np.meshgrid(x, x) aperture = np.zeros_like(X) aperture[np.abs(X)<0.001] = 1 # 宽度2mm的狭缝 aperture[np.abs(Y)>0.002] = 0 # 高度限制

这时候直接傅里叶变换肯定翻车,得用角谱法。传播过程本质是空间频域乘相位因子:

def angular_spectrum(u_in, wavelength, distance, dx): fx = np.fft.fftshift(np.fft.fftfreq(N, dx)) FX, FY = np.meshgrid(fx, fx) H = np.exp(1j * 2*np.pi * distance * np.sqrt(1/wavelength**2 - FX**2 - FY**2)) U = np.fft.fft2(u_in) U_prop = U * H return np.fft.ifft2(U_prop)

这里有个坑:当空间频率超过1/λ时,sqrt会出现虚数,对应倏逝波。咱们做远场计算时可以忽略这部分,直接取实部。跑完仿真看结果:

result = angular_spectrum(aperture, wavelength, distance, x[1]-x[0]) plt.imshow(np.abs(result)**2, cmap='jet') plt.show()

这时候能看到典型的衍射条纹,但边缘可能出毛刺。别慌,八成是采样不足,把N从2048调到4096立马见效。搞物理光学仿真就像打游戏通关,参数调对了比发paper还爽。

光学仿真,物理光学,傅立叶光学,衍射光场计算。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 9:45:22

JS防爬虫3板斧

一、核心概念 1.1 JS防爬虫的基本原理 JS防爬虫是指通过JavaScript代码实现的反爬虫措施&#xff0c;其核心思想是&#xff1a; 浏览器执行验证&#xff1a;向客户端返回一段JavaScript代码&#xff0c;只有真实浏览器才能执行动态参数生成&#xff1a;通过JS计算生成动态token…

作者头像 李华
网站建设 2026/5/1 3:47:09

低功耗不是口号:LPWAN智能井盖如何实现3年免维护?

在智慧城市基础设施监测场景中&#xff0c;井盖看似微不足道&#xff0c;却是典型的“部署易、运维难”节点。它分布广、环境恶劣、无外部供电&#xff0c;且要求长期稳定运行——这对物联网终端的低功耗设计提出了极高要求。近年来&#xff0c;基于LPWAN&#xff08;低功耗广域…

作者头像 李华
网站建设 2026/5/1 3:12:15

UVa 137 Polygons

题目描述 题目给出了两个凸多边形&#xff0c;这两个多边形可能重叠&#xff0c;也可能不重叠。如果它们重叠&#xff0c;重叠的程度和方式也会有所不同。要求编写一个程序&#xff0c;读取两个凸多边形的顶点坐标&#xff08;按顺时针顺序给出&#xff09;&#xff0c;并计算…

作者头像 李华
网站建设 2026/5/1 9:04:42

UVa 138 Street Numbers

题目描述 一位计算机程序员住在一条街上&#xff0c;街上的房屋从 111 开始依次编号。每天晚上她遛狗时&#xff0c;都会随机选择向左或向右走&#xff0c;沿着街道一直走到尽头再折返。某天晚上&#xff0c;她计算了途中经过的房屋的街号之和&#xff08;不包括自己家&#xf…

作者头像 李华