1.程序功能描述
基于魏格纳函数和焦散线方法的自加速光束matlab模拟与仿真。通过魏格纳函数法,来产生多种自加速的光束,设计自加速光束方法,模拟出相应的图结果。
2.测试软件版本以及运行结果展示
MATLAB2022A版本运行
3.核心程序
figure; subplot(121); imshow(Phase2,[]) colorbar title('Phase'); subplot(122); imshow(Amp2,[]) colorbar title('amplititude'); %保存图片 Phase2_save = imresize(Phase2,[1080,1080],'nearest'); Amp2_save = imresize(Amp2,[1080,1080],'nearest'); imwrite(Phase2_save,'Phase2_save.bmp','bmp'); imwrite(Amp2_save,'Amp2_save.bmp','bmp'); %% %平面光场图,魏格纳函数 %W = Int(0..zmax){E(x+y)E(x-y)exp[2ixy]} Wxkx = func_wigner(X'); %光场 amp = abs(sum(Wxkx,2));%根据魏格纳函数得到幅度,公式7 fai = (sum([t].*Wxkx,2))./sum(Wxkx,2);%根据魏格纳函数得到相位,公式7 E = amp'.*exp(sqrt(-1)*fai); E = abs(E);%根据相位和幅度得到E E = Zmax*[E/max(max(E))]';%E归一化 %计算光场 %根据公式11进行叠加 [s2,t2] = meshgrid(s,2*t); %其实这里之前也没大问题,之前是用了这个sin代入了,其实只要把计算得到E代入就可以了,所以之前你才觉得去掉E还是不变这个问题 I = abs(airy(0, E-s2,1)+airy(0,-E+s2,1));%非凸轨迹 figure; subplot(211); surface(t2,s2,I) shading interp axis([min(t),max(t),-75,75]); colormap(hot) %% %fit and xmax %获得xmax值 [RR,CC] = size(I); for i = 1:RR [VV,II] = max(I(i,:)); ysamp(i) = (II-RR/2)/RR*max(s); end ysamp=ysamp-mean(ysamp); %进行拟合 xdata = 2*Z; ydata = ysamp; x = lsqcurvefit(@myfun1,[3;1;1],xdata,ydata);%sin类型拟合 x subplot(212); plot(Z,x(1)*sin(x(2)*t+x(3)),'b'); hold on plot(xdata(1:10:end),ysamp(1:10:end),'r.'); legend('拟合','主瓣位置'); axis([0,20,-8,8]); grid on xlabel('z/mm'); ylabel('x/um'); 24_008m
4.本算法原理
魏纳函数(Wavelet函数)和焦线方法在自适应光束加速中起着重要作用,主要应用于光学成像、光操控和光束聚焦、光束整形等领域。这种方法利用纳函数的数学描述光场分布,并结合数值模拟技术来设计特定的光束形状和传播特性,从而实现对光束的精确控制。
光束通常可以展开为一系列基函数的线性组合,如高斯函数或拉普朗斯基尔德函数等。一个简化的例子是高斯展开:
通过调整光束相位分布(相位φ(x,y)可以改变光束传播特性,如聚焦或加速。一个典型方法是利用相位调制的光栅格:
魏函数 魈函数(U(x,y,z) 描述了光场的复振幅值在空间中的分布,x,y)位置坐标,z是沿光轴方向的传播距离。
光束加速 自适应性** 通过调整光束的相位相分布,可以实现光束聚焦、加速、束整形,甚至光束的自适应传播特性。
标签:魏格纳,函数,光束,焦散线,matlab,ysamp,Amp2,save From: https://www.cnblogs.com/softcodes/p/18656268