MATLAB仿真:涡旋光束光强和相位分布同时展示
绘画过程
在浏览一些文章发现将光强和相位分布显示在一张图片上可以有效增加文章的观感,如图1所示,今天小编带大家探索一下这种图是如何画出的。
图1:不同拓扑荷下的光强与相位分布
在处理图像之前我们先要了解什么是RGB以及HSV颜色模型。RGB模型是一种基于光的颜色模型,由红(Red)、绿(Green)、蓝(Blue)三种基本色光组成。通过调整这三种基色的强度,可以生成几乎所有可见光谱中的颜色。RGB分别表示三个通道通常被量化为0到255之间的整数,其中0表示该基色不发光,255表示该基色以最大强度发光。在HSV色彩空间里H代表颜色相位也就是色温,S是饱和度,V是亮度。通常的取值范围为:H:0—180,S:0—255,V:0—255,用度数表示H时,范围为H:0-360,S:0-1,V:0-1。
我们要处理的两个矩阵分别为相位矩阵(范围为0-2Π)和光强矩阵(范围归一化后0-1),通过将相位映射到HSV色彩空间中代表色温H,光强映射到HSV色彩空间中代表亮度V,再设定饱和度,便可以将光强分布和相位分布结合映射到色彩空间中,再将HSV色彩空间转换为RGB色彩空间就可以得到我们想要的彩色图片(如图2所示)。对应的colorbar可以在一个新的独立的axes里画出来(如图3所示)。
图2:仿真结果
图3:colorbar颜色表
MATLAB部分仿真代码
只展示部分代码,更多代码进T点博士生牛马赚点小钱
clc;clear;
%% 光束参数
lambda=632.8e-6;%mm
w0=0.5;
k=2*pi/lambda;
% 坐标
N =500;
df =8e-3;
[fx,fy] = meshgrid((-N/2:N/2-1)*df);
[phif,rf] = cart2pol(fx,fy);
p=1;
l=3;%H
E1= sqrt(2*factorial(p)/pi/factorial(p+abs(l)))*(sqrt(2)*rf/w0).^abs(l)...
.*exp(-rf.^2/w0^2+1i*(l)*phif).*laguerre(p,abs(l),2*rf.^2/w0^2);
I=E1.*conj(E1);I = I./max(max(I)); %光强归一化
喜欢的话点点关注点点赞呀
如有问题可在评论区留言