根据已知的单模光纤电场z分量分布,可以用MATLAB展示一维的模场分布
具体来说,通过数值计算解出给定光纤(n_1,n_2,a)参数时对应的V参量
通过特征方程解出V对应的W和U
通过这三个参数带入到光场的表达式中解出对应的解
代码如下:
clear
close all
V = [0.8000 1.6000 2.4000];
U = [0.7974 1.3670 1.6453];
W = [0.0640 0.8315 1.7473];Ra1 = -1:0.01:1;
Ra2 = -5:0.01:-1;
Ra3 = 1:0.01:5;E1 = zeros(length(V),length(Ra1))
E2 = zeros(length(V),length(Ra2))
E3 = zeros(length(V),length(Ra3))for i = 1:length(V)E1(i,:) = besselj(0,U(i)*Ra1);E2(i,:) = besselj(0,U(i)).*besselk(0,W(i).*abs(Ra2))./besselk(0,W(i));E3(i,:) = besselj(0,U(i)).*besselk(0,W(i).*abs(Ra3))./besselk(0,W(i));
endR = [Ra2 Ra1 Ra3];
E = [E2 E1 E3];plot(R,E);
xlabel('R_a = r/a')
ylabel('E')
hold on
plot([-1 -1],[0 1],'b--',[1 1],[0 1],'b--');
这里是先用zeros函数生成了特定大小的矩阵,用来存储电场变量
也可以在程序运行时动态生成
结果:
由于图中想要展示的是三条曲线,用来观察V值的大小对于电场分布的影响
所以这里的电场矩阵E(包括E1、E2、E3)都由三行组成,每一行代表一个V值的结果。
两条虚线表示纤芯和包层的分界线。
从图中可以看出,当V值较小时,相当大的能量都在包层中,我们是不希望这样的情况产生的。
因此,要求光纤的V值较大。
当V值较大时,电场强度在光纤包层中按指数衰减。
参考:《高等光学仿真——光波导、激光》