当前位置: 首页 > article >正文

偏振测量——典型光学元件的穆勒矩阵

斯托克斯向量(Stokes Vector)为1*4向量,可用于描述偏振光的状态,其四个元素分别代表总光强S0,垂直或水平方向线偏振分量S1,正负45度线偏振分量S2,圆偏振分量S3。

当一束光经过某个器件时,其偏振态发生变化,对应到斯托克斯向量的变化。在数学上即可考虑到用一个4*4的矩阵描述该器件对光的偏振态的影响,这个矩阵就是穆勒矩阵。这里记录一些典型光学元件的穆勒矩阵以供查询。

线性偏振片(偏振方向为0度)

M_P=\begin{bmatrix} 1 & 1 & 0& 0 \\ 1 & 1 & 0& 0 \\ 0 & 0 & 0& 0 \\ 0 & 0 & 0& 0 \end{bmatrix}

玻片(waveplate 或补偿器compensator 或延迟器retarder),其中phi为玻片的延迟量,快轴角度为0

M_{WP}=\begin{bmatrix} 1 & 0 & 0& 0 \\ 0 & 1 & 0& 0 \\ 0 & 0 & cos\delta& -sin\delta\\ 0 & 0 & sin\delta& cos\delta\end{bmatrix}

另外,穆勒矩阵的旋转矩阵如下,其中theta为旋转角度

R(\theta)=\begin{bmatrix} 1 & 0 & 0& 0 \\ 0 & cos2\theta & sin2\theta& 0 \\ 0 & -sin2\theta & cos2\theta& 0\\ 0 & 0 & 0& 1\end{bmatrix}

一个光学元件旋转一定角度后,其穆勒矩阵可以如下计算:

M(\theta) = R(-\theta)M_0R(\theta)

进而可以求得任意玻片和偏振片旋转一定角度后的穆勒矩阵。

以下python代码

import numpy as np

def WavePlate(delta):
    Mwp = np.zeros([4, 4])
    Mwp[0, 0] = 1
    Mwp[1, 1] = 1
    Mwp[2, 2] = np.cos(delta)
    Mwp[3, 3] = np.cos(delta)
    Mwp[2, 3] = -np.sin(delta)
    Mwp[3, 2] = np.sin(delta)
    return Mwp
def RotateMatrix(theta):
    R = np.zeros([4,4])
    R[0, 0] = 1
    R[3, 3] = 1
    R[1, 1] = np.cos(2 * theta)
    R[2, 2] = np.cos(2 * theta)
    R[1, 2] = np.sin(2 * theta)
    R[2, 1] = -np.sin(2 * theta)
    return R

def rotate(M,theta):
    R1 = RotateMatrix(theta)
    R2 = RotateMatrix(-theta)
    return R2@M@R1

Mp = np.zeros([4,4])
Mp[0:2,0:2]=1
print('角度为0度的线性偏振片穆勒矩阵: \n',Mp)
print('角度为45度的线性偏振片穆勒矩阵: \n',np.round(rotate(Mp,np.pi/4)))
print('角度为-45度的线性偏振片穆勒矩阵: \n',np.round(rotate(Mp,-np.pi/4)))
print('角度为90度的线性偏振片穆勒矩阵: \n',np.round(rotate(Mp,np.pi/2)))

delta1 = np.pi/4 #四分之一玻片
delta2 = np.pi/2 #半玻片

print('快轴角度为0度的四分之一玻片穆勒矩阵: \n',np.round(WavePlate(delta1),2))
print('快轴角度为90度的四分之一玻片穆勒矩阵: \n',np.round(rotate(WavePlate(delta1),np.pi/2),2))
print('快轴角度为0度的半玻片穆勒矩阵: \n',np.round(WavePlate(delta2),2))
print('快轴角度为90度的半玻片穆勒矩阵: \n',np.round(rotate(WavePlate(delta2),np.pi/2),2))

运行结果:

角度为0度的线性偏振片穆勒矩阵: 
 [[1. 1. 0. 0.]
 [1. 1. 0. 0.]
 [0. 0. 0. 0.]
 [0. 0. 0. 0.]]
角度为45度的线性偏振片穆勒矩阵: 
 [[1. 0. 1. 0.]
 [0. 0. 0. 0.]
 [1. 0. 1. 0.]
 [0. 0. 0. 0.]]
角度为-45度的线性偏振片穆勒矩阵: 
 [[ 1.  0. -1.  0.]
 [ 0.  0. -0.  0.]
 [-1. -0.  1.  0.]
 [ 0.  0.  0.  0.]]
角度为90度的线性偏振片穆勒矩阵: 
 [[ 1. -1.  0.  0.]
 [-1.  1. -0.  0.]
 [ 0. -0.  0.  0.]
 [ 0.  0.  0.  0.]]
快轴角度为0度的四分之一玻片穆勒矩阵: 
 [[ 1.    0.    0.    0.  ]
 [ 0.    1.    0.    0.  ]
 [ 0.    0.    0.71 -0.71]
 [ 0.    0.    0.71  0.71]]
快轴角度为90度的四分之一玻片穆勒矩阵: 
 [[ 1.    0.    0.    0.  ]
 [ 0.    1.   -0.    0.  ]
 [ 0.   -0.    0.71  0.71]
 [ 0.   -0.   -0.71  0.71]]
快轴角度为0度的半玻片穆勒矩阵: 
 [[ 1.  0.  0.  0.]
 [ 0.  1.  0.  0.]
 [ 0.  0.  0. -1.]
 [ 0.  0.  1.  0.]]
快轴角度为90度的半玻片穆勒矩阵: 
 [[ 1.  0.  0.  0.]
 [ 0.  1. -0.  0.]
 [ 0. -0.  0.  1.]
 [ 0. -0. -1.  0.]]


http://www.kler.cn/a/469183.html

相关文章:

  • 使用Python实现健康跟踪应用:打造智能健康管理助手
  • 基于深度学习的视觉检测小项目(六) 项目的信号和变量的规划
  • sqlserver数据库备份和还原
  • 计算机网络(第8版)第3章--PPP课后习题
  • ESP32-C3 入门笔记08:多帧数据解析
  • Linux网络命令
  • 网络安全技能试题总结参考
  • 《深入浅出HTTPS​​​​​​​​​​​​​​​​​》读书笔记(24):椭圆曲线密码学
  • Kotlin 协程基础知识总结七 —— Flow 与 Jetpack Paging3
  • 如何实现一个充满科技感的官网(二)
  • AWS DMS基础知识
  • 第27天:PHP应用原生语法全局变量数据接受身份验证变量覆盖任意上传
  • 人工智能深度学习物体检测之YOLOV7源码解读
  • 【C语言】_野指针
  • 利用DHCP自动分配IP
  • 手工专项测试--接口测试(jmeter)--单接口与关联接口与断言
  • 百度Android最新150道面试题及参考答案 (中)
  • 《Vue进阶教程》第三十四课:toRefs的使用
  • 【开源免费】基于SpringBoot+Vue.JS作业管理系统(JAVA毕业设计)
  • [python3]Excel解析库-xlrd