sympy 偏振光学之Jones矩阵

这篇具有很好参考价值的文章主要介绍了sympy 偏振光学之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 e j φ x e j ω t − j k r ) Re ( A y e j φ y e j ω t − j k r ) ] \begin{bmatrix} E_x\\ E_y \end{bmatrix}=\begin{bmatrix} \text{Re}(A_xe^{\text j\varphi_x}e^{\text j\omega t-\text j\bold k\bold r})\\ \text{Re}(A_ye^{\text j\varphi_y}e^{\text j\omega t-\text j\bold k\bold r})\\ \end{bmatrix} [ExEy]=[Re(Axejφxejωtjkr)Re(Ayejφyejω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均为实数,描述的是线偏振光;当存在相位差时,琼斯向量中出现虚数,表示圆偏振光。

sympy实现

sympy.physics.optics.polarization中,有jones_vector可以表示Jones向量,其调用方法为

jones_vector(psi, chi)

其中,psi x x x方向的极化角度;chi为与晶体主轴的夹角。

import sympy
from sympy.physics.optics.polarization import jones_vector
psi = sympy.symbols('psi')
V = jones_vector(psi, 0)
sympy.pprint(V)
'''
⎡cos(ψ)⎤
⎢      ⎥
⎣sin(ψ)⎦
'''

Jones矩阵可以描述Jones向量在通过偏振元件后的变化,例如偏振光在经过 x x x线偏振片之后, sin ⁡ ψ \sin\psi sinψ会被滤掉,从而其对应的Jones矩阵可表示为

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

常见偏振器件

sympy.physics.optics.polarization中封装了多种偏振器件的Jones矩阵。

  • linear_polarizer(theta=0) 线偏振光
  • half_wave_retarder(theta) 半波片
  • quarter_wave_retarder(theta) λ / 4 \lambda/4 λ/4波片
  • phase_retarder(theta=0, delta=0) 相位延迟
  • reflective_filter® 反射滤光片,R为反射率
  • transmissive_filter(T) 透射滤光片,T为透过率
  • polarizing_beam_splitter(Tp=1, Rs=1, Ts=0, Rp=0, phia=0, phib=0) 偏振片
import sympy
from sympy.physics.optics.polarization import half_wave_retarder
theta = sympy.symbols("theta", real=True)
# 测试半波片
HWP = half_wave_retarder(theta)
sympy.latex(HWP)

结果如下

[ − i ( − sin ⁡ 2 θ + cos ⁡ 2 θ ) − 2 i sin ⁡ θ cos ⁡ θ − 2 i sin ⁡ θ cos ⁡ θ − i ( sin ⁡ 2 θ − cos ⁡ 2 θ ) ] \left[\begin{matrix}- i \left(- \sin^{2}\theta + \cos^{2}{\theta}\right) & - 2 i \sin\theta \cos\theta\\- 2 i \sin\theta\cos\theta & - i \left(\sin^{2}\theta - \cos^{2}\theta\right)\end{matrix}\right] [i(sin2θ+cos2θ)2isinθcosθ2isinθcosθi(sin2θcos2θ)]

偏振片参数较多,现列如下polarizing_beam_splitter(Tp=1, Rs=1, Ts=0, Rp=0, phia=0, phib=0)

  • J 琼斯矩阵
  • Tp p偏振光的透过率
  • Rs s偏振光的反射率
  • Ts s偏振光的透过率
  • Rp p偏振光的反射率
  • phia 透射和反射分量的相位差
  • phib 透射和反射分量的相位差
from sympy.physics.optics.polarization import polarizing_beam_splitter
PBS = polarizing_beam_splitter()
sympy.latex(PBS)

[ 1 0 0 0 0 0 0 − i 0 0 1 0 0 − i 0 0 ] \left[\begin{matrix}1 & 0 & 0 & 0\\0 & 0 & 0 & - i\\0 & 0 & 1 & 0\\0 & - i & 0 & 0\end{matrix}\right] 1000000i00100i00 文章来源地址https://www.toymoban.com/news/detail-521842.html

到了这里,关于sympy 偏振光学之Jones矩阵的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 用于符号数学的 Python 库——sympy(二):常用信号的Laplace变换

    关于拉普拉斯变换的作用,可参考知乎 总的来说,拉普拉斯变换就是迫使函数满足绝对可积条件的傅里叶变换。 参考信号与系统/陈后金, 胡健, 薛健. ——2版.——北京:清华大学出版社;北京交通大学出版社, 2005.7(2017.3重印)第218-219页。 序号       单边信号(f(t))      

    2024年02月07日
    浏览(46)
  • python数学建模之用sympy.solve求解方程组的解

    在sympy.solve(expression)方法的帮助下,我们可以很容易地求解数学方程,它将返回使用sympy.solve()方法作为参数提供的方程的根。 参考文档: 参考文档 https://www.geeksforgeeks.org/python-sympy-solve-method/ 在下面这个例子中,我们可以看到通过使用sympy.solve()方法,我们可以求解数

    2024年02月10日
    浏览(40)
  • 用sympy计算Pauli矩阵

    Pauli矩阵是3个 2 × 2 2times2 2 × 2 的矩阵,这三哥矩阵的行列式均为-1,一般以 σ sigma σ 表示如下 σ x = [ 0 1 1 0 ] σ y = [ 0 − i i 0 ] σ z = [ 1 0 0 − 1 ] sigma_x=begin{bmatrix}01\\\\10end{bmatrix}quad sigma_y=begin{bmatrix}0-i\\\\i0end{bmatrix}quad sigma_z=begin{bmatrix}10\\\\0-1end{bmatrix} σ x ​ = [ 0 1 ​ 1

    2024年02月01日
    浏览(39)
  • 「SymPy」符号运算(6) 矩阵Matrix及基础运算

    在前几篇文章中,我们学习了 SymPy 基础/高级用法、方程求解、微积分以及向量运算等内容,本节我们学习 SymPy 核心内容之一 Matrix 矩阵计算(基础)。 传送链接: 「SymPy」符号运算(1) 简介/符号/变量/函数/表达式/等式/不等式/运算符 「SymPy」符号运算(2) 各种形式输出、表达

    2024年02月14日
    浏览(32)
  • python ocr(光学文字识别) 学习笔记 (一)

    参考资料:500 lines or less ocr 我们的OCR系统主要由5部分组成,分别写在5个文件之中。它们分别是: 客户端(ocr.js) 服务器(server.py) 简单的用户界面(ocr.html) 基于反向传播训练的ANN(ocr.py) ANN的实现脚本(neural network design.py) 虽然界面服务器用户界面不是我们的重点,但由于笔者水平有

    2024年02月08日
    浏览(42)
  • Baumer工业相机堡盟相机如何使用偏振功能(偏振相机优点和行业应用)(C#)

    Baumer工业相机堡盟相机是一种高性能、高质量的工业相机,可用于各种应用场景,如物体检测、计数和识别、运动分析和图像处理。   Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分辨率图像。此外,该相机还具有快速数据传输、低功耗、易于集成以及高度可

    2024年02月09日
    浏览(38)
  • python矩阵乘法全面解读,python矩阵乘法常用代码

      矩阵乘法,顾名思义是矩阵的乘法,矩阵相乘的含义是两个向量的积,在 Python中一般以乘号或括号表示。与常用的加、减、乘、除运算不同,矩阵乘法只能用于对给定矩阵进行乘法运算,不能进行除法运算。若要计算矩阵乘法的值,必须先进行矩阵分解。 在上一篇文章中

    2024年02月08日
    浏览(38)
  • (Python)MATLAB mat矩阵和Python npy矩阵转换

    Python np.ndarray矩阵转换为MATLAB mat文件 Python读取MATLAB mat文件

    2024年01月16日
    浏览(41)
  • 基于Python实现一个PoW的仿真程序

    资源下载地址:https://download.csdn.net/download/sheziqiong/86831335 资源下载地址:https://download.csdn.net/download/sheziqiong/86831335 利用 Python 实现一个 PoW 的仿真程序,模拟一定数量的节点生成区块链的状态。 设置参数包括:节点数量和每个轮次出块的成功率,测量区块链的增长速度。 设

    2024年02月08日
    浏览(38)
  • SUMO与python联合仿真(跟驰与换道)

    这几天做了几个sumo与python联合仿真的实验,虽然设计的场景相对来说不是很复杂,但是我觉得挺有收获的,期间也经历了很多大大的坑,下面来分享一下。 问题1:在sumo与python联合仿真时,配置环境变量 (%E5%A4%A7%E5%9D%91%E6%80%BB%E7%BB%93.assets/1686476392225.png) 点开之后设置三部分

    2024年02月05日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包