iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python光学仿真理解Jones矩阵学习
  • 596
分享到

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

2024-04-02 19:04:59 596人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录Jones向量Jones矩阵Jones矩阵的表示Jones向量 假设光波沿z轴传播,那么其三个方向的电场分量可以表示为 Jones矩阵 能够保证二维列向量形状不变的运算有无穷

Jones向量

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

在这里插入图片描述

在这里插入图片描述

Jones矩阵

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

在这里插入图片描述

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

在这里插入图片描述

Jones矩阵的表示

为了对Jones矩阵所对应的偏振状态进行绘制,我们需要进一步理解Jones矩阵中每个值所对应的物理概念。如果将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()

其图像为

在这里插入图片描述

现在光路中引入 λ / 4波片,令其旋转一周,观察一下线偏振光会有怎样的变化,设波片与x轴所成夹角为 Ψ,则其对应的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()

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

在这里插入图片描述

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

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

--结束END--

本文标题: Python光学仿真理解Jones矩阵学习

本文链接: https://www.lsjlt.com/news/154973.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python光学仿真理解Jones矩阵学习
    目录Jones向量Jones矩阵Jones矩阵的表示Jones向量 假设光波沿z轴传播,那么其三个方向的电场分量可以表示为 Jones矩阵 能够保证二维列向量形状不变的运算有无穷...
    99+
    2024-04-02
  • Python光学仿真光的偏振编程理解学习
    光的偏振 由于光波是横波,所以对于任意一个光波,其振幅方向与传播方向在一个固定的平面内。换言之,一束光波可以存在振幅方向不同的一群光波,对于其中一个光波而言,其振幅方向即为偏振方向。...
    99+
    2024-04-02
  • Python光学仿真之对光的干涉理解学习
    光的干涉 干涉即两束光在叠加过程中出现的强度周期性变化情况,其最简单的案例即为杨氏双缝干涉。 如图所示,光从 S S S点发出,通过两个狭缝 S 1 , S 2 S_1,S_2 S...
    99+
    2024-04-02
  • Python光学仿真学习衍射算法初步理解
    对衍射最经典的解释是Huygens-Fresnel原理,Huygens认为波阵面上每一点都会成为新的波源,这些子波源的相互干涉就形成了衍射。这显然是一种离散的观点,仿佛是专门为程序员...
    99+
    2024-04-02
  • Python光学仿真学习处理高斯光束分布图像
    目录通过python处理光斑图像1 相关包与图像读取2 图像截取3显示强度4数据拟合问题通过python处理光斑图像 1 相关包与图像读取 首先需要科学计算必备包numpy和画图包m...
    99+
    2024-04-02
  • python光学仿真相速度和群速度计算理解学习
    目录波动模型相速度群速度从编程的角度来说,波动光学在某些情况下可以简单地理解为在光线模型的基础上,引入一个相位项。 波动模型 一般来说,三个特征可以确定空间中的波场:频率、振幅和相位...
    99+
    2024-04-02
  • python光学仿真学习wxpython创建手速测试程序
    滚动条是什么大家自然都是知道的,可以非常直观地显示数据的变化,或者可以非常方便地改变某些数值。 此前在介绍按钮、静态文本、输入文本这三个控件时,相对来说比较乏味,所以这次我们采用需求...
    99+
    2024-04-02
  • Python光学仿真学习Gauss高斯光束在空间中的分布
    目录Gauss光束强度的表达式为 如图所示 左上图和左下图表示激光传输过程中的其束腰半径的变化情况;右图则表示高斯光束某一横截面处激光的能量分布。 绘制代码如下 import...
    99+
    2024-04-02
  • Python光学仿真wxpython之DC绘图
    一般来说,系统与绘图程序之间的信息交换是由图形设备接口(Graphics Device Interface,GDI)实现的,在wxpython中,通过device context(D...
    99+
    2024-04-02
  • Python光学仿真从Maxwell方程组到波动方程矢量算法理解学习
    Maxwell方程组是十九世纪最伟大的公式,代表了传统物理学人对公式美学的孜孜追求,也影响了无数后来者的物理美学品味。 回顾历史,当1864年,Maxwell发出那篇著名的《电磁场的...
    99+
    2024-04-02
  • Python光学仿真教程实现光线追踪
    目录光线追迹几何抽象光线线段与圆弧光线追迹 得益于计算机的计算的能力,通过追踪具有代表性的光线的传播轨迹,可以更加精确地描述光学系统的性能,光线追迹方法也因此大展其能,诸如Zemax...
    99+
    2024-04-02
  • python光学仿真面向对象光学元件类的实现
    光学元件类 平面反射镜是一种极为简单的模型,因为我们只需要考虑一个平面即可。但是除此之外的其他光学元件,可能会变得有些复杂:我们必须考虑光在入射面和出射面的行为。 这当然是一句废话,...
    99+
    2024-04-02
  • python光学仿真PyQt5基础框架教程
    前几天为了自己搞一个光学仿真集成GUI界面,于是去研究了一下PyQt5,不得不说这个模块的使用性远远超过了tkinter,强烈推荐,于是准备出一个专栏,记录一下PyQt5学习中遇到的...
    99+
    2024-04-02
  • python光学仿真实现光线追迹之空间关系
    目录空间关系相交判定射线排序线弧关系点弧关系空间关系 变化始于相遇,所以交点是一切的核心。 相交判定 首先考察一束光线能否打在某个平面镜上。光线被抽象成了一个列表[a,b,c],平面...
    99+
    2024-04-02
  • Python可视化学习之seaborn绘制矩阵图详解
    目录本文内容速览1、绘图数据准备2、seaborn.pairplot加上分类变量修改调色盘x,y轴方向选取相同子集 x,y轴方向选取不同子集非对角线散点图加趋势线 ...
    99+
    2024-04-02
  • Python光学仿真wxpython透镜演示系统框架
    透镜演示系统 框架 现在,我们可以做一个具备友好界面的透镜演示系统了。我们需要两个圆弧来表示透镜,一条线段表示主光轴,多条线段表示光线的传播路径。此外,还需要对光源和透镜的参数进行调...
    99+
    2024-04-02
  • python光学仿真实现光线追迹折射与反射的实现
    目录折射与反射平面反射平面折射python实现弧面问题折射与反射 光线与光学元件相互作用,无非只有两件事,反射和透射。而就目前看来,我们所常用的光学元件,也无非有两种表面,即平面和球...
    99+
    2024-04-02
  • python光学仿真PyQt5基础框架的方法是什么
    本篇内容介绍了“python光学仿真PyQt5基础框架的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!这篇先来说说PyQt5创建时...
    99+
    2023-06-25
  • 【Python】机器学习:基础前置 | 矩阵的表示与定义 | Numpy 库 | Identity 身份矩阵 | 逆矩阵和转置
       💭 写在前面:我们先介绍线性方程体系的基本概念和矩阵表示方法,矩阵的定义、加法、乘法、逆矩阵、转置和标量乘法等。然后讲解如何解决线性方程组问题,包括解集形式、行阶梯形矩阵、计算逆置和解决线性方程组的算法等。本节将补充线性代数的基础知识...
    99+
    2023-09-10
    机器学习 线性代数 人工智能
  • Python光学仿真wxpython透镜演示系统计算与绘图
    目录计算与绘图计算与绘图 这里的计算主要包括两个部分,分别是通过滚动条的参数得到光学器件的特征,这一点此前已经备述。其二则是光在传播过程中所产生的各种行为,反射折射函数也都已经讲过了...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作