sympy 偏振光学之Jones矩阵

sympy 偏振光学之Jones矩阵琼斯向量是描述光波偏振状态的一种数学工具 尤其在二维平面上

大家好,欢迎来到IT知识分享网。

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://haidsoft.com/145227.html

(0)
上一篇 2025-04-21 14:20
下一篇 2025-04-21 14:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信