我正在尝试使用MATLAB生成一些计算机生成的全息图.我使用等距网格来初始化空间网格,我得到了下面的图像
除中心区域外,这种模式是我需要的.边缘应该是锐利但模糊的.我认为这可能是网格的问题.我尝试在极坐标中生成一个网格,并使用MATLAB的pol2cart函数将其映射到笛卡尔坐标.不幸的是,它不起作用.人们可能会建议使用精细网格.它也不起作用.我想如果我能生成一个螺旋网格,也许这个问题是可以解决的.另外,螺旋臂的数量通常是任意的,任何人都可以给我一个暗示吗?
我附上了代码(我的最终项目并不完全相同,但它有类似的问题).
clc; clear all; close all;
%% initialization
tic
lambda = 1.55e-6;
k0 = 2*pi/lambda;
c0 = 3e8;
eta0 = 377;
scale = 0.25e-6;
NELEMENTS = 1600;
GoldenRatio = (1+sqrt(5))/2;
g = 2*pi*(1-1/GoldenRatio);
pntsrc = zeros(NELEMENTS, 3);
phisrc = zeros(NELEMENTS, 1);
for idxe = 1:NELEMENTS
pntsrc(idxe, :) = scale*sqrt(idxe)*[cos(idxe*g), sin(idxe*g), 0];
phisrc(idxe) = angle(-sin(idxe*g)+1i*cos(idxe*g));
end
phisrc = 3*phisrc/2; % 3 arms (topological charg