夫琅禾费圆孔衍射python
时间: 2024-09-25 15:00:30 浏览: 39
python光学仿真+夫琅和费衍射+使用傅里叶变换仿真模拟
夫琅禾费圆孔衍射是指光通过一个小圆形孔洞时,在其后的平面上形成明暗交替的同心圆环状图案的现象。这属于光学中的波动理论,特别是菲涅尔衍射的一部分。在Python中,我们可以利用物理学库,如`numpy`和`matplotlib`,来进行模拟。
首先,我们需要创建一个函数来计算每个点的相位差,然后使用傅立叶变换生成频域图像,再转换回空间域得到衍射图样。下面是一个简单的示例:
```python
import numpy as np
import matplotlib.pyplot as plt
# 光波参数
wavelength = 500e-9 # 波长(米)
孔径尺寸 = 1e-4 # 圆孔直径(米)
离轴距离 = 10 * wavelength # 观察位置离孔中心的距离(米)
# 创建频率数组
nyquist_frequency = 1 / (2 * np.max(np.abs(np.fft.fftfreq(grid_size))))
grid_size = int(2 ** np.ceil(np.log2(np.hypot(grid_size_x, grid_size_y))))
k_space = np.fft.fftfreq(grid_size)[:, None] * 2 * np.pi
# 创建孔径函数
def aperture_function(x, y):
return np.exp(-((x**2 + y**2) / (2 * (孔径尺寸)**2)))
# 计算衍射图样
phase_pattern = aperture_function(x, y) * np.exp(1j * k_space * (x**2 + y**2))
diffraction_pattern = np.abs(np.fft.ifft2(phase_pattern))**2
# 显示结果
fig, ax = plt.subplots()
ax.imshow(diffraction_pattern, cmap='gray')
ax.set_title('Fresnel Diffraction Pattern of a Circular Aperture')
plt.show()
阅读全文