计算脉冲在非线性耦合器中演化的Matlab 程序 N1LR _vS" 7t@jj%F % This Matlab script file solves the coupled nonlinear Schrodinger equations of
Fi7pq2 % soliton in 2 cores coupler. The output pulse evolution plot is shown in Fig.1 of
c?q#?K
aF % Youfa Wang and Wenfeng Wang, “A simple and effective numerical method for nonlinear
1-w1k^e % pulse propagation in N-core optical couplers”, IEEE Photonics Technology lett. Vol.16, No.4, pp1077-1079, 2004
!m_'<=)B4~
3D<P
[.bS %fid=fopen('e21.dat','w');
YnJ=&21 N = 128; % Number of Fourier modes (Time domain sampling points)
!vImmhI!I M1 =3000; % Total number of space steps
W!IK>IW" J =100; % Steps between output of space
'J!P:.=a> T =10; % length of time windows:T*T0
v`wPdb T0=0.1; % input pulse width
IDLA-Vxo MN1=0; % initial value for the space output location
/x$ jd)C dt = T/N; % time step
HO' ELiZ_q n = [-N/2:1:N/2-1]'; % Index
v+Mt/8 t = n.*dt;
+pf 7 u10=1.*sech(1*t); % input to waveguide1 amplitude: power=u10*u10
{tWfLfzU u20=u10.*0.0; % input to waveguide 2
w'L;`k;Q u1=u10; u2=u20;
$#KSvo{otI U1 = u1;
h!d#=.R U2 = u2; % Compute initial condition; save it in U
YJ3970c/M ww = 4*n.*n*pi*pi/T/T; % Square of frequency. Note i^2=-1.
uidE/7 w=2*pi*n./T;
^~(bm$4r g=-i*ww./2; % w=2*pi*f*n./N, f=1/dt=N/T,so w=2*pi*n./T
S;|%'Sn|j9 L=4; % length of evoluation to compare with S. Trillo's paper
!>>$'.nb@~ dz=L/M1; % space step, make sure nonlinear<0.05
Oh8;YE-% for m1 = 1:1:M1 % Start space evolution
#lJF$ u1 = exp(dz*i*(abs(u1).*abs(u1))).*u1; % 1st sSolve nonlinear part of NLS
[=V8 u2 = exp(dz*i*(abs(u2).*abs(u2))).*u2;
xss D2*l ca1 = fftshift(fft(u1)); % Take Fourier transform
Xc
Pn ca2 = fftshift(fft(u2));
dX+DE(y c2=exp(g.*dz).*(ca2+i*1*ca1.*dz); % approximation
N18Zsdrp c1=exp(g.*dz).*(ca1+i*1*ca2.*dz); % frequency domain phase shift
C}+(L3Z u2 = ifft(fftshift(c2)); % Return to physical space
jq}5(*k u1 = ifft(fftshift(c1));
`0.5aa if rem(m1,J) == 0 % Save output every J steps.
A;2?!i#f U1 = [U1 u1]; % put solutions in U array
}]g>PY U2=[U2 u2];
}r,k*I'K MN1=[MN1 m1];
{BKI8vy z1=dz*MN1'; % output location
%kVpW&
~ end
JY>]u*= end
\J1Jn~ hg=abs(U1').*abs(U1'); % for data write to excel
OM,uR3, ha=[z1 hg]; % for data write to excel
M%$zor t1=[0 t'];
:k(aH Ua hh=[t1' ha']; % for data write to excel file
%PkJ7-/b|^ %dlmwrite('aa',hh,'\t'); % save data in the excel format
cT.1oaAM0 figure(1)
-.z~u/uL waterfall(t',z1',abs(U1').*abs(U1')) % t' is 1xn, z' is 1xm, and U1' is mxn
yq;gBIiZ figure(2)
0eUsvzz15 waterfall(t',z1',abs(U2').*abs(U2')) % t' is 1xn, z' is 1xm, and U1' is mxn
;PLby]=O n*_FC 非线性超快脉冲耦合的数值方法的Matlab程序 ~~yo& ] >L=l{F6
p 在研究脉冲在非线性耦合器中的演变时,我们需要求解非线性偏微分方程组。在如下的
论文中,我们提出了一种简洁的数值方法。 这里我们提供给大家用Matlab编写的计算程序。
!FO||z(vb 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
F;MFw2G JsiJ=zo< FQ O6w' N$_Rzh"9rr % This Matlab script file solves the nonlinear Schrodinger equations
x:?1fvVR % for 3 cores nonlinear coupler. The output plot is shown in Fig.2 of
,T1t` % Youfa Wang and Wenfeng Wang, “A simple and effective numerical method for nonlinear
O<o_MZN % pulse propagation in N-core optical couplers”, IEEE Photonics Technology lett. Vol.16, No.4, pp1077-1079, 2004
wcV~z:&^5 1[B?nk C=1;
*K0CUir| M1=120, % integer for amplitude
WH'[~O M3=5000; % integer for length of coupler
$Cf_RFH0 N = 512; % Number of Fourier modes (Time domain sampling points)
^iTjr$hQ; dz =3.14159/(sqrt(2.)*C)/M3; % length of coupler is divided into M3 segments, make sure nonlinearity<0.05.
e'7!aysj T =40; % length of time:T*T0.
x2K.5q> dt = T/N; % time step
JO1c9NyKr n = [-N/2:1:N/2-1]'; % Index
gbKms;: t = n.*dt;
QEtZ]p1H@ ww = 4*n.*n*pi*pi/T/T; % Square of frequency. Note i^2=-1.
-
d>)
w=2*pi*n./T;
Ym!Ia&n g1=-i*ww./2;
]A!Gr(FHQ g2=-i*ww./2; % w=2*pi*f*n./N, f=1/dt=N/T,so w=2*pi*n./TP=0;
*a+~bX)18 g3=-i*ww./2;
<EpP; P1=0;
SDJAk&Z}R P2=0;
!@ bN P3=1;
^WM)UZEBC P=0;
L! Q&?xP for m1=1:M1
+KD~/}C%- p=0.032*m1; %input amplitude
LI(Wu6*Y s10=p.*sech(p.*t); %input soliton pulse in waveguide 1
v\f 41M7D s1=s10;
sFB; /*C s20=0.*s10; %input in waveguide 2
l} h<2 s30=0.*s10; %input in waveguide 3
6K*7%8Y/G s2=s20;
#msk'MVt s3=s30;
&a-:ZA@ p10=dt*(sum(abs(s10').*abs(s10'))-0.5*(abs(s10(N,1)*s10(N,1))+abs(s10(1,1)*s10(1,1))));
Y_f6y9?ZE %energy in waveguide 1
g!aM-B^C p20=dt*(sum(abs(s20').*abs(s20'))-0.5*(abs(s20(N,1)*s20(N,1))+abs(s20(1,1)*s20(1,1))));
,D~C40f %energy in waveguide 2
})ss. p30=dt*(sum(abs(s30').*abs(s30'))-0.5*(abs(s30(N,1)*s30(N,1))+abs(s30(1,1)*s30(1,1))));
AA yzT*^ %energy in waveguide 3
| F:? for m3 = 1:1:M3 % Start space evolution
Xt9?7J#\T s1 = exp(dz*i*(abs(s1).*abs(s1))).*s1; % 1st step, Solve nonlinear part of NLS
eK3J9;X s2 = exp(dz*i*(abs(s2).*abs(s2))).*s2;
hv7!x=?8 s3 = exp(dz*i*(abs(s3).*abs(s3))).*s3;
3LX<&."z sca1 = fftshift(fft(s1)); % Take Fourier transform
SOeL@!_ sca2 = fftshift(fft(s2));
wCc:HfmjJ sca3 = fftshift(fft(s3));
o),i2 sc1=exp(g1.*dz).*(sca1+i*C*sca2.*dz); % 2nd step, frequency domain phase shift
~@L$}Eu sc2=exp(g2.*dz).*(sca2+i*C*(sca1+sca3).*dz);
j1<@*W&b sc3=exp(g3.*dz).*(sca3+i*C*sca2.*dz);
m", $M> s3 = ifft(fftshift(sc3));
e
0!a
&w s2 = ifft(fftshift(sc2)); % Return to physical space
o-7>^wV%BD s1 = ifft(fftshift(sc1));
P1H`NOC end
{P-KU RQ p1=dt*(sum(abs(s1').*abs(s1'))-0.5*(abs(s1(N,1)*s1(N,1))+abs(s1(1,1)*s1(1,1))));
-zMXc"'C^k p2=dt*(sum(abs(s2').*abs(s2'))-0.5*(abs(s2(N,1)*s2(N,1))+abs(s2(1,1)*s2(1,1))));
H}JH339 p3=dt*(sum(abs(s3').*abs(s3'))-0.5*(abs(s3(N,1)*s3(N,1))+abs(s3(1,1)*s3(1,1))));
/koNcpJ P1=[P1 p1/p10];
#p*OLQ3~ P2=[P2 p2/p10];
'{U56^b] P3=[P3 p3/p10];
j3z&0sc2(0 P=[P p*p];
2{**bArV end
r"J1C figure(1)
fl+
[(x< plot(P,P1, P,P2, P,P3);
rN}{v}n F]SexP4:A 转自:
http://blog.163.com/opto_wang/