基模高斯光束:
高斯光束的横向光强分布:
传递函数:
运行结果:
MATLAB:
%角谱法计算光束传输
clc;
clear;
close all;
% 参数定义
lambda = 632.8e-9; % 波长(米)
k = 2 * pi / lambda; % 波数
w0 = 0.1e-3; % 初始束腰半径(米)
z_final = 0.1; % 最终传输距离(米)
% 空间坐标设置
L = 10 * w0; % 横向空间大小(米)
N = 2^9; % 网格点数
dx = L / N; % 采样间距
x = -L/2 : dx : L/2 - dx;
y = x;
[X, Y] = meshgrid(x, y);
% 空间频率坐标设置
df = 1 / L;
fx = -1/(2*dx) : df : 1/(2*dx) - df;
fy = fx;
[Fx, Fy] = meshgrid(fx, fy);
Fxy = Fx.^2 + Fy.^2;
% 初始高斯光束
Uin = exp(-(X.^2 + Y.^2) / w0^2); %横向光强
U0=Uin;
% 计算传输后的高斯光束
z = linspace(0, z_final, 10); % 传输距离从0到z_final
for zz = z
% 傅里叶变换计算
Uin_ft = fftshift(fft2(ifftshift(Uin)));
% 傅里叶域中的传播因子
H = exp(-1i * pi * lambda * zz * Fxy);
% 传播后的光场
Uout_ft = Uin_ft .* H;
Uout = fftshift(ifft2(ifftshift(Uout_ft)));
% 绘图
figure(1);
m=2;
n=2;
subplot(m, n, 1);
I0 = abs(U0).^2;
I0 = I0 / max(max(I0));
surf(x,y,I0); %三维图
shading interp; %图像更平滑
colormap(jet); %彩色映射,hot
title('初始高斯光束');
% axis square;
subplot(m, n, 2);
imagesc(x, y, I0);
title('初始高斯光束');
xlabel('X (m)');
ylabel('Y (m)');
axis square;
colormap('jet');
colorbar;
subplot(m, n, 3);
I_out = abs(Uout).^2;
I_out = I_out / max(max(I_out));
surf(x,y,I_out) %三维图
shading interp %图像更平滑
colormap(jet) %彩色映射,hot
title(['传播距离 z = ' num2str(zz) ' m']);
subplot(m, n, 4);
imagesc(x, y, I_out);
title(['传播距离 z = ' num2str(zz) ' m']);
xlabel('X (m)');
ylabel('Y (m)');
axis square;
colormap('jet');
colorbar;
drawnow;
end