|
|
matlab实现高斯波前
自己做的出现一个疑问 请教高手. 程序中红色的部分 我尝试了 三种 写法 只有第一种能够 正确表示 出 高斯波前. 但是不知道原因
clear;
wave=1.064e-3;
wo=0.5;
zr=pi*wo^2/wave;
z=linspace(-2*zr,2*zr,200);
y=linspace(-4*wo,4*wo,200);
[py,pz]=meshgrid(y,z);
o=wave*pz/(pi*wo^2);
wz=wo*sqrt(1+o.^2);
i=wo^2./wz.^2.*exp(-2*(py.^2./wz.^2));
% i=wo^2./wz^2.*exp(-2*(py^2./wz^2));%figure is diffence
% i=wo^2/wz^2*exp(-2*(py^2/wz^2));%figure not exist
surf(pz,py,i);
shading interp;
xlabel('xlocation/mm');
ylabel('ylocation/mm');
zlabel('power/a.u.');
colorbar;
box on;
|
|