计算脉冲在非线性耦合器中演化的Matlab 程序 2Q bCH}
zDK"Y{
% This Matlab script file solves the coupled nonlinear Schrodinger equations of
(zIWJJw
% soliton in 2 cores coupler. The output pulse evolution plot is shown in Fig.1 of 'tJb(X!]q
% Youfa Wang and Wenfeng Wang, “A simple and effective numerical method for nonlinear >~+qU&'2
% pulse propagation in N-core optical couplers”, IEEE Photonics Technology lett. Vol.16, No.4, pp1077-1079, 2004 $0[t<4K`yn
rl/]Ym4j
%fid=fopen('e21.dat','w'); "+dByaY
N = 128; % Number of Fourier modes (Time domain sampling points) bf4QW JZD
M1 =3000; % Total number of space steps G!<-9HA5
J =100; % Steps between output of space 6j2mr6o
T =10; % length of time windows:T*T0 4CH/~b1(
T0=0.1; % input pulse width PNgdWf3
MN1=0; % initial value for the space output location *@+E82D
dt = T/N; % time step m7$t$/g
n = [-N/2:1:N/2-1]'; % Index V'iT>
t = n.*dt; Q0j4c
u10=1.*sech(1*t); % input to waveguide1 amplitude: power=u10*u10 ov$S
u20=u10.*0.0; % input to waveguide 2 #ULjK*)R
u1=u10; u2=u20; @sPuc.
U1 = u1; _48@o^{
U2 = u2; % Compute initial condition; save it in U Kry^47"
ww = 4*n.*n*pi*pi/T/T; % Square of frequency. Note i^2=-1. #_pQS}$
w=2*pi*n./T; <>71;%e;'
g=-i*ww./2; % w=2*pi*f*n./N, f=1/dt=N/T,so w=2*pi*n./T H*KZZTKd
L=4; % length of evoluation to compare with S. Trillo's paper +"?O2PX
dz=L/M1; % space step, make sure nonlinear<0.05 +{b3A@f|F
for m1 = 1:1:M1 % Start space evolution :iEIo7B
u1 = exp(dz*i*(abs(u1).*abs(u1))).*u1; % 1st sSolve nonlinear part of NLS ^l8&y;-T
u2 = exp(dz*i*(abs(u2).*abs(u2))).*u2; dTTC6?yPXf
ca1 = fftshift(fft(u1)); % Take Fourier transform goje4;
ca2 = fftshift(fft(u2)); 0wE)1w<C~
c2=exp(g.*dz).*(ca2+i*1*ca1.*dz); % approximation 1}/37\
c1=exp(g.*dz).*(ca1+i*1*ca2.*dz); % frequency domain phase shift -\I".8"YE
u2 = ifft(fftshift(c2)); % Return to physical space 8M6wc394
u1 = ifft(fftshift(c1)); Sv>bU4LHf
if rem(m1,J) == 0 % Save output every J steps. )RCva3Ul
U1 = [U1 u1]; % put solutions in U array N~!
GAaD
U2=[U2 u2]; XF Cwa
MN1=[MN1 m1]; {b,#l]v
z1=dz*MN1'; % output location #+ai G52+
end >c30kpGg
end Cj5=UUnO
hg=abs(U1').*abs(U1'); % for data write to excel GOU>j"5}2
ha=[z1 hg]; % for data write to excel [}Z!hq
t1=[0 t']; @Wl2E.)K;
hh=[t1' ha']; % for data write to excel file {8e4TD9E0
%dlmwrite('aa',hh,'\t'); % save data in the excel format V2oXg
figure(1) H[J5A2b
waterfall(t',z1',abs(U1').*abs(U1')) % t' is 1xn, z' is 1xm, and U1' is mxn tO~o-R
figure(2) AAc*\K
waterfall(t',z1',abs(U2').*abs(U2')) % t' is 1xn, z' is 1xm, and U1' is mxn w|[{xn^R
L7"B`oa(p
非线性超快脉冲耦合的数值方法的Matlab程序 .T*89cEu
q]rqFP0C
在研究脉冲在非线性耦合器中的演变时,我们需要求解非线性偏微分方程组。在如下的论文中,我们提出了一种简洁的数值方法。 这里我们提供给大家用Matlab编写的计算程序。 IfzW%UL
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 ;=lQMKx0
J`'wprSBb
2q}lSa7r
S]g`Ds<
% This Matlab script file solves the nonlinear Schrodinger equations c.{t +OR
% for 3 cores nonlinear coupler. The output plot is shown in Fig.2 of $*qQ/hi
% Youfa Wang and Wenfeng Wang, “A simple and effective numerical method for nonlinear HLb`'TC3r+
% pulse propagation in N-core optical couplers”, IEEE Photonics Technology lett. Vol.16, No.4, pp1077-1079, 2004 W8N__
Wu@v%!0
C=1; KYM%U"j D
M1=120, % integer for amplitude XJ6=Hg4_O
M3=5000; % integer for length of coupler (_n U}<y_i
N = 512; % Number of Fourier modes (Time domain sampling points) 8T"8C
dz =3.14159/(sqrt(2.)*C)/M3; % length of coupler is divided into M3 segments, make sure nonlinearity<0.05. XFi!=|F
T =40; % length of time:T*T0. vT;~\,M
dt = T/N; % time step \}:;kO4f
n = [-N/2:1:N/2-1]'; % Index 'q7&MM'oS^
t = n.*dt;
tk66Ggi[K
ww = 4*n.*n*pi*pi/T/T; % Square of frequency. Note i^2=-1. Q=?YY-*$
w=2*pi*n./T; <o: O<p@6
g1=-i*ww./2; /c!@ H(^)
g2=-i*ww./2; % w=2*pi*f*n./N, f=1/dt=N/T,so w=2*pi*n./TP=0; JLh{>_Rr
g3=-i*ww./2; 2'-o'z<
P1=0; WKB
K)=
P2=0; cIQe^C
P3=1; I!u fw\[
P=0; It8s#o q8
for m1=1:M1 `2a7y]?
p=0.032*m1; %input amplitude O)D+u@RhH
s10=p.*sech(p.*t); %input soliton pulse in waveguide 1 -:|t^RM;FT
s1=s10; D[Kq`
s20=0.*s10; %input in waveguide 2 H|s,;1#
s30=0.*s10; %input in waveguide 3 !~-@p?kW/
s2=s20; !CUX13/0
s3=s30; (
P\oLr9
p10=dt*(sum(abs(s10').*abs(s10'))-0.5*(abs(s10(N,1)*s10(N,1))+abs(s10(1,1)*s10(1,1)))); gT#hF]c:
%energy in waveguide 1 @2/xu
p20=dt*(sum(abs(s20').*abs(s20'))-0.5*(abs(s20(N,1)*s20(N,1))+abs(s20(1,1)*s20(1,1)))); ^-g-]?q
%energy in waveguide 2 |*JMCI@Mz
p30=dt*(sum(abs(s30').*abs(s30'))-0.5*(abs(s30(N,1)*s30(N,1))+abs(s30(1,1)*s30(1,1)))); >slGicZ0
%energy in waveguide 3 m98w0D@Ee
for m3 = 1:1:M3 % Start space evolution !BEl6h
s1 = exp(dz*i*(abs(s1).*abs(s1))).*s1; % 1st step, Solve nonlinear part of NLS >"<<hjKJ
s2 = exp(dz*i*(abs(s2).*abs(s2))).*s2; @!,W]?{
s3 = exp(dz*i*(abs(s3).*abs(s3))).*s3; T3In0LQ
sca1 = fftshift(fft(s1)); % Take Fourier transform uU!}/mbo
sca2 = fftshift(fft(s2)); =S<