基模(LP01)在光纤中传输时,其有效折射率随着输入光波长的不同而变化,编写了一个MATLAB程序,用来计算基模有效折射率随输入光波长的变化关系,并画图。

%==========================================================================
%Name: LP01_beta_lamda.m
%Desc: 计算光纤基模有效折射率随波长的变化,基模特征方程参考吴重庆《光波导理论》
%求解思路:根据设定的波长,计算归一化频率V,把W用V和U表示出来,代入到特征方程,
%使用fzero函数,求解满足特征方程的U值,根据U和有效折射率的关系,计算出有效折射率。
%Parameter:
%Return:
%Author: yoyoba(stuyou@126.com)
%Date: 2012-5-30
%Modify: 2012-5-30
%==========================================================================
clear;
close all;
lamda=1500e-9:1e-9:1600e-9; %波长从1500nm到1600nm
a=4.1e-6; %纤芯半径4.1微米
nco=1.44902; %纤芯折射率
dn=0.005; %纤芯和包层折射率差
ncl=nco-dn; %包层折射率
N=length(lamda);

for j=1:N;
    V(j)=2*pi*sqrt(nco^2-ncl^2)*a/lamda(j); %计算归一化频率
    Vtemp=V(j);
    Utemp=NaN;
    i=0;
 
    while(isnan(Utemp)&&i<N+1)
        init=Vtemp*(i+1)/N-eps;
% try
        Utemp=fzero(@(Utemp) besselj(0,Utemp)/(Utemp*besselj(1,Utemp))...
            -besselk(0,sqrt(Vtemp^2-Utemp^2))/...
            (sqrt(Vtemp^2-Utemp^2)*besselk(1,sqrt(Vtemp^2-Utemp^2))),init);
        %使用fzero函数,对基模特征方程求解,计算U
% catch
% end
        i=i+1;
    end
    Beff(j)=sqrt(nco^2-(Utemp*lamda(j)/(2*pi*a))^2); %通过U,计算特定波长的有效折射率
end
plot(lamda*1e+9,Beff);
xlabel('Wavelength(nm)');
ylabel('Effective Refractive Index');

有效折射率随输入光波长的变化曲线,近似线性

基模特征方程如下:

其中J( )、K( )分别为第一类Bessel函数和修正的第二类Bessel函数,V是归一化频率,U和W是归一化横向参数。

下载源码