光纤模式图matlab模拟

光纤模式图matlab模拟

一、原理

对光纤中光的传播理论的研究,可以从麦克斯韦方程的求解出发推导光纤的传播模式本征方程并利用Matlab模拟其模式图。要对光在光纤中的传播特性有详细的理解,必须依靠麦克斯韦方程,结合问题中的边界条件,求解电磁矢量场。

求解的方法一般是:

1、先求出亥姆霍兹方程组以及电磁场纵向分量Ez和Hz的具体形式。

2、把Ez和Hz有具体形式代入麦克斯韦方程以求取其他电磁场横向分量。

3、利用界面上电磁场和切向连续条件,求取模式本征方程。

光纤中传播模式及传输特性都是由它自身的本征方程确定的。在光纤的基本参量n1,n2,a ,k0已知的条件下,U,W仅与传播常数β有关,用所导出的各个区域中电磁场的表达式,再利用电磁场切向分量在纤芯-包层界面上(r=a)连续的条件,就可以救出模式本征方程,也称特征方程。

光纤模式图matlab模拟_第1张图片

 

 

 

 

 

 

各类模式

 

 

根据Jm(u)的振荡特性,对于一特定的m值,本征方程存在着n个根.

当m=0时,若        ,只有磁场纵向分量.

 

 

 

当m=0时,若        ,只有磁场纵向分量.                                                       

 

 

 

 

                                                 

 

当m>0时,混合模式HE模和EH模

 

 

 

其中:                                                           

 

 

 

 

 

二、流程图

    为了分析导波模的传输特性,就需要得知各模式传播常数β随光纤归一化频率V的变化情况.这可通过对本征方程求解而得出,其解可写为:

   式中                                                         

  

    上述方程是超越方程,在截止和远离截止的情况下,可以将它简化成简单的形式求解,得出各种矢量模式的截止频率Vc和远离截止时的u值,从而进行传输特性的分析.而在一般情况下(不局限于截止和远离截止两种状态) ,就需使用计算机对特征方程(7)求数值解.其计算流程图如图1所示.图2分别给出了依照此流程绘制出的TE模、HE11模及EH11模的模式图.

 

                      图1 计算β/ k0-V曲线的程序流程图

 

三、MATLAB程序

TM01/TE01模

hold on

clear

format long

n1=1.468; 

n2=1.447; 

a=5 

k=(a^2)*(n1^2-n2^2); 

u1=(a^2)*(n1^2); 

w1=(a^2)*(n2^2); 

delta1=(n1^2+n2^2)/(2*n1^2); 

delta2=(n1^2-n2^2)/(2*n1^2); 

i=1;

n=n2; 

forV=0:0.01:6 

 k02=V^2/k;     

forBeiTa=n:0.00001:n1         

 nn=n+0.00001 

  U2=u1*k02-(a^2)*k02*(BeiTa^2);        

U=sqrt(U2); 

 W2=(a^2)*k02*(BeiTa^2)-w1*k02;       

 W=sqrt(W2);        

 if(U==0 || W==0)

             break

            %disp('sss')

         else

            z1=     besselj(1,U)/(U*besselj(0,U));

            z2=    besselk(1,W)/(W*besselk(0,W));            

z3=1/(U^2)+delta1*(1/W^2-z2)+sqrt(delta2^2*(1/W^2-z2)^2+(BeiTa/n1)^2*(V/(U*W))^4);

            if(abs(z1+z2)<0.01)

                x(i)=V;

               y(i)=(BeiTa^2-n2^2)/(n1^2-n2^2);

                i=i+1;

                z1;

                z2; 

                 %disp('nnn')

                n=BeiTa;

                 break;

            end

         end

     end

end

 

plot(x,y,'-y'); 

axis([0 6.5 0 1]);

hold on

 

HEn1/EH11

clear

format long

 clear

 n1=1.468

 n2=1.447

 a=5

k=(a^2)*(n1^2-n2^2);

 u1=(a^2)*(n1^2);

 w1=(a^2)*(n2^2); 

delta1=(n1^2+n2^2)/(2*n1^2);

delta2=(n1^2-n2^2)/(2*n1^2);

 i=1;

 n=n2; 

forV=0:0.001:1

     k02=V^2/k;

     k01=sqrt(k02); 

forBeiTa=n:0.00001:n1

        nn=n+0.000001 

        U2=u1*k02-(a^2)*k02*(BeiTa^2);

        U=sqrt(U2) 

        W2=(a^2)*k02*(BeiTa^2)-w1*k02;

         W=sqrt(W2)

         if(U==0 || W==0)

  break

            %disp('sss')

         else

           z1=(besselj(0,U))/(U*besselj(1,U));

            z2=(besselk(0,W))/(W*besselk(1,W));

z3=1/(U^2)+delta1*(1/W^2+z2)+sqrt(delta2^2*(1/W^2+z2)^2+(BeiTa/n1)^2*(V/(U*W))^4);

            if(abs(z1-z3)<0.01)

                 x(i)=V;

                 y(i)=(BeiTa^2-n2^2)/(n1^2-n2^2);

                 i=i+1;

                 z1;

                 z2; 

                %disp('nnn')

                 n=BeiTa;

                 break;

             end

         end

 end

    end

forV=1:0.01:6

     k02=V^2/k;

     k01=sqrt(k02); 

forBeiTa=n:0.00001:n1

         %n 

        U2=u1*k02-(a^2)*k02*(BeiTa^2); 

        U=sqrt(U2); 

        W2=(a^2)*k02*(BeiTa^2)-w1*k02;

         W=sqrt(W2);

         if(U==0 || W==0)

             break;

         else

           z1=(besselj(0,U))/(U*besselj(1,U));

            z2=(besselk(0,W))/(W*besselk(1,W));             

z3=1/(U^2)+delta1*(1/W^2+z2)+sqrt(delta2^2*(1/W^2+z2)^2+(BeiTa/n1)^2*(V/(U*W))^4);

            if(abs(z1-z3)<0.01)

                 x(i)=V; 

               y(i)=(BeiTa^2-n2^2)/(n1^2-n2^2);

           i=i+1; 

                z1;

                 z2; 

                n=BeiTa;

                 break;

             end

         end

     end

    end   

plot(x,y,'-r'); 

axis([0 6.5 0 1]);

 

四、分析

1、

在TE01/TM01模的代码中,只需要修改z1,z2后系数,就能分别仿真出TE01/TM01模。因为在本征方程中,

 

 

它们之间只是相差一个系数。

 

2、在HEn1/EH11模的代码中,修改贝赛尔函数的阶数,就能达到仿真出不同模式的目的。

z1=(besselj(a,U))/(U*besselj(b,U));

z2=(besselk(a,W))/(W*besselk(b,W));

z3=1/(U^2)+delta1*(1/W^2+z2)+sqrt(delta2^2*(1/W^2+z2)^2+(BeiTa/n1)^2*(V/(U*W))^4);

if(abs(z1-z3)<0.01)

 x(i)=V;

 y(i)=(BeiTa^2-n2^2)/(n1^2-n2^2);

a,b是贝赛尔函数的阶数,且b阶的导数是a阶。为得到不同模式的传输特性,只需要修改a,b值,就可以得到不同特性曲线。

3、由于实验数据的取值精度不高,所以实验得出的曲线没有和书本上的完全一样,如果可以提高精度,就能得到更好的实验结果,但会大大延长计算时间。

五、结论

光纤中的传播理论已为人们充分了解,实验直接由麦克斯韦方程组出发,推导出电磁场各个分量,根据光纤芯—包层界面处电磁场的边界条件,在计算机上通过数值求解,得到传播常数及光纤中的场分布模式,并通过matlab仿真出特性曲线,与课本参考图形比较拟合,可以判断结果是正确的。

 

 

 

你可能感兴趣的:(光纤模式图matlab模拟)