Python光学仿真:光的偏振编程理解学习

何川
何川
发布时间:2026-10-14| 6人浏览过
原创

本文通过Python编程演示光的偏振现象。文章解释了横波的振幅方向与传播方向关系,展示了线偏振光与椭圆偏振光的合成原理。通过调整相位差,程序直观呈现了偏振方向随传播位置的变化,并分析了光在空气或水中传播时偏振状态的保持特性。

光的偏振

由于光波属于横波,任意光波的振幅方向与传播方向均位于同一固定平面内。这意味着一束光波可由振幅方向各异的光波组成,其中单个光波的振幅方向即定义为该光的偏振方向。

可以绘制其示意图


#偏振光演示
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D as axd
def polarShow():
    z = np.arange(0,5,0.01)      #传播方向,单位um
    dWave = 0.6328   
    x1 = z*0
    y1 = np.cos(2*np.pi*z/dWave)#此光波偏振方向为y
    x2 = np.cos(2*np.pi*z/dWave)#此光波偏振方向为y
    y2 = z*0
    fig = plt.figure()
    ax = axd(fig)
    ax.plot3D(z,x1,y1)
    ax.plot3D(z,x2,y2)
    ax.plot3D(z,x1,y2)
    plt.show()

得到的示意图为

日常生活中遇到的大部分光均为各种偏振方向的均匀混合,并非偏振光。图中所示的蓝色和橙色光波具有单一的偏振方向,此类光被称为线偏振光。由于这两束光处处保持等相位,它们的合成结果仍为偏振光。

若两者之间产生相位差,合成光将不再是线偏振光。以下程序代码中插入了一个相位


#两个存在相位差的线偏振光演示
def polarShow(dWave = 0.6328,delta=0.5):
    z = np.arange(0,5,0.01)      
    x1 = z*0
    y1 = np.cos(2*np.pi*z/dWave+delta)#此光波偏振方向为y
    x2 = np.cos(2*np.pi*z/dWave)#此光波偏振方向为x
    y2 = z*0
    x3 = x1+x2
    y3 = y1+y2
    fig = plt.figure()
    ax = axd(fig)
    ax.plot3D(z,x1,y1)
    ax.plot3D(z,x2,y2)
    ax.plot3D(z,x3,y3)
    ax.plot3D(z,x1,y2)
    plt.show()

调整视角后,如下图所示,可见两束线偏振光合成后,其偏振方向在光的不同传播位置处发生变化。由于沿光的传播方向观察,其投影呈现为椭圆形状,因此称此时的光为椭圆偏振光。

调整相位差,然后画出光波沿传播方向上的投影


#偏振光演示
def polarShow(dWave = 0.6328):
    z = np.arange(0,5,0.01)      
    x = np.cos(2*np.pi*z/dWave) #x偏振光
    delta = [0,np.pi/6,np.pi/4,\
             np.pi/3,np.pi/2,2*np.pi/3,\
             3*np.pi/4,5*np.pi/6,np.pi]    
    titles = ["0","30°","45°","60°","90°",\
        "120°","135°","150°","180°"]
    #fig = plt.figure()
    for i in range(9):
        ax =plt.subplot(331+i)  #子图绘制,表示3×3的布局中的第(1+i)个图
        ax.set_title(titles[i])
        y = np.cos(2*np.pi*z/dWave+delta[i])#此光波偏振方向为y
        plt.plot(x,y)
        plt.xticks([])
        plt.yticks([])  #去掉坐标轴
    plt.subplots_adjust(wspace=0.5,hspace=0.5)#调整子图间距
    plt.show()

于是得到了这张著名的图片:

光在空气或水中传播时,不会改变其偏振状态,且这两种介质对不同偏振方向的光具有相同的折射率。

以上就是Python光学仿真光的偏振编程理解学习的详细内容,更多关于Python光的偏振的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。