进行光学和傅立叶光学领域的全息图仿真
下面是一个简单的Python脚本,用于进行光学和傅立叶光学领域的全息图仿真。这个脚本主要模拟了平面波与球面波干涉形成全息图的过程。
import numpy as np
import matplotlib.pyplot as plt
# 定义参数
N = 512 # 图像尺寸
L = 1e-2 # 模拟区域边长 (m)
dx = L / N # 像素间距 (m)
x = np.arange(-L/2, L/2, dx)
X, Y = np.meshgrid(x, x)
# 定义波长和传播距离
wavelength = 632.8e-9 # 波长 (m)
z = 0.1 # 传播距离 (m)
# 定义平面波
plane_wave = np.exp(1j * 2 * np.pi * 0 * X / wavelength)
# 定义球面波
r = np.sqrt(X**2 + Y**2 + z**2)
spherical_wave = np.exp(1j * 2 * np.pi * r / wavelength) / r
# 干涉形成全息图
hologram = np.abs(plane_wave + spherical_wave)**2
# 显示全息图
plt.figure(figsize=(8, 8))
plt.imshow(hologram, cmap='gray')
plt.title('Simulated Hologram')
plt.axis('off')
plt.show()
代码说明:
- 参数定义:设置了模拟区域的尺寸、像素间距、波长和传播距离等参数。
- 平面波和球面波的定义:分别计算了平面波和球面波的复振幅。
- 干涉形成全息图:通过计算平面波和球面波的干涉强度,得到全息图的强度分布。
- 显示全息图:使用
matplotlib
库显示生成的全息图。
你可以根据自己的需求调整参数,进一步扩展和优化这个仿真。