新闻动态

Python光学仿真之对光的干涉理解学习

发布日期:2021-12-22 18:25 | 文章来源:gibhub

光的干涉

干涉即两束光在叠加过程中出现的强度周期性变化情况,其最简单的案例即为杨氏双缝干涉。

如图所示,光从 S S S点发出,通过两个狭缝 S 1 , S 2 S_1,S_2 S1​,S2​,最终汇聚在右侧的干涉屏上,在不同位置处将会产生不同的相位差。

import numpy as np
import matplotlib.pyplot as plt
#两束光叠加
waveAdd = lambda I1,I2,theta : I1+I2+2*np.sqrt(I1*I2)*np.cos(theta)
#同一束光经过小孔之后的光程差,dSlit为小孔间距,dWave为波长
#point为衍射屏上某点,theta为衍射屏相对小孔所在直线倾角
def interSlit(dSlit,point=(1,1,1),n=1,dWave=1.06e-6):
 pVar = sum(np.array(point)**2) + 0.25*dSlit**2
 delt = 2*np.pi*n/dWave*(
  np.sqrt(pVar+point[0]*dSlit)-
  np.sqrt(pVar-point[0]*dSlit))
 return delt
#杨氏干涉,只考虑x方向
#dSlit:小孔间距;dScreen:衍射屏距离
#nGrid:网格个数;dGrid:网格间距
def interYang(dSlit=1e-3,dScreen=1,n=1,I1=1,I2=1,
  dWave=1.06e-6,nGrid=500,dGrid=1e-5):
 xAxis = np.arange(-nGrid,nGrid+1)*dGrid
 I = [waveAdd(I1,I2,interSlit(
dSlit,(x,0,dScreen),n,dWave)) 
for x in xAxis]
 plt.plot(xAxis,I)
 plt.show()

得到的衍射强度图为

双缝干涉是一个非常实用的模型,可以应用到许多光学装置中,例如Fresnel双面镜,Fresnel双棱镜,Lloyds镜,Billet剖开透镜等等。其中Frenel双面镜如图所示

光源入射到双面镜之后在镜后产生了两个像点 P , Q 二者相当于一对小孔,于是可以在右侧的干涉屏上产生干涉。

其仿真过程与杨氏干涉只差一个小孔的转换,图像亦如出一辙。

#alpha为双镜锐角,dSA为光源到劈点距离,dScreen为S像点连线到干涉屏距离
def lensFresnel(alpha=0.1,dSA=1e-3,dScreen=1,
 n=1,I1=1,I2=1,dWave=1.06e-6,
 nGrid=500,dGrid=1e-4):
 dSlit = 2*dSA*np.sin(alpha)
 interYang(dSlit,dScreen,n,I1,I2,dWave,nGrid,dGrid)

以上就是Python光学仿真之对光的干涉理解学习的详细内容,更多关于Python理解光的干涉的资料请关注本站其它相关文章!

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。

相关文章

实时开通

自选配置、实时开通

免备案

全球线路精选!

全天候客户服务

7x24全年不间断在线

专属顾问服务

1对1客户咨询顾问

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部