计算脉冲在非线性耦合器中演化的Matlab 程序 MO#%w ~*B1}#; % This Matlab script file solves the coupled nonlinear Schrodinger equations of
EmY4>lr % soliton in 2 cores coupler. The output pulse evolution plot is shown in Fig.1 of
|x< % Youfa Wang and Wenfeng Wang, “A simple and effective numerical method for nonlinear
2
yP#:T/z % pulse propagation in N-core optical couplers”, IEEE Photonics Technology lett. Vol.16, No.4, pp1077-1079, 2004
)X^nzhZ2O" Gs?W7}<$ %fid=fopen('e21.dat','w');
(rwbF N = 128; % Number of Fourier modes (Time domain sampling points)
g'Xl>q M1 =3000; % Total number of space steps
nLtP^
1~9H J =100; % Steps between output of space
;*Z
w}51 T =10; % length of time windows:T*T0
syZ-xE]} T0=0.1; % input pulse width
Y,(eu*Za MN1=0; % initial value for the space output location
{J0^S dt = T/N; % time step
ZTmdS n = [-N/2:1:N/2-1]'; % Index
Uero!+_ t = n.*dt;
iD(K*[;lc u10=1.*sech(1*t); % input to waveguide1 amplitude: power=u10*u10
s\jLIrG8 u20=u10.*0.0; % input to waveguide 2
4UL-j u1=u10; u2=u20;
II<<-Y6 U1 = u1;
5e2mEQU> U2 = u2; % Compute initial condition; save it in U
`z=MI66Nl ww = 4*n.*n*pi*pi/T/T; % Square of frequency. Note i^2=-1.
D9LwYftZ w=2*pi*n./T;
XPEjMm'*b3 g=-i*ww./2; % w=2*pi*f*n./N, f=1/dt=N/T,so w=2*pi*n./T
p-7dJ L=4; % length of evoluation to compare with S. Trillo's paper
lHGv:TN dz=L/M1; % space step, make sure nonlinear<0.05
s{q2C}=$?D for m1 = 1:1:M1 % Start space evolution
kcYR:;y u1 = exp(dz*i*(abs(u1).*abs(u1))).*u1; % 1st sSolve nonlinear part of NLS
g{J3Ba u2 = exp(dz*i*(abs(u2).*abs(u2))).*u2;
8Peqm?{5Y5 ca1 = fftshift(fft(u1)); % Take Fourier transform
}dXL= ul ca2 = fftshift(fft(u2));
ttw@nv%
@ c2=exp(g.*dz).*(ca2+i*1*ca1.*dz); % approximation
|;_
yAL c1=exp(g.*dz).*(ca1+i*1*ca2.*dz); % frequency domain phase shift
by06!-P0[ u2 = ifft(fftshift(c2)); % Return to physical space
9xKFX|*$ u1 = ifft(fftshift(c1));
-xcz+pHQ if rem(m1,J) == 0 % Save output every J steps.
,5\n%J: U1 = [U1 u1]; % put solutions in U array
+'Ge?(E4_ U2=[U2 u2];
7]v-2
* MN1=[MN1 m1];
nK|"; z1=dz*MN1'; % output location
!c&^b@
yw end
3Q ]MT end
~*[}O)7# hg=abs(U1').*abs(U1'); % for data write to excel
uo{QF5z] ha=[z1 hg]; % for data write to excel
OKU P t1=[0 t'];
w}1)am&pD hh=[t1' ha']; % for data write to excel file
'RA[_Z %dlmwrite('aa',hh,'\t'); % save data in the excel format
Qxvz}r.l] figure(1)
JIQzP?+? waterfall(t',z1',abs(U1').*abs(U1')) % t' is 1xn, z' is 1xm, and U1' is mxn
[)Ge^yI7 figure(2)
vn_avYwiy waterfall(t',z1',abs(U2').*abs(U2')) % t' is 1xn, z' is 1xm, and U1' is mxn
an7N<-? YG8oy!Zl 非线性超快脉冲耦合的数值方法的Matlab程序 wd]Yjr#%Ii evs2dz<eA 在研究脉冲在非线性耦合器中的演变时,我们需要求解非线性偏微分方程组。在如下的
论文中,我们提出了一种简洁的数值方法。 这里我们提供给大家用Matlab编写的计算程序。
=['ijD4TW 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
cnc$^[c B 3h<K} dg!sRm1iZ: |s^ar8)=) % This Matlab script file solves the nonlinear Schrodinger equations
Yx%%+c?. % for 3 cores nonlinear coupler. The output plot is shown in Fig.2 of
wTW"1M % Youfa Wang and Wenfeng Wang, “A simple and effective numerical method for nonlinear
7/1S5yUr| % pulse propagation in N-core optical couplers”, IEEE Photonics Technology lett. Vol.16, No.4, pp1077-1079, 2004
m88~+o<G% f65Sr"qB3 C=1;
'I~dJEW7 M1=120, % integer for amplitude
H xlw1(zS M3=5000; % integer for length of coupler
9C.cz\E N = 512; % Number of Fourier modes (Time domain sampling points)
f
LW>-O73 dz =3.14159/(sqrt(2.)*C)/M3; % length of coupler is divided into M3 segments, make sure nonlinearity<0.05.
@bx2= T =40; % length of time:T*T0.
7h<K)aT dt = T/N; % time step
!+6l.`2WI n = [-N/2:1:N/2-1]'; % Index
1=X=jPwO C t = n.*dt;
.3&m:P8zV ww = 4*n.*n*pi*pi/T/T; % Square of frequency. Note i^2=-1.
,*4"d._Y w=2*pi*n./T;
:1=?/8h g1=-i*ww./2;
st2>e1vg g2=-i*ww./2; % w=2*pi*f*n./N, f=1/dt=N/T,so w=2*pi*n./TP=0;
\\qg2yI g3=-i*ww./2;
Dk-L4FS P1=0;
kT1lOP-Bg P2=0;
}B-A*TI<h P3=1;
}rE|\p> P=0;
H6O\U2+ for m1=1:M1
vy#(|[pL{ p=0.032*m1; %input amplitude
fz&}N`n s10=p.*sech(p.*t); %input soliton pulse in waveguide 1
O>GP>U?] s1=s10;
%)D7Dr s20=0.*s10; %input in waveguide 2
r Lh
h s30=0.*s10; %input in waveguide 3
$T4PC5. s2=s20;
w(j9[ s3=s30;
zT% kx:Fk p10=dt*(sum(abs(s10').*abs(s10'))-0.5*(abs(s10(N,1)*s10(N,1))+abs(s10(1,1)*s10(1,1))));
Kv]6 b2HT %energy in waveguide 1
*LRGfk+h p20=dt*(sum(abs(s20').*abs(s20'))-0.5*(abs(s20(N,1)*s20(N,1))+abs(s20(1,1)*s20(1,1))));
q T].,? %energy in waveguide 2
D'h2 DP! p30=dt*(sum(abs(s30').*abs(s30'))-0.5*(abs(s30(N,1)*s30(N,1))+abs(s30(1,1)*s30(1,1))));
*K(xES!b %energy in waveguide 3
[UH5D~Yx for m3 = 1:1:M3 % Start space evolution
Em,!=v(* s1 = exp(dz*i*(abs(s1).*abs(s1))).*s1; % 1st step, Solve nonlinear part of NLS
~30Wb9eL s2 = exp(dz*i*(abs(s2).*abs(s2))).*s2;
WI6E3,ejB1 s3 = exp(dz*i*(abs(s3).*abs(s3))).*s3;
t}7wRTG sca1 = fftshift(fft(s1)); % Take Fourier transform
rieQ&Jt" sca2 = fftshift(fft(s2));
eFQi
K6`i sca3 = fftshift(fft(s3));
uFm-HR@4 sc1=exp(g1.*dz).*(sca1+i*C*sca2.*dz); % 2nd step, frequency domain phase shift
76b7-Nj" sc2=exp(g2.*dz).*(sca2+i*C*(sca1+sca3).*dz);
pqSE|3*l sc3=exp(g3.*dz).*(sca3+i*C*sca2.*dz);
dx}/#jMa s3 = ifft(fftshift(sc3));
u-_$?'l;~ s2 = ifft(fftshift(sc2)); % Return to physical space
xgz87d/<: s1 = ifft(fftshift(sc1));
r!^\Q7 end
b-?o?}* p1=dt*(sum(abs(s1').*abs(s1'))-0.5*(abs(s1(N,1)*s1(N,1))+abs(s1(1,1)*s1(1,1))));
w8
$Qh%J'< p2=dt*(sum(abs(s2').*abs(s2'))-0.5*(abs(s2(N,1)*s2(N,1))+abs(s2(1,1)*s2(1,1))));
%SGO"*_ p3=dt*(sum(abs(s3').*abs(s3'))-0.5*(abs(s3(N,1)*s3(N,1))+abs(s3(1,1)*s3(1,1))));
<.b$
gX P1=[P1 p1/p10];
v8Zgog)V P2=[P2 p2/p10];
aA`q!s.%A P3=[P3 p3/p10];
hD1AK+y P=[P p*p];
i =N\[& end
[bG>qe1}& figure(1)
4E>(Y98 plot(P,P1, P,P2, P,P3);
>U<nEnB$? 4C%>/*%8> 转自:
http://blog.163.com/opto_wang/