通过Python理解Jones矩阵

Jones矩阵

Jones向量

假设光波沿z轴传播,那么其三个方向的电场分量可以表示为

E x = A x cos ⁡ ( ω t − k r + φ x ) E y = A t cos ⁡ ( ω t − k r + φ y ) E z = 0 \begin{aligned} E_x &= A_x\cos(\omega t-\bold k\bold r+\varphi_x)\\ E_y &= A_t\cos(\omega t-\bold k\bold r+\varphi_y)\\ E_z &= 0\\ \end{aligned} ExEyEz=Axcos(ωtkr+φx)=Atcos(ωtkr+φy)=0

由于传播方向为0,故可以通过一个二维向量来表示

[ E x E y ] = [ Re [ A x exp ⁡ ( j φ x ) exp ⁡ ( j ω t − j k r ) ] Re [ A y exp ⁡ ( j φ y ) exp ⁡ ( j ω t − j k r ) ] ] \begin{bmatrix} E_x\\ E_y \end{bmatrix}=\begin{bmatrix} \text{Re}[A_x\exp(\text j\varphi_x)\exp(\text j\omega t-\text j\bold k\bold r)]\\ \text{Re}[A_y\exp(\text j\varphi_y)\exp(\text j\omega t-\text j\bold k\bold r)]\\ \end{bmatrix} [ExEy]=[Re[Axexp(jφx)exp(jωtjkr)]Re[Ayexp(jφy)exp(jωtjkr)]]

则记

J ^ = [ A x exp ⁡ ( j φ x ) A y exp ⁡ ( j φ y ) ] = = [ J x J y ] \hat J=\begin{bmatrix} A_x\exp(\text j\varphi_x)\\ A_y\exp(\text j\varphi_y)\\ \end{bmatrix}==\begin{bmatrix} J_x\\ J_y \end{bmatrix} J^=[Axexp(jφx)Ayexp(jφy)]==[JxJy]

此即琼斯向量,其中包含了偏振态的全部信息,而且附赠了光波的振幅项 A \bold A A。如果只关心偏振量,则可对 J ^ \hat J J^进行归一化,则令

tan ⁡ ψ = A y A x exp ⁡ [ j ( φ y − φ x ) ] \tan\psi=\frac{A_y}{A_x}\exp[\text j(\varphi_y-\varphi_x)] tanψ=AxAyexp[j(φyφx)]

可表示为

J ^ = [ cos ⁡ ψ sin ⁡ ψ ] \hat J=\begin{bmatrix} \cos\psi\\ \sin\psi \end{bmatrix} J^=[cosψsinψ]

φ x = φ y \varphi_x=\varphi_y φx=φy时,表示x和y方向不存在相位差,此时 J x , J y J_x,J_y Jx,Jy均为实数,描述的是线偏振光;当存在相位差时,琼斯向量中出现虚数,表示圆偏振光。

对于偏振光 J ^ \hat J J^,与其正交的偏振向量可以表示为

J ^ ∗ = [ − sin ⁡ ψ cos ⁡ ψ ] \hat J^*=\begin{bmatrix} -\sin\psi\\ \cos\psi \end{bmatrix} J^=[sinψcosψ]

二者符合关系

J ^ ⋅ J ^ ∗ = 0 \hat J\cdot\hat J^*=0 J^J^=0

常见的琼斯向量有

向量说明
[ 1 0 ] T \begin{bmatrix}1&0\end{bmatrix}^T [10]Tx方向线偏振
[ 0 1 ] T \begin{bmatrix}0&1\end{bmatrix}^T [01]Ty方向线偏振
1 2 [ 1 1 ] T \frac{1}{\sqrt{2}}\begin{bmatrix}1&1\end{bmatrix}^T 2 1[11]T45°偏振
1 2 [ 1 − 1 ] T \frac{1}{\sqrt{2}}\begin{bmatrix}1&-1\end{bmatrix}^T 2 1[11]T-45°偏振
1 2 [ cos ⁡ θ sin ⁡ θ ] T \frac{1}{\sqrt{2}}\begin{bmatrix}\cos\theta&\sin\theta\end{bmatrix}^T 2 1[cosθsinθ]T θ \theta θ偏振
1 2 [ 1 − i ] T \frac{1}{\sqrt{2}}\begin{bmatrix}1&-\text i\end{bmatrix}^T 2 1[1i]T右旋圆偏振
1 2 [ 1 i ] T \frac{1}{\sqrt{2}}\begin{bmatrix}1&\text i\end{bmatrix}^T 2 1[1i]T左旋圆偏振

Jones矩阵

能够保证二维列向量形状不变的运算有无穷多种,但最符合我们直觉的一定是 2 × 2 2\times2 2×2矩阵。好在这种矩阵已经可以提供足够多的运算,从而满足我们描述偏振变化的需求。

先考虑最简单的情况,一束偏振光经过x轴的线偏振片之后会有什么后果?无论入射光如何,其出射光必然遵循 [ A 0 ] T [A\quad 0]^T [A0]T的形式,故对应的Jones矩阵可以表示为

[ 1 0 0 0 ] \begin{bmatrix} 1&0\\0&0 \end{bmatrix} [1000]

对于与x轴夹角为 Ψ \Psi Ψ的偏振片,其表达形式为

1 2 [ cos ⁡ 2 Ψ cos ⁡ Ψ sin ⁡ Ψ sin ⁡ Ψ cos ⁡ Ψ sin ⁡ 2 Ψ ] \frac{1}{2}\begin{bmatrix}\cos^2\Psi&\cos\Psi\sin\Psi\\\sin\Psi\cos\Psi&\sin^2\Psi\end{bmatrix} 21[cos2ΨsinΨcosΨcosΨsinΨsin2Ψ]

常见偏振片的Jones矩阵可以表示为

Jonoes矩阵说明
[ 1 0 0 0 ] \begin{bmatrix}1&0\\0&0\end{bmatrix} [1000]x方向线偏振片
[ 0 0 0 1 ] \begin{bmatrix}0&0\\0&1\end{bmatrix} [0001]y方向线偏振片
1 2 [ 1 1 1 1 ] \frac{1}{2}\begin{bmatrix}1&1\\1&1\end{bmatrix} 21[1111]45°偏振片
1 2 [ 1 − 1 − 1 1 ] \frac{1}{2}\begin{bmatrix}1&-1\\-1&1\end{bmatrix} 21[1111]-45°偏振片
1 2 [ 1 i − i 1 ] \frac{1}{2}\begin{bmatrix}1&\text i\\-\text i&1\end{bmatrix} 21[1ii1]右旋偏振片
1 2 [ 1 − i i 1 ] \frac{1}{2}\begin{bmatrix}1&-\text i\\\text i&1\end{bmatrix} 21[1ii1]左旋偏振片

光在通过波片之后,会在不同方向产生差异性的相位延迟,对于与x轴角度为 Ψ \Psi Ψ,相位差为 Φ \Phi Φ的波片,其Jones矩阵为

[ e − i Φ 2 cos ⁡ 2 Ψ + e i Φ 2 sin ⁡ 2 Ψ − i sin ⁡ Φ 2 sin ⁡ 2 Ψ − i sin ⁡ Φ 2 sin ⁡ 2 Ψ e i Φ 2 sin ⁡ 2 Ψ + e i Φ 2 cos ⁡ 2 Ψ ] \begin{bmatrix} e^{-\text i\frac{\Phi}{2}}\cos^2\Psi+e^{\text i\frac{\Phi}{2}}\sin^2\Psi&-\text i\sin\frac{\Phi}{2}\sin2\Psi\\ -\text i\sin\frac{\Phi}{2}\sin2\Psi&e^{\text i\frac{\Phi}{2}\sin^2\Psi}+e^{\text i\frac{\Phi}{2}}\cos^2\Psi \end{bmatrix} [ei2Φcos2Ψ+ei2Φsin2Ψisin2Φsin2Ψisin2Φsin2Ψei2Φsin2Ψ+ei2Φcos2Ψ]

一些常用的光学矩阵如下

Jonoes矩阵说明
[ e − i Φ 2 0 0 e i Φ 2 ] \begin{bmatrix}e^{-\text i\frac{\Phi}{2}}&0\\0&e^{\text i\frac{\Phi}{2}}\end{bmatrix} [ei2Φ00ei2Φ]x轴方向相位差为 Φ \Phi Φ的波片
[ − i 0 0 i ] \begin{bmatrix}-\text i&0\\0&\text i\end{bmatrix} [i00i]x轴方向半波片
1 2 [ 1 − i 0 0 1 + i ] \frac{1}{\sqrt{2}}\begin{bmatrix}1-\text i&0\\0&1+\text i\end{bmatrix} 2 1[1i001+i]x轴方向 λ / 4 \lambda/4 λ/4波片

我们平时使用的偏振器件,多半放在可旋转的镜架上,对偏振器件进行旋转操作的矩阵不出意外地表示为

[ cos ⁡ θ − sin ⁡ θ sin ⁡ θ cos ⁡ θ ] \begin{bmatrix} \cos\theta&-\sin\theta\\ \sin\theta&\cos\theta \end{bmatrix} [cosθsinθsinθcosθ]

Jones矩阵的表示

为了对Jones矩阵所对应的偏振状态进行绘制,我们需要进一步理解Jones矩阵中每个值所对应的物理概念。如果将Jones矩阵写成虚数形式,可以表示为

J = [ a x + i b x a y + i b y ] J=\begin{bmatrix} a_x+ib_x\\ a_y+ib_y \end{bmatrix} J=[ax+ibxay+iby]

其模矩阵表示x轴与y轴的相对强度,可以表示为

[ a x 2 + b x 2 a y 2 + b y 2 ] \begin{bmatrix} \sqrt{a_x^2+b_x^2}\\ \sqrt{a_y^2+b_y^2}\\ \end{bmatrix} [ax2+bx2 ay2+by2 ]

其俯角矩阵表示x轴与y轴的俯角则表示相位延迟,可以表示为

[ arctan ⁡ b x a x arctan ⁡ b y a y ] \begin{bmatrix} \arctan\frac{b_x}{a_x}\\ \arctan\frac{b_y}{a_y}\\ \end{bmatrix} [arctanaxbxarctanayby]

所以,对于右旋圆偏振光 1 2 [ 1 − i ] T \frac{1}{\sqrt{2}}\begin{bmatrix}1&-\text i\end{bmatrix}^T 2 1[1i]T而言,其x方向幅角为0,y方向幅角为 − π 2 -\frac{\pi}{2} 2π,二者相差 π 2 \frac{\pi}{2} 2π,故为右旋圆偏振光。

那么,对于任意Jones矩阵,我们可以很方便地绘制其对应的偏振图像。方便起见,我们只对1.064um光波在z轴方向传播5um这段距离进行采样,然后画出

def drawJones(J=[1,-2j]):
    J = np.array(J).reshape(2,1)
    # 设1.064um的光在z方向传播5um后,沿传播方向看去的振幅分布
    z = np.arange(0,5,0.01)
    k = 2*np.pi/1.064

    # 将J改写成x和y方向的振幅序列
    J = np.abs(J)*np.cos(k*z+np.angle(J))
    
    fig = plt.figure()
    ax1 = fig.add_subplot(121)
    ax1.plot(J[0],J[1])
    ax2 = fig.add_subplot(122,projection='3d')
    ax2.plot3D(z,J[0],J[1])
    
    plt.show()

if __name__ == "__main__":
    drawJones()

其图像为

在这里插入图片描述

现在光路中引入 λ / 4 \lambda/4 λ/4波片,令其旋转一周,观察一下线偏振光会有怎样的变化,设波片与x轴所成夹角为 Ψ \Psi Ψ,则其对应的Jones矩阵为

[ 1 − cos ⁡ 2 Ψ − i sin ⁡ 2 Ψ − i sin ⁡ 2 Ψ 1 + cos ⁡ 2 Ψ ] \begin{bmatrix} 1-\cos2\Psi&-\text i\sin2\Psi\\ -\text i\sin2\Psi&1+\cos2\Psi \end{bmatrix} [1cos2Ψisin2Ψisin2Ψ1+cos2Ψ]

代码为

def drawQuaterPlate():
    quater = lambda psi : np.array(
        [[1-np.cos(2*psi),-1j*np.sin(2*psi)],
         [-1j*np.sin(2*psi),1+np.cos(2*psi)]])
    
    z = np.arange(0,5,0.01)
    k = 2*np.pi/1.064
    # 初始光波为x方向线偏振光
    J0 = np.array([1,0]).reshape(2,1)

    fig = plt.figure()
    ax = fig.add_subplot(111,xlim=(-2,2),ylim=(-2,2))
    ax.grid()

    line, = ax.plot([],[],lw=0.2)
    time_text = ax.text(0.1,0.9,'',transform=ax.transAxes)


    thetas = np.linspace(0,np.pi*2,80)

    def init():
        line.set_data([],[])
        time_text.set_text("")
        return line, time_text
    
    def animate(theta):
        J = quater(theta)@J0    #经过波片后的Jones矩阵
        arrJ = np.abs(J)*np.cos(k*z+np.angle(J)) #采样后的振幅
        line.set_data(arrJ[0],arrJ[1])
        time_text.set_text("angle:"+str(theta))
        return line, time_text

    ani = animation.FuncAnimation(fig, animate, thetas,
        interval=100, init_func=init)

    ani.save('polor.gif',writer='imagemagick')
    plt.show()

最终得到偏振情况与波片角度的关系

在这里插入图片描述
可见,当角度合适的时候, λ / 4 \lambda/4 λ/4波片会将线偏振光变为圆偏振光。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微小冷

请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值