gpt4 book ai didi

Python光学仿真理解Jones矩阵学习

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 34 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Python光学仿真理解Jones矩阵学习由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

  。

Jones向量

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

Python光学仿真理解Jones矩阵学习

Python光学仿真理解Jones矩阵学习

  。

Jones矩阵

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

Python光学仿真理解Jones矩阵学习

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

Python光学仿真理解Jones矩阵学习

  。

Jones矩阵的表示

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

Python光学仿真理解Jones矩阵学习

那么,对于任意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()

其图像为 。

Python光学仿真理解Jones矩阵学习

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

Python光学仿真理解Jones矩阵学习

代码为 。

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()

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

Python光学仿真理解Jones矩阵学习

可见,当角度合适的时候, λ / 4波片会将线偏振光变为圆偏振光.

以上就是Python光学仿真理解Jones矩阵学习的详细内容,更多关于Python光学仿真Jones矩阵的资料请关注我其它相关文章! 。

原文链接:https://blog.csdn.net/m0_37816922/article/details/109607941 。

最后此篇关于Python光学仿真理解Jones矩阵学习的文章就讲到这里了,如果你想了解更多关于Python光学仿真理解Jones矩阵学习的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com