一维与二维Airy光场传输模拟:原理、实现与结果分析

一维与二维Airy光场传输模拟:原理、实现与结果分析

Airy光场作为一种无衍射、自加速的新型光束,其传输特性(如光强分布、相位演化、自聚焦效应)是光学领域的研究热点。本文基于角谱方法(Angular Spectrum Method, ASM),详细阐述一维与二维Airy光场的传输模拟流程,并通过MATLAB代码实现不同距离下的输出特性分析。


一、Airy光场的基本特性与数学模型

Airy光场的核心特征是无衍射(Non-diffracting)与自加速(Self-accelerating),其数学表达式为:

其中:

关键特性


二、传输模拟的核心方法:角谱方法(ASM)

角谱方法是模拟光场传输的精确数值方法,其原理是将光场分解为不同方向的平面波(角谱),计算每个平面波在传输过程中的相位变化,再通过逆傅里叶变换得到接收面的光场分布。

1. 角谱方法的数学推导

对于一维Airy光场(沿z轴传输),其传输过程可描述为:

其中:

二维扩展:对于二维Airy光场,只需将x方向的傅里叶变换推广到二维(),其余步骤同理。

2. 角谱方法的优势


三、一维Airy光场传输模拟

1. 参数设置

2. MATLAB代码实现

% 1. 参数设置
lambda = 532e-9;       % 波长 (m)
k0 = 2 * pi / lambda;  % 波数 (m^-1)
x0 = 0.1e-3;           % 初始横向尺度 (m)
a = 0.05;              % 衰减因子
z_list = [0, 1, 2, 4]; % 传输距离 (m)
N = 512;               % 网格点数
L = 1e-3;              % 空间范围 (m)
dx = L / N;            % 空间步长 (m)
x = (-N/2:N/2-1) * dx; % 空间坐标 (m)

% 2. 生成一维Airy光场初始分布
U0 = airy(x / x0) .* exp(a * x / x0);  % Airy函数与衰减项乘积
U0 = U0 / max(abs(U0));                % 归一化(便于可视化)

% 3. 角谱方法传输模拟
figure('Position', [100, 100, 800, 600]);
for i = 1:length(z_list)
    z = z_list(i);
    % 傅里叶变换到频率域
    F_U0 = fftshift(fft(U0));
    % 计算频率坐标
    df = 1 / L;
    kx = (-N/2:N/2-1) * df;
    % 计算传播因子
    kz = sqrt(k0^2 - kx.^2);
    propagation_factor = exp(1i * kz * z);
    % 逆傅里叶变换回空间域
    U_z = ifftshift(F_U0 .* propagation_factor);
    U_z = U_z / max(abs(U_z));  % 归一化
    
    % 可视化
    subplot(2, 2, i);
    plot(x * 1e3, abs(U_z).^2, 'b-', 'LineWidth', 1.5);
    xlabel('x (mm)');
    ylabel('光强 (归一化)');
    title(sprintf('传输距离 z = %d m', z));
    grid on;
    axis tight;
end
sgtitle('一维Airy光场传输特性');

3. 结果分析


四、二维Airy光场传输模拟

1. 参数设置

2. MATLAB代码实现

% 1. 参数设置(同1维,扩展到二维)
lambda = 532e-9;
k0 = 2 * pi / lambda;
x0 = 0.1e-3;
y0 = 0.1e-3;
a = 0.05;
z_list = [0, 1, 2, 4];
N = 512;
L = 1e-3;
dx = L / N;
x = (-N/2:N/2-1) * dx;
y = (-N/2:N/2-1) * dx;
[X, Y] = meshgrid(x, y);  % 二维空间网格

% 2. 生成二维Airy光场初始分布
U0 = airy(X / x0) .* exp(a * X / x0) .* airy(Y / y0) .* exp(a * Y / y0);
U0 = U0 / max(abs(U0));  % 归一化

% 3. 角谱方法传输模拟
figure('Position', [100, 100, 800, 600]);
for i = 1:length(z_list)
    z = z_list(i);
    % 傅里叶变换到频率域
    F_U0 = fftshift(fft2(U0));
    % 计算频率坐标
    df = 1 / L;
    kx = (-N/2:N/2-1) * df;
    ky = (-N/2:N/2-1) * df;
    [Kx, Ky] = meshgrid(kx, ky);
    % 计算传播因子
    Kz = sqrt(k0^2 - Kx.^2 - Ky.^2);
    propagation_factor = exp(1i * Kz * z);
    % 逆傅里叶变换回空间域
    U_z = ifftshift(F_U0 .* propagation_factor);
    U_z = U_z / max(abs(U_z));  % 归一化
    
    % 可视化(二维光强分布)
    subplot(2, 2, i);
    imagesc(x * 1e3, y * 1e3, abs(U_z).^2);
    axis square;
    xlabel('x (mm)');
    ylabel('y (mm)');
    title(sprintf('传输距离 z = %d m', z));
    colorbar;
    colormap('jet');
end
sgtitle('二维Airy光场传输特性');

3. 结果分析


参考代码 一维和二维Airy光场的输出以不同距离的传输模拟 www.youwenfan.com/contentcnq/53608.html

五、问题与优化

1. 衰减因子的选择

2. 采样率与混叠效应

3. 计算效率提升


六、结论

通过角谱方法,本文成功模拟了一维与二维Airy光场在不同传输距离下的输出特性。结果表明:

应用前景:Airy光场的无衍射与自加速特性使其在自由空间光通信(长距离传输)、光学成像(超分辨)、微粒操控(精准定位)等领域具有广泛的应用潜力。未来可通过调制相位(如余切/余弦函数)进一步优化其传输特性,以适应更复杂的应用场景。


附录:MATLAB函数说明

  1. airy(x):MATLAB内置函数,计算Airy函数的值;
  2. fft(x):快速傅里叶变换(一维);
  3. fft2(x):快速傅里叶变换(二维);
  4. fftshift(x):将傅里叶变换的零频分量移至中心;
  5. ifftshift(x):逆fftshift,恢复原始频率顺序。

 

专注于matlab/simulink,电子电路,编程