MATLAB 代码:锥形光纤纤芯周围的功率分布轮廓
以下是 MATLAB 代码,其中使用了光学仿真工具箱中的模拟功能。
% 定义参数
n_core = 1.45; % 纤芯折射率
n_clad = 1; % 包层折射率
d_core = 400e-9; % 纤芯直径
lambda = 633e-9; % 入射光波长
% 计算 NA 和 V 数值
NA = sqrt(n_core^2 - n_clad^2);
V = 2 * pi * NA * d_core / lambda;
% 定义仿真区域
xmin = -d_core / 2;
xmax = d_core / 2;
ymin = -d_core / 2;
ymax = d_core / 2;
zmin = 0;
zmax = d_core * 10;
% 定义网格尺寸
dx = d_core / 20;
dy = d_core / 20;
dz = d_core / 20;
% 创建仿真区域
[x, y, z] = meshgrid(xmin:dx:xmax, ymin:dy:ymax, zmin:dz:zmax);
r = sqrt(x.^2 + y.^2);
% 计算模式场分布
if V <= 2.405
% 单模
w = d_core / (2 * sqrt(2 * log(2)) * NA);
E = sqrt(2 / (pi * w^2)) * exp(-(r / w).^2 - (z * pi * NA / lambda).^2);
else
% 多模
w = d_core / (2 * sqrt(V^2 - 2.405^2));
E = sqrt(2 / (pi * w^2)) * exp(-(r / w).^2) .* besselj(0, 2.405 * r / (w * sqrt(1 - (2.405 / V)^2))) .* exp(-(z * pi * NA / lambda).^2);
end
% 绘制功率分布轮廓
figure;
slice(x, y, z, abs(E).^2, [0, d_core/2, d_core], [], []);
axis equal;
xlabel('x');
ylabel('y');
zlabel('z');
title(['Mode Field at ', num2str(lambda*1e9), ' nm']);
colorbar;
运行代码后,将生成一个三维图形,显示锥形光纤纤芯周围的功率分布轮廓。图形中的颜色越亮,表示光强度越大。可以通过旋转和缩放图形来查看不同的角度和细节。
原文地址: https://www.cveoy.top/t/topic/nw8n 著作权归作者所有。请勿转载和采集!