
文章目錄生成狹縫干涉仿真屏上的光場分布生成狹縫本文參考prysm文檔提供的雙縫干涉教程。雙縫干涉亮條紋所在位置為y m m λ D d y_m\frac{m\lambda D}vvp75rlhfym?dmλD?其中D DD是屏幕的距離d dd是狹縫間距λ \lambdaλ是波長。設a 20 μ m a20\mu\mathrm ma20μm為狹縫寬度狹縫間隔d 0.2 m m d0.2\mathrm{mm}d0.2mm。下面對狹縫進行采樣并繪圖效果如下fromprysm.coordinatesimportmake_xy_gridfromprysm.geometryimportrectangle a.02d.2dxa/6# 采樣間隔x,ymake_xy_grid(1024,dxdx)frommatplotlibimportpyplotasplt plt.rcParams[font.sans-serif]Times New RomanxLx-d/2xRxd/2slitLrectangle(widtha,height10,xxL,yy)slitRrectangle(widtha,height10,xxR,yy)apertureslitL|slitR plt.imshow(aperture)plt.show()干涉仿真下面要做的是讓一個波前通過狹縫并記錄下其在屏幕上的能量分布并與理論值做對比。相鄰條紋相對于狹縫的遠場發散角為θ y m 1 ? y m D λ d \theta\frac{y_{m1}-y_m}{D}\frac{\lambda}vvp75rlhfθDym1??ym??dλ?。對于λ 632.8 n m \lambda632.8\mathrm{nm}λ632.8nm的He-Ne光來說上述模型的θ 3.164 m r a d \theta3.164\mathrm{mrad}θ3.164mrad。效果如下兩條虛線表示第一級亮條紋的理論位置。代碼為fromprysm.propagationimportWavefrontfromprysm.wavelengthsimportHeNe wfWavefront(aperture,HeNe,dx)dx3.164farfieldwf.focus(1)# f1plt.style.use(bmh)fig,axfarfield.intensity.slices().plot(x,xlim(dx*5))ax.axvline(dx,ls:,ck,zorder1)ax.axvline(-dx,ls:,ck,zorder1)plt.show()【slices】可對光場進行切片并提取出該切片上的光強分布。屏上的光場分布下面指定一個確切的距離模擬雙縫干涉在屏幕上的光強分布效果如下l.6328e-3D75maximal*D/d finite_distwf.free_space(D)figplt.figure(figsize(10,5))axfig.add_subplot(121)finite_dist.intensity.plot2d(axax,figfig)plt.grid(False)axfig.add_subplot(122)finite_dist.intensity.slices().plot([x],lw1,axax)ax.axvline(maxima,ls:,ck,zorder1)ax.axvline(-maxima,ls:,ck,zorder1)plt.tight_layout()plt.show()