计算脉冲在非线性耦合器中演化的Matlab 程序 b_88o-*/
F@Bh>Vb
% This Matlab script file solves the coupled nonlinear Schrodinger equations of TTjj.fq6
% soliton in 2 cores coupler. The output pulse evolution plot is shown in Fig.1 of J/(3:
a>
% Youfa Wang and Wenfeng Wang, “A simple and effective numerical method for nonlinear :UjHP}s
% pulse propagation in N-core optical couplers”, IEEE Photonics Technology lett. Vol.16, No.4, pp1077-1079, 2004 vUa~PN+Iy
`q Sfo`
%fid=fopen('e21.dat','w'); sW%U3,j
N = 128; % Number of Fourier modes (Time domain sampling points) [\N,ow,n
M1 =3000; % Total number of space steps 1_vaSEov
J =100; % Steps between output of space #"|Y"#@k
T =10; % length of time windows:T*T0 (1e;7sNG@
T0=0.1; % input pulse width 5=CLR
MN1=0; % initial value for the space output location a&YD4DQ05
dt = T/N; % time step NJ8QI(^"
n = [-N/2:1:N/2-1]'; % Index dtJaQ`
t = n.*dt; w-Zb($_
u10=1.*sech(1*t); % input to waveguide1 amplitude: power=u10*u10 4xLU15C
u20=u10.*0.0; % input to waveguide 2 9k.LV/Y
u1=u10; u2=u20; ?8wFT!J
U1 = u1; e*gCc7zz
U2 = u2; % Compute initial condition; save it in U e9r#r~Qq|
ww = 4*n.*n*pi*pi/T/T; % Square of frequency. Note i^2=-1. _%Q\G,a;
w=2*pi*n./T; rtcY(5Q
g=-i*ww./2; % w=2*pi*f*n./N, f=1/dt=N/T,so w=2*pi*n./T .v[8ie
L=4; % length of evoluation to compare with S. Trillo's paper [sG=(~BU
dz=L/M1; % space step, make sure nonlinear<0.05 8.D$J
for m1 = 1:1:M1 % Start space evolution @
?y(\>
u1 = exp(dz*i*(abs(u1).*abs(u1))).*u1; % 1st sSolve nonlinear part of NLS 31mY]Jve"
u2 = exp(dz*i*(abs(u2).*abs(u2))).*u2; T1m097
ca1 = fftshift(fft(u1)); % Take Fourier transform L+Q"z*W
ca2 = fftshift(fft(u2)); jYKs| J)[
c2=exp(g.*dz).*(ca2+i*1*ca1.*dz); % approximation btb-MSkO
c1=exp(g.*dz).*(ca1+i*1*ca2.*dz); % frequency domain phase shift C`OdMM>D
u2 = ifft(fftshift(c2)); % Return to physical space JBQ,rX_Hw
u1 = ifft(fftshift(c1)); i}Ea>bi{N
if rem(m1,J) == 0 % Save output every J steps. ]dk44,EL
U1 = [U1 u1]; % put solutions in U array 2GECcx53
U2=[U2 u2]; _QCspPT' c
MN1=[MN1 m1]; Q%4>okj,
z1=dz*MN1'; % output location $oK,&_
end }8 A]
end 7]a6dMh
hg=abs(U1').*abs(U1'); % for data write to excel '3=[xVnv
ha=[z1 hg]; % for data write to excel (PU0\bGA
t1=[0 t']; z<_{m4I;
hh=[t1' ha']; % for data write to excel file 'LIJpk3J
%dlmwrite('aa',hh,'\t'); % save data in the excel format `.nkC_d
figure(1) s9)
@$3\
waterfall(t',z1',abs(U1').*abs(U1')) % t' is 1xn, z' is 1xm, and U1' is mxn [>#?C*s
figure(2) ' U {?"FP
waterfall(t',z1',abs(U2').*abs(U2')) % t' is 1xn, z' is 1xm, and U1' is mxn B&|F9Z6D
k{Yj!C>
#
非线性超快脉冲耦合的数值方法的Matlab程序 k<ds7k1m
7QL>f5Q
在研究脉冲在非线性耦合器中的演变时,我们需要求解非线性偏微分方程组。在如下的论文中,我们提出了一种简洁的数值方法。 这里我们提供给大家用Matlab编写的计算程序。 J!%Yy\G
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 Lu}oC2
a
#?%I#
mJ0nyjX^
\Oh9)X:I
% This Matlab script file solves the nonlinear Schrodinger equations T#?KY
% for 3 cores nonlinear coupler. The output plot is shown in Fig.2 of k7)H%31;
% Youfa Wang and Wenfeng Wang, “A simple and effective numerical method for nonlinear fKIwdk%!-
% pulse propagation in N-core optical couplers”, IEEE Photonics Technology lett. Vol.16, No.4, pp1077-1079, 2004 Zeyhr\T
7}(LO^,A
C=1; Ac<V!v71
M1=120, % integer for amplitude j y{T=Nb
M3=5000; % integer for length of coupler (.7_`T6QG
N = 512; % Number of Fourier modes (Time domain sampling points) u*`acmS>N
dz =3.14159/(sqrt(2.)*C)/M3; % length of coupler is divided into M3 segments, make sure nonlinearity<0.05. Wfkm'BnV
T =40; % length of time:T*T0. VztalwI
dt = T/N; % time step ]OZZPo
n = [-N/2:1:N/2-1]'; % Index laqKP+G
t = n.*dt; AS`0.RC-
ww = 4*n.*n*pi*pi/T/T; % Square of frequency. Note i^2=-1. GEfX,9LF &
w=2*pi*n./T; /lDW5;d
g1=-i*ww./2; RvV4SlZz
g2=-i*ww./2; % w=2*pi*f*n./N, f=1/dt=N/T,so w=2*pi*n./TP=0; =K{$?%"
g3=-i*ww./2; y.5mYQA4=[
P1=0; K,%H*1YKK
P2=0; (:].?o
P3=1; vG#|CO9
P=0; wlBdA
for m1=1:M1 2fTkHBhn&
p=0.032*m1; %input amplitude ~ C6<75
s10=p.*sech(p.*t); %input soliton pulse in waveguide 1 UZMo(rG.]{
s1=s10; qO[6?q=c:
s20=0.*s10; %input in waveguide 2 d z&| 3o
s30=0.*s10; %input in waveguide 3 yAR''>
s2=s20; g"(
vl-Uw
s3=s30; cH'*J/
p10=dt*(sum(abs(s10').*abs(s10'))-0.5*(abs(s10(N,1)*s10(N,1))+abs(s10(1,1)*s10(1,1)))); :h0as!2@dp
%energy in waveguide 1 IPa08/
p20=dt*(sum(abs(s20').*abs(s20'))-0.5*(abs(s20(N,1)*s20(N,1))+abs(s20(1,1)*s20(1,1)))); neJNMdv@T
%energy in waveguide 2 ;r>?V2,tm
p30=dt*(sum(abs(s30').*abs(s30'))-0.5*(abs(s30(N,1)*s30(N,1))+abs(s30(1,1)*s30(1,1)))); =| S8.|r+
%energy in waveguide 3 z,}1K!
for m3 = 1:1:M3 % Start space evolution )y'`C@ijI
s1 = exp(dz*i*(abs(s1).*abs(s1))).*s1; % 1st step, Solve nonlinear part of NLS oP5G*AFUq
s2 = exp(dz*i*(abs(s2).*abs(s2))).*s2; i;*c|ma1>
s3 = exp(dz*i*(abs(s3).*abs(s3))).*s3; $&nF1HBI4