基于Jones或Stokes矩阵绘制光的偏振态图样(附加函数)

该文提供了一个MATLAB函数,用于根据Jones矩阵和Stokes参数生成并绘制光的偏振态图样。用户可以自定义偏振角和相位延迟,函数支持实时绘制。示例代码展示了如何使用这两个函数创建和显示偏振态图像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文解决的问题:基于matlab书写了一个单一光的偏振态绘制图样案例,提供了基于Jones矩阵和Stokes参数矩阵输入处理的函数。
提供的技术价值:在光的矩阵运算过程,可以对光的偏振态进行调用以实时绘制并输出观察。


Fouction Code
% 作者:ZQJ
% 日期:2023.2.6 星期一

%*********************** 产生/绘制单一偏振态函数 **************************
function Polarization_output = f_Generation_or_figure_polorization
    Polarization_output.Jones      = @Polarization_Jones;     % 基于Jones矩阵
    Polarization_output.Stokes     = @Polarization_Stokes;    % 基于Stokes参数矩阵
end

function Polarized_Jones_output = Polarization_Jones(p_theta,p_phi,figure_bool)
% 函数功能:产生一个任意偏振态的Jones矩阵,并可以选择是否绘制
% p_theta:              输入偏振的主轴的方位角
% p_phi:                偏振y分量的相位延迟量
% figure_bool:          是否将偏振figure出来:1是;0不
% Polarization_output:  输出偏振态的Jones矩阵[;]

Polarized_Jones_output = [cos(p_theta);                    % 此处为这种定义
                          sin(p_theta)*exp(1i*p_phi)];
if figure_bool == 1
    A_x = abs(Polarized_Jones_output(1));                  % 分量的振幅
    A_y = abs(Polarized_Jones_output(2));
    angle_x = angle(Polarized_Jones_output(1));            % 分量的相位
    angle_y = angle(Polarized_Jones_output(2));
    t = linspace(0,1,1000);
    Ex = A_x*cos(20*t+angle_x);
    Ey = A_y*cos(20*t+angle_y);
    figure,plot(Ex,Ey),axis([-1,1,-1,1]),axis square;
end
end

function Polarized_Stokes_figure = Polarization_Stokes(S0,S1,S2,S3,figure_bool) %#ok<STOUT>
% 函数功能:根据输入的Stokes参数选择是否绘制偏振态图样
% figure_bool:          是否将偏振figure出来:1是;0不

POR_phi = 0.5*atan2(S2,S1);              % polarization orientation 偏振方向:椭圆主轴与传统x轴的夹角phi
Ellipticity_theta = 0.5*asin(-S3);       % 椭偏度角度theta
Polarization_Jones(POR_phi,Ellipticity_theta,figure_bool);
end
Use_example
% 作者:ZQJ

%*********************** 自定义单一偏振态图样的绘制 **************************
clear,clc,close all;
Polarization_output = f_Generation_or_figure_polorization;

% Jones矩阵形式的偏振态绘制 ***************
p_theta = -1*pi/4;
p_phi = 0*pi/4;
figure_bool = 1;
Polarization_output.Jones(p_theta,p_phi,figure_bool);title('基于Jones矩阵法');

% Stokes矩阵形式的偏振态绘制 **************
S0 = 1;
S1 = 0;
S2 = -1;
S3 = 0;
figure_bool = 1;
Polarization_output.Stokes(S0,S1,S2,S3,figure_bool);title('基于Stokes矩阵法');
仿真结果图:

在这里插入图片描述


专栏内容供作者本人或大家学习使用,多多指教 ~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值