
matlab:光场传输的各种算法
随着计算机的飞速发展,数值仿真在许多光学领域都有重要的应⽤。⽐如:
1、在研究超分辨时需得到光场经特定结构后精确的聚焦情况
2、研究激光相⼲合束时需计算阵列光束远场合束光斑的能量分布情况
clc
clo all
clear all
%% 光源部分
No = 200; %取样点数
N = 128;
lambda = 1064e-6; %波长1064nm
k = 2*pi/lambda; %波⽮
w = 3; %⾼斯光束的束宽
d = 1000; %传输距离1000mm
[x0,y0] = meshgrid(linspace(-1.5*w,1.5*w,No));
E0 = exp(-(x0.^2+y0.^2)/w^2); %⾼斯光束
I0 = E0.*conj(E0); I0 = I0/max(max(I0));
figure;mesh(x0,y0,I0)
t(gca,'fontname','times new roman','fontsize',16); %设置图形对象属性
xlabel('x/mm','fontname','times new roman','fontsize',16);
ylabel('y/mm','fontname','times new roman','fontsize',16);
zlabel('归⼀化强度','fontname','华⽂中宋','fontsize',16);
%% 光传输矩阵相乘算法
dx0 = x0(1,2)-x0(1,1); dy0 = dx0;
[x1,y1] = meshgrid(linspace(-1.5*w,1.5*w,N));
Mx = exp(-1i*k/d*x1(1,:)'*x0(1,:));
My = exp(-1i*k/d*y0(:,1)*y1(:,1)');
M = E0.*exp(1i*k/2/d*(x0.^2+y0.^2));
E1 = -1i/lambda/d*exp(1i*k*d)*exp(1i*k/2/d*(x1.^2+y1.^2)).*(Mx*M*My);
I1 = E1.*conj(E1); I1 = I1/max(max(I1));
figure;mesh(x1,y1,I1);
t(gca,'fontname','times new roman','fontsize',16); %设置图形对象属性
xlabel('x/mm','fontname','times new roman','fontsize',16);
ylabel('y/mm','fontname','times new roman','fontsize',16);
zlabel('归⼀化强度','fontname','华⽂中宋','fontsize',16);
%% 积分算法
for a = 1:N
for b = 1:N
E2(a,b) = -1i/lambda/d*exp(1i*k*d)*sum(sum(E0.*exp(1i*k/2/d*((x1(a,b)-x0).^2+(y1(a,b)-y0).^2))));
end
a
end
I2 = E2.*conj(E2); I2 = I2/max(max(I2));
figure;mesh(x1,y1,I2)
t(gca,'fontname','times new roman','fontsize',16);
xlabel('x/mm','fontname','times new roman','fontsize',16);
ylabel('y/mm','fontname','times new roman','fontsize',16);
zlabel('归⼀化强度','fontname','华⽂中宋','fontsize',16);
运⾏结果:

本文发布于:2023-11-11 23:50:18,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/zhishi/a/169971781888374.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:matlab:光场传输的各种算法.doc
本文 PDF 下载地址:matlab:光场传输的各种算法.pdf
| 留言与评论(共有 0 条评论) |