随着计算机的飞速发展,数值仿真在许多光学领域都有重要的应用。比如:
1、在研究超分辨时需得到光场经特定结构后精确的聚焦情况
2、研究激光相干合束时需计算阵列光束远场合束光斑的能量分布情况
3、在设计衍射光学元件时需循环计算光场经衍射元件后的远场分布
4、在设计激光谐振腔时需计算腔内光束经过多次反射后的稳定光场分布
在这些研究中,普遍包含光场传输这一最基本的物理过程,因此研究光场传输快速、准确的实现方法具有重要意义。
目前,关于光场传输的算法,主要有两种:
1、基于菲涅尔衍射积分公式的离散化求和,即积分算法
优点:直观,易实现,计算结果准确
缺点:计算速度慢
2、快速傅里叶变换算法(FFT)
优点:计算速度快
缺点:不能得到较为精细的光场分布
3、矩阵相乘算法
优点:计算速度快,并且可以得到准确的光场分布
这里我们使用论文中所述的矩阵相乘算法。
该论文的matlab实现:
clc
close 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)
set

本文探讨了光场传输在光学领域的应用,如超分辨、激光相干合束等,重点介绍了矩阵相乘算法在光场传输中的实现,对比了积分算法和快速傅里叶变换算法,展示了算法的具体MATLAB实现代码及运行结果。
1万+

被折叠的 条评论
为什么被折叠?



