通过python理解光的偏振
Posted 微小冷
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过python理解光的偏振相关的知识,希望对你有一定的参考价值。
文章目录
基本原理
光是横波,可以写成 E ⃗ = A ⃗ c o s ( ω t − k ⃗ r ⃗ ) \\vec E = \\vecAcos(\\omega t-\\vec k\\vec r) E=Acos(ωt−kr),振动方向与传播方向垂直,而在三维空间中,与光线垂直的乃是法平面。换言之,光波在传输过程中,只要振动方向在某一平面内,就是合法的,而其振动方向,即为偏振方向。
这种横波在传播过程中存在的不同振动方向的特性,即为光的偏振。
这种现象最早是丹麦科学家巴多林在1669年发现的,他看到当一道光照射冰洲石的时候,这束光会一分为二,其实就是晶体的双折射现象。这个现象随后被波动光学的老祖宗惠更斯认为是纵波的现象,显然是不对的,直到1810年马斯吕才用偏振解释了这个现象,他也被称为偏振之父。
下面画一下偏振的示意图
#偏振光演示
import numpy as np
import matplotlib.pyplot as plt
def polarShow():
z = np.arange(0,5,0.01) #传播方向,单位um
dWave = 0.6328
x1 = z*0
y1 = np.cos(2*np.pi*z/dWave)#此光波偏振方向为y
x2 = np.cos(2*np.pi*z/dWave)#此光波偏振方向为y
y2 = z*0
ax = plt.subplot(projection='3d')
ax.plot3D(z,x1,y1)
ax.plot3D(z,x2,y2)
ax.plot3D(z,x1,y2)
plt.show()
出图如下,其中绿色为光轴,即光的传播方向,蓝色和橘色分别是两个不同偏振方向的光。
椭圆偏振光
生活中的大部分光都是各种偏振方向的均匀混合,看不出偏振特性。上图所示的蓝色和橙色光波,其偏振方向单一,这种光叫做线偏振光。又因为这两束光处处保持等相位,则这两束光的合成仍旧为偏振光。
如果二者存在相位差,那么其合成将不再是线偏振光,下面将程序中插入一个相位
#两个存在相位差的线偏振光演示
def polarShow(dWave = 0.6328,delta=0.5):
z = np.arange(0,5,0.01)
x1 = z*0
y1 = np.cos(2*np.pi*z/dWave+delta)#此光波偏振方向为y
x2 = np.cos(2*np.pi*z/dWave)#此光波偏振方向为x
y2 = z*0
x3 = x1+x2
y3 = y1+y2
ax = plt.subplot(projection='3d')
ax.plot3D(z,x1,y1)
ax.plot3D(z,x2,y2)
ax.plot3D(z,x3,y3)
ax.plot3D(z,x1,y2)
plt.show()
调整视角之后,如下图所示,红色是光轴,蓝色和橘色是两个不同方向的偏振光,绿色是两个方向偏振光的合成。可见两束存在相位差的线偏振光合成之后,偏振方向会随着传播位置发生变化。由于沿着光的传播方向看去,其投影为一个椭圆,故称之为椭圆偏振光。
调整相位差,然后画出光波沿传播方向上的投影
#偏振光演示
def polarShow(dWave = 0.6328):
z = np.arange(0,5,0.01)
x = np.cos(2*np.pi*z/dWave) #x偏振光
delta = [0, 1/6, 1/4, 1/3, 1/2, 2/3, 3/4, 5/6, 1]
ths = [d*np.pi for d in delta]
titles = [f"int(180*d)°" for d in delta]
for i in range(9):
#子图绘制,表示3×3的布局中的第(1+i)个图
ax =plt.subplot(3, 3, 1+i)
ax.set_title(titles[i])
y = np.cos(2*np.pi*z/dWave+ths[i])#此光波偏振方向为y
ax.plot(x,y)
plt.xticks([])
plt.yticks([]) #去掉坐标轴
plt.subplots_adjust(wspace=0.5,hspace=0.5)#调整子图间距
plt.show()
于是就得到了这张著名的图片:
光学 Optics
前置课程:振动与波,高中光学
引入
光是一种横波。光沿一个方向传播时,其振动可以分解为两个正交的方向的简谐振动,这两个方向都与传播方向正交。
由于两个方向振动的相位差固定,在非偏振章节,我们可以认为光的振动相当于一个简谐振动。记这个简谐振动为 E = A 0 cos ( ω x + φ ) E=A_0\\cos(\\omega x+\\varphi) E=A0cos(ωx+φ)。光的光强是振幅的平方,记为 I = A 2 I=A^2 I=A2( A A A也就是 E E E)。
当两束光相遇时,会产生振幅的叠加。设两束光的相位差是 δ \\delta δ,它们合成的光强遵循这个式子: I = I 1 + I 2 + 2 I 1 I 2 cos ( δ ) I=I_1+I_2+2\\sqrt{I_1I_2}\\cos(\\delta) I=I1+I2+2I1I2cos(δ)。由一个点光源发出的光的相位是在极短时间内迅速改变的。因此,两个不同的点光源发出的光相遇时,相位差 δ \\delta δ在迅速地跃变,跃变频率比探测器探测的频率还要高。探测器会给出探测时间内的平均值,因此这种情况下, cos ( δ ) \\cos(\\delta) cos(δ)会取 δ \\delta δ为任意值的平均值,即 0 0 0。即此时 I = I 1 + I 2 I=I_1+I_2 I=I1+I2。称这种叠加为非相干叠加。如果是同一个光源发出的光,经过分光后再相遇,那么虽然初始相位在不断跃变,但相位差却是恒定的。因此光强并不是两束光光强的简单叠加。称这种情形为相干叠加。
光在真空中的传播速度是 c c c。设光在某一介质中的传播速度是 v v v,则这一介质的折射率 n = c v n=\\frac{c}{v} n=vc。显然真空的折射率是 1 1 1(空气的折射率近似为 1 1 1),除此以外的介质折射率都大于 1 1 1。记光的波长为 λ \\lambda λ。
设光在折射率为 n n n的介质中传播了 l l l的距离,则称光传播了光程 L = n l L=nl L=nl。光程的意义是相同时间内光在真空中传播的距离。
菲涅尔衍射与夫琅禾费衍射
设想有一个点光源S在一条直线上(称这条直线为光轴)。在光轴上放置一个挖了圆洞的无限大的纸板,圆洞的圆心在光轴上,称这个圆洞为圆孔。P是光轴上的收到S经圆孔射来的光的一点。称P为场点。考虑P点的光强。
设纸板平面到P的距离为 b b b。纸板平面上到P点距离为 b + k ⋅ λ 2 ( k = 0 , 1 , 2 , ⋯ ) b+k\\cdot\\frac{\\lambda}{2}(k=0,1,2,\\cdots) b+k⋅2λ(k=0,1,2,⋯)的点构成一个圈,称这个圈为k-半波圈。称k-半波圈和(k+1)-半波圈在纸板平面上围出的区域为k-半波带。圆孔射到P点的光可以分解为通过圆孔内每个半波带的光的和。
S点到每个半波带的光程近似为S点到圆孔圆心的距离,记为 R R R。S到P的每一束光的光程即为 R + b + k ⋅ λ 2 R+b+k\\cdot\\frac{\\lambda}{2} R+b+k⋅2λ, k k k是它通过的半波带。因此相邻两个半波带的光的光程差是 λ 2 \\frac{\\lambda}{2} 2λ,即相位差是 π \\pi π。相位差是 π \\pi π的两个振幅的符号是相反的。即k-半波带在P点造成的振幅为 A k A_k Ak,则总振幅 A = A 0 + A 1 + A 2 + ⋯ A=A_0+A_1+A_2+\\cdots A=A0+A1+A2+⋯。根据菲涅尔衍射定律,随着纸板上的点与P的连线和光轴的夹角增大,振幅会乘上一个缓慢减小的系数 f f f,在0-半波带这个系数是 1 1 1,在∞-半波带这个系数是 0 0 0。
对于圆孔衍射, A = A 0 + A 1 + ⋯ + A m A=A_0+A_1+\\cdots+A_m A=A0+A1+⋯+Am,m-半波带是圆孔内最外层的半波带。由于系数 f f f减小得很慢,可以认为 A 0 A_0 A0和 A 1 A_1 A1相抵消, A 2 A_2 A2和 A 3 A_3 A3相抵消,以此类推。因此最终若 m m m是奇数,则P点光强接近 0 0 0,是暗点。若 m m m是偶数,则P点振幅接近 A 0 A_0 A0,是亮点。
若 m → ∞ m\\rightarrow \\infty m→∞,则 A m → 0 A_m\\rightarrow 0 Am→0,此时P点振幅 A = 1 2 A 0 A=\\frac{1}{2}A_0 A=21A0,是亮点。这就是圆孔无限大,也就是没有纸板遮挡的情况,称为自由传播。
考虑在光轴上放一个圆形纸板,圆心在光轴上,以这个为遮挡物,这种衍射称为圆屏衍射。根据刚才所讲述的, A = A m + A m + 1 + ⋯ A=A_m+A_{m+1}+\\cdots A=Am+Am+1+⋯, m m m是圆屏外的第一个半波带。这种情况最终 A = 1 2 A m A=\\frac{1}{2} A_m A=21Am,是亮点。也就是说无论圆屏多大,P点总是亮的。
以上是关于通过python理解光的偏振的主要内容,如果未能解决你的问题,请参考以下文章