基于Python的光学实验仿真
Background
单缝衍射
双缝干涉
大抵是高中背了一次,大学物理又背了一次,帮同学写小作业拾起来再复习了一次
单缝衍射
单缝衍射是光在传播过程中遇到障碍物,光波会绕过障碍物继续传播的一种现象。如果波长与缝、孔或障碍物尺寸相当或者更大时,衍射现象最明显。依据光源、衍射屏(障碍物)及接收屏相对位置的不同,常将衍射分为两类,即菲涅尔衍射与夫琅和费衍射。在光学里,菲涅耳衍射(Fresneldiffraction)指的是光波在近场区域的衍射,即光源或衍射的图样的屏与衍射孔(障碍物)的距离是有限的。菲涅耳衍射积分式可以用来计算光波在近场区域的传播,因法国物理学者奥古斯丁·菲涅耳而命名,是基尔霍夫衍射公式的近似 光源和光屏到障碍物的距离均不是很远,并且没有使用透镜。此时光线不是平行光,即波阵面不是平面。这种情况是菲涅尔最早(1818年)描述的,所以称为菲涅尔衍射。
光源和光屏到障碍物的距离都很大,此时入射光为平行光,波面是平面,衍射光也是平行光。这种衍射称为夫琅禾费衍射。在实验室里,我们可以很容易的用透镜使入射球面光波变成平行光,很容易实现夫琅禾费衍射的条件。显然,菲涅尔衍射是普遍情况,夫琅禾费衍射只是它的特例。
双缝干涉
在量子力学里,双缝实验,或称双狭缝实验(英语:Double-slit experiment)是一种展示光子或电子等微观物体的波动性与粒子性的实验。双缝实验是一种“双路径实验”。在双路径实验里,微观物体可以同时通过两条路径或通过其中任意一条路径,从初始点抵达最终点。这两条路径的程差促使描述微观物体物理行为的量子态发生相移,因此产生干涉现象。另一种常见的双路径实验是马赫-曾德尔干涉仪实验。
双缝实验的基本仪器设置很简单,如图所示,将像激光一类的相干光束照射到一块刻有两条狭缝的不透明板,通过狭缝的光束会抵达照相胶片或某种探测屏,从记录于照相胶片或某种探测屏的辐照度数据,可以分析光的物理性质。光的波动性使得通过两条狭缝的光束互相干涉,形成了显示于探测屏的明亮条纹和暗淡条纹相间的图样,明亮条纹是相长干涉区域,暗淡条纹是相消干涉区域,这就是双缝实验著名的干涉图样。
在经典力学里,双缝实验又称为“杨氏双缝实验”,或“杨氏实验”、“杨氏双狭缝干涉实验”,专门演示光波的干涉行为,是因物理学者托马斯·杨而命名。假若光束是以粒子的形式从光源移动至探测屏,抵达探测屏任意位置的粒子数目,应该等于之前通过左狭缝的粒子数量与之前通过右狭缝的粒子数量的总和。根据定域性原理(principle of locality),关闭左狭缝不应该影响粒子通过右狭缝的行为,反之亦然,因此,在探测屏的任意位置,两条狭缝都不关闭的辐照度应该等于只关闭左狭缝后的辐照度与只关闭右狭缝后的辐照度的总和。但是,当两条狭缝都不关闭时,结果并不是这样,探测屏的某些区域会比较明亮,某些区域会比较暗淡,这种图样只能用光波动说的相长干涉和相消干涉来解释,而不是用光微粒说的简单数量相加法。
双缝实验也可以用来检试像中子、原子等微观物体的物理行为,虽然使用的仪器不同,但仍旧会得到类似的结果。每一个单独微观物体都离散地撞击到探测屏,撞击位置无法被预测,演示出整个过程的概率性,累积很多撞击事件后,总体又显示出干涉图样,演示微观物体的波动性。
实验
基于python的光学仿真包含了单缝衍射和双缝干涉两个部分,本光学仿真主要基于包含夹角、距离的光强公式,是一个TOY EXAMPLE,可以认为是知道理论和公式来计算图像,不过仿真大抵如此,而且完全符合公式以及图像。
单缝衍射:
参数设定:
1 | # param: |
光屏大小的图片矩阵来记录对应的光强:
1 | import numpy as np |
图片展示
1 | import matplotlib.pyplot as plt |
双缝干涉
参数:
1 | import numpy as np |
由于对称性,完全可以进行优化,即只与一个坐标有关
1 | #在高度x介于(0,h/2)采样,采样间隔可设置 |
光强计算
1 | Il=[] |
光屏展示
1 | import matplotlib.pyplot as plt |
光屏像素点数
1 | Il_2=np.hstack((Il[::-1],Il)) |
光强彩色图渲染
1 | plt.axis('off') |
灰度图展示
1 | plt.imshow(Il_3[:,:],cmap='gray') |
总觉得哪里不太对劲,可能还需要哪里有些问题,对了plt.axis(‘off’)可以关闭坐标轴
1 | # # # remap to 0-255 |