% 参数设置
lambda = 840e-9; % 光波长 (单位:米)
k = 2 * pi / lambda; % 波数
n = 1.451; % 介质的折射率
z_max = 5e-3; % 模拟传播的最大距离 (单位:米)
N = 512; % 图像的分辨率
dx = 3.5e-6; % 每个像素的尺寸 (单位:米)
dy = dx; % 假设为正方形像素
% 空间坐标系
x = (-N/2:N/2-1) * dx; % x 坐标
y = (-N/2:N/2-1) * dx; % y 坐标
[X, Y] = meshgrid(x, y); % 创建网格
% 设置不同的底角(单位:弧度)
cone_angles = [5, 10, 15] * pi / 180; % 锥的底角
% 绘图设置
figure;
subplot_count = length(cone_angles);
intensity_xz_all = cell(1, subplot_count); % 存储各个角度的强度分布
for j = 1:subplot_count
cone_angle = cone_angles(j);
% 锥透镜的相位调制
phi_cone = k * sqrt(X.^2 + Y.^2) * cone_angle * (n - 1); % 锥透镜的相位因子
% 初始高斯光束
w0 = 1e-3; % 束腰半径 (米)
U0 = exp(- (X.^2 + Y.^2) / w0^2); % 高斯光束,初始相位为0
% 通过锥透镜调制光波
U_coned = U0 .* exp(-1i * phi_cone); % 高斯光束经过锥透镜调制
% 计算频率空间 (角谱传播)
fx = (-N/2:N/2-1) / (N * dx); % 频率坐标
fy = fx;
[Fx, Fy] = meshgrid(fx, fy);
F = sqrt(Fx.^2 + Fy.^2); % 频率空间的径向坐标
% 传播传递函数
H = @(z) exp(1i * k * z * sqrt(1 - (lambda * F).^2)); % 角谱传播传递函数
% 设置传播距离的采样点
z_samples = linspace(0, z_max, 50); % 50 个传播距离
intensity_xz = zeros(N, length(z_samples)); % 预分配空间
% 对每个传播距离进行计算
for i = 1:length(z_samples)
z = z_samples(i);
% 计算传播到 z 处的场
U_freq = fftshift(fft2(U_coned)); % 2D 傅里叶变换
U_freq = U_freq .* H(z); % 应用传播传递函数
U_propagated = ifft2(ifftshift(U_freq)); % 逆傅里叶变换回到空间域
% 提取 y = 0 处的 xz 平面数据
y_idx = ceil(N / 2); % 选择 y = 0 处,即 Ny 中心
U_xz = U_propagated(:, y_idx); % 提取 xz 平面的数据
% 计算强度分布 |U(x, 0, z)|^2并保存
intensity_xz(:, i) = abs(U_xz).^2; % 直接存入预分配的矩阵
end
% 存储每个锥的强度分布
intensity_xz_all{j} = intensity_xz;
% xy平面强度分布
subplot(2, subplot_count, j);
imagesc(x * 1e6, x * 1e6, abs(U_coned).^2); % xy 平面强度分布
colormap('hot');
colorbar;
title(['XY Plane, Cone Angle: ', num2str(cone_angle * 180/pi), '°']);
xlabel('x (μm)');
ylabel('y (μm)');
axis square;
% 绘制 xz 平面强度分布
subplot(2, subplot_count, j + subplot_count);
imagesc(x * 1e6, z_samples * 1e6, intensity_xz'); % xz 平面强度分布
colormap('hot');
colorbar;
title(['XZ Plane, Cone Angle: ', num2str(cone_angle * 180/pi), '°']);
xlabel('x (μm)');
ylabel('z (μm)');
axis square;
set(gca, 'YDir', 'normal'); % 反转 y 轴
end
% 调整整体图形
sgtitle('Intensity Distribution of Gaussian Beam through Conical Lens');
|