切换到宽版
  • 广告投放
  • 稿件投递
  • 繁體中文
    • 8960阅读
    • 1回复

    [分享]求解光孤子或超短脉冲耦合方程的Matlab程序 [复制链接]

    上一主题 下一主题
    离线tianmen
     
    发帖
    58
    光币
    15
    光券
    0
    只看楼主 倒序阅读 楼主  发表于: 2011-06-12
    计算脉冲在非线性耦合器中演化的Matlab 程序 SW HiiF@  
    W=,]#Z+M;  
    %  This Matlab script file solves the coupled nonlinear Schrodinger equations of v,US4C|^3i  
    %  soliton in 2 cores coupler. The output pulse evolution plot is shown in Fig.1 of 0iz\<' p  
    %  Youfa Wang and Wenfeng Wang, “A simple and effective numerical method for nonlinear q-e3;$  
    %   pulse propagation in N-core optical couplers”, IEEE Photonics Technology lett. Vol.16, No.4, pp1077-1079, 2004 cQ0+kX<  
    0 Gq<APtr  
    %fid=fopen('e21.dat','w'); Tb] h<S  
    N = 128;                       % Number of Fourier modes (Time domain sampling points) %B| Ca&  
    M1 =3000;              % Total number of space steps YCyh+%Q(  
    J =100;                % Steps between output of space VxU{ZD~<Z"  
    T =10;                  % length of time windows:T*T0 +V#dJ[,8;.  
    T0=0.1;                 % input pulse width |s!n7%|,7  
    MN1=0;                 % initial value for the space output location 5[^Rf'wy  
    dt = T/N;                      % time step ZPHatC  
    n = [-N/2:1:N/2-1]';           % Index \r &(l1R  
    t = n.*dt;   [Fr <tKtB  
    u10=1.*sech(1*t);              % input to waveguide1 amplitude: power=u10*u10 qc6d,z/  
    u20=u10.*0.0;                  % input to waveguide 2 ^5-SL?E  
    u1=u10; u2=u20;                 sT91>'&  
    U1 = u1;   x0xQFlGk  
    U2 = u2;                       % Compute initial condition; save it in U V j[,o Vt$  
    ww = 4*n.*n*pi*pi/T/T;         % Square of frequency. Note i^2=-1. A.<M*[{q  
    w=2*pi*n./T; 5"Y:^_8  
    g=-i*ww./2;                    % w=2*pi*f*n./N, f=1/dt=N/T,so w=2*pi*n./T 0'R}'  
    L=4;                           % length of evoluation to compare with S. Trillo's paper YRj"]= 5N  
    dz=L/M1;                       % space step, make sure nonlinear<0.05 P_M!h~  
    for m1 = 1:1:M1                                    % Start space evolution ) =|8%IrB  
       u1 = exp(dz*i*(abs(u1).*abs(u1))).*u1;          % 1st sSolve nonlinear part of NLS @%6"xnb `  
       u2 = exp(dz*i*(abs(u2).*abs(u2))).*u2; vGp`P  
       ca1 = fftshift(fft(u1));                        % Take Fourier transform nB%[\LtZ?  
       ca2 = fftshift(fft(u2)); $u,`bX  
       c2=exp(g.*dz).*(ca2+i*1*ca1.*dz);               % approximation Lx3`.F\mG  
       c1=exp(g.*dz).*(ca1+i*1*ca2.*dz);               % frequency domain phase shift   7#9fcfL  
       u2 = ifft(fftshift(c2));                        % Return to physical space '^.3}N{Fo  
       u1 = ifft(fftshift(c1)); "GAKi}y">v  
    if rem(m1,J) == 0                                 % Save output every J steps. g<i>252>  
        U1 = [U1 u1];                                  % put solutions in U array i6E~]&~.v  
        U2=[U2 u2]; 1xU)nXXb  
        MN1=[MN1 m1]; 4o( Q+6m  
        z1=dz*MN1';                                    % output location x|3G}[=  
      end $XrX(l5  
    end B)Dsen  
    hg=abs(U1').*abs(U1');                             % for data write to excel A)kdY!}  
    ha=[z1 hg];                                        % for data write to excel Kp/l2?J"  
    t1=[0 t']; {z8wFL\  
    hh=[t1' ha'];                                      % for data write to excel file fyv S1_  
    %dlmwrite('aa',hh,'\t');                           % save data in the excel format SdJkno  
    figure(1) IVG77+O# }  
    waterfall(t',z1',abs(U1').*abs(U1'))               % t' is 1xn, z' is 1xm, and U1' is mxn D*)"?L G  
    figure(2) ,f[Oy:fr  
    waterfall(t',z1',abs(U2').*abs(U2'))               % t' is 1xn, z' is 1xm, and U1' is mxn @G=_nZxv  
    iM{cr&0  
    非线性超快脉冲耦合的数值方法的Matlab程序 -M`+hVs?  
    5K$d4KT  
    在研究脉冲在非线性耦合器中的演变时,我们需要求解非线性偏微分方程组。在如下的论文中,我们提出了一种简洁的数值方法。 这里我们提供给大家用Matlab编写的计算程序。   BU%gXr4Ra  
    Youfa Wang and Wenfeng Wang, “A simple and effective numerical method for nonlinear pulse propagation in N-core optical couplers”, IEEE Photonics Technology lett. Vol.16, No.4, pp1077-1079, 2004 .Kk'N  
    7T=:dv  
    *GM.2``e  
     C0j`H(  
    %  This Matlab script file solves the nonlinear Schrodinger equations wUmcA~3D  
    %  for 3 cores nonlinear coupler. The output plot is shown in Fig.2 of n*N`].r#{=  
    %  Youfa Wang and Wenfeng Wang, “A simple and effective numerical method for nonlinear CSMx]jbb  
    %  pulse propagation in N-core optical couplers”, IEEE Photonics Technology lett. Vol.16, No.4, pp1077-1079, 2004 \2)~dV:6+  
    _Ns_$_  
    C=1;                           AJt4I W@  
    M1=120,                       % integer for amplitude ks<+gL{K|i  
    M3=5000;                      % integer for length of coupler l`*R !\  
    N = 512;                      % Number of Fourier modes (Time domain sampling points) 7]8apei|  
    dz =3.14159/(sqrt(2.)*C)/M3;  % length of coupler is divided into M3 segments,  make sure nonlinearity<0.05. Br"K{g?  
    T =40;                        % length of time:T*T0. Bet?]4\_  
    dt = T/N;                     % time step wmFS+F4`2  
    n = [-N/2:1:N/2-1]';          % Index /3 d6Og  
    t = n.*dt;   S{qsq\X  
    ww = 4*n.*n*pi*pi/T/T;        % Square of frequency. Note i^2=-1. 9 H~OC8R:  
    w=2*pi*n./T; `qj24ehc  
    g1=-i*ww./2; fMRMQR=6B  
    g2=-i*ww./2;                  % w=2*pi*f*n./N, f=1/dt=N/T,so w=2*pi*n./TP=0; mvGj !'  
    g3=-i*ww./2; 4G=KyRKh  
    P1=0; 'V:ah3 8  
    P2=0; )dI  `yf  
    P3=1; XE : JL_  
    P=0; hdxq@%Vs  
    for m1=1:M1                  x5W. 3*  
    p=0.032*m1;                %input amplitude o$,e#q)8  
    s10=p.*sech(p.*t);         %input soliton pulse in waveguide 1 Uj> bWa`  
    s1=s10; KoTQc0b!  
    s20=0.*s10;                %input in waveguide 2 }%k 3  
    s30=0.*s10;                %input in waveguide 3 }e&Z"H |  
    s2=s20; hx sW9  
    s3=s30; + Scw;gO  
    p10=dt*(sum(abs(s10').*abs(s10'))-0.5*(abs(s10(N,1)*s10(N,1))+abs(s10(1,1)*s10(1,1))));   R}\n @X*  
    %energy in waveguide 1 EB[B0e 7}  
    p20=dt*(sum(abs(s20').*abs(s20'))-0.5*(abs(s20(N,1)*s20(N,1))+abs(s20(1,1)*s20(1,1))));   _9"%;:t  
    %energy in waveguide 2 6?KJ"Ai9  
    p30=dt*(sum(abs(s30').*abs(s30'))-0.5*(abs(s30(N,1)*s30(N,1))+abs(s30(1,1)*s30(1,1))));   TllIs&MCe  
    %energy in waveguide 3 " IC0v9  
    for m3 = 1:1:M3                                    % Start space evolution _.3O(?p,  
       s1 = exp(dz*i*(abs(s1).*abs(s1))).*s1;          % 1st step, Solve nonlinear part of NLS hdx"/.s  
       s2 = exp(dz*i*(abs(s2).*abs(s2))).*s2; mdukl!_x  
       s3 = exp(dz*i*(abs(s3).*abs(s3))).*s3; w:o,mzuXK  
       sca1 = fftshift(fft(s1));                       % Take Fourier transform 2<Q3-|/i  
       sca2 = fftshift(fft(s2)); i 9wk)  
       sca3 = fftshift(fft(s3)); _tpqo>  
       sc1=exp(g1.*dz).*(sca1+i*C*sca2.*dz);           % 2nd step, frequency domain phase shift   @wOX</_g  
       sc2=exp(g2.*dz).*(sca2+i*C*(sca1+sca3).*dz); h$q=NTV  
       sc3=exp(g3.*dz).*(sca3+i*C*sca2.*dz); +(J{~A~  
       s3 = ifft(fftshift(sc3)); i?CXDuL  
       s2 = ifft(fftshift(sc2));                       % Return to physical space ~> |o3&G{  
       s1 = ifft(fftshift(sc1)); wdTjJf r  
    end Cw&U*H  
       p1=dt*(sum(abs(s1').*abs(s1'))-0.5*(abs(s1(N,1)*s1(N,1))+abs(s1(1,1)*s1(1,1)))); ma(E}s  
       p2=dt*(sum(abs(s2').*abs(s2'))-0.5*(abs(s2(N,1)*s2(N,1))+abs(s2(1,1)*s2(1,1)))); R(N5K4J  
       p3=dt*(sum(abs(s3').*abs(s3'))-0.5*(abs(s3(N,1)*s3(N,1))+abs(s3(1,1)*s3(1,1)))); {/SLDyf%Z  
       P1=[P1 p1/p10]; w&^_2<a2  
       P2=[P2 p2/p10]; P+[\9Gg  
       P3=[P3 p3/p10]; hQ}B?'>  
       P=[P p*p]; JO"-"&>  
    end UqaV9  
    figure(1) eU.HS78  
    plot(P,P1, P,P2, P,P3); T_b$8GYfCY  
    AH#klYK  
    转自:http://blog.163.com/opto_wang/
     
    分享到
    离线ciomplj
    发帖
    319
    光币
    1
    光券
    0
    只看该作者 1楼 发表于: 2014-06-22
    谢谢哈~!~