计算脉冲在非线性耦合器中演化的Matlab 程序 )Dk0V!%N
0j
a
% This Matlab script file solves the coupled nonlinear Schrodinger equations of b*'=W"%\
% soliton in 2 cores coupler. The output pulse evolution plot is shown in Fig.1 of _V_8p)%
% Youfa Wang and Wenfeng Wang, “A simple and effective numerical method for nonlinear 5UrXVdP
% pulse propagation in N-core optical couplers”, IEEE Photonics Technology lett. Vol.16, No.4, pp1077-1079, 2004 fG8}= xH_&
4pfix1F g
%fid=fopen('e21.dat','w'); 5C Y@R
N = 128; % Number of Fourier modes (Time domain sampling points) X%4uShM
M1 =3000; % Total number of space steps c:?#zX
J =100; % Steps between output of space IS0HV$OI
T =10; % length of time windows:T*T0 @n~>j&Kp
T0=0.1; % input pulse width wZ]BY;
MN1=0; % initial value for the space output location Oi
kU$~|
dt = T/N; % time step L#7)X5a__
n = [-N/2:1:N/2-1]'; % Index Ww'TCWk@
t = n.*dt; V 9QvQA
r
u10=1.*sech(1*t); % input to waveguide1 amplitude: power=u10*u10 eZR8<Z%
u20=u10.*0.0; % input to waveguide 2 )MD*)O
u1=u10; u2=u20; ctc`^#q
U1 = u1; E1l\~%A
U2 = u2; % Compute initial condition; save it in U DK@w^ZW6JA
ww = 4*n.*n*pi*pi/T/T; % Square of frequency. Note i^2=-1. m]-v IUpb
w=2*pi*n./T; ;G4HMtL
g=-i*ww./2; % w=2*pi*f*n./N, f=1/dt=N/T,so w=2*pi*n./T gq/ePSa
L=4; % length of evoluation to compare with S. Trillo's paper AjL?Qh4
dz=L/M1; % space step, make sure nonlinear<0.05 aiR|.opIb
for m1 = 1:1:M1 % Start space evolution r7Q:l ?F2
u1 = exp(dz*i*(abs(u1).*abs(u1))).*u1; % 1st sSolve nonlinear part of NLS o/x5
u2 = exp(dz*i*(abs(u2).*abs(u2))).*u2; A<YZBR_
ca1 = fftshift(fft(u1)); % Take Fourier transform h87L8qh9
ca2 = fftshift(fft(u2)); Zeme`/aBb
c2=exp(g.*dz).*(ca2+i*1*ca1.*dz); % approximation l# !@{ <
c1=exp(g.*dz).*(ca1+i*1*ca2.*dz); % frequency domain phase shift {x&jh|f`g
u2 = ifft(fftshift(c2)); % Return to physical space !dbA (
u1 = ifft(fftshift(c1)); {0)WS}&
if rem(m1,J) == 0 % Save output every J steps. qa0JQ_?o]
U1 = [U1 u1]; % put solutions in U array HjUw[Yz+6
U2=[U2 u2]; j;AzkReb
MN1=[MN1 m1]; <PfPh~
z1=dz*MN1'; % output location nIT ^'
end FQ9csUjpB
end e&H<lT
hg=abs(U1').*abs(U1'); % for data write to excel -;@5Ua1uf
ha=[z1 hg]; % for data write to excel XY+aunLf
t1=[0 t']; N}l]Ilm$34
hh=[t1' ha']; % for data write to excel file xPfnyAo?%z
%dlmwrite('aa',hh,'\t'); % save data in the excel format +3o)L?:g
figure(1) St3(1mApl
waterfall(t',z1',abs(U1').*abs(U1')) % t' is 1xn, z' is 1xm, and U1' is mxn *(\;}JF-
figure(2) .~A"Wyu\
waterfall(t',z1',abs(U2').*abs(U2')) % t' is 1xn, z' is 1xm, and U1' is mxn *nsnX/e(-
ZB^4 (F')H
非线性超快脉冲耦合的数值方法的Matlab程序
wWOT*R_
n7, 6a
在研究脉冲在非线性耦合器中的演变时,我们需要求解非线性偏微分方程组。在如下的论文中,我们提出了一种简洁的数值方法。 这里我们提供给大家用Matlab编写的计算程序。 ~\)&{'
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 u6qi
uu@'02G8
(;2J(GZ:$U
soqNzdTB2
% This Matlab script file solves the nonlinear Schrodinger equations T24#gF~
% for 3 cores nonlinear coupler. The output plot is shown in Fig.2 of 2;?wN`}5g=
% Youfa Wang and Wenfeng Wang, “A simple and effective numerical method for nonlinear WW\)B-}T
% pulse propagation in N-core optical couplers”, IEEE Photonics Technology lett. Vol.16, No.4, pp1077-1079, 2004 $p6Xa;j$ 9
X,!OWz:[
C=1; H8t{ >C)]
M1=120, % integer for amplitude Sj{rvW
M3=5000; % integer for length of coupler vn%U;}
N = 512; % Number of Fourier modes (Time domain sampling points) a5U2[Ko80
dz =3.14159/(sqrt(2.)*C)/M3; % length of coupler is divided into M3 segments, make sure nonlinearity<0.05. U70@}5!
T =40; % length of time:T*T0. [>J~M!yu:r
dt = T/N; % time step bhm~Ii
n = [-N/2:1:N/2-1]'; % Index ,Y\4xg*`
t = n.*dt; 6B;_uIq5
ww = 4*n.*n*pi*pi/T/T; % Square of frequency. Note i^2=-1. j=jrzG+`
w=2*pi*n./T; B> "r -O
g1=-i*ww./2; E-U;8cOMv
g2=-i*ww./2; % w=2*pi*f*n./N, f=1/dt=N/T,so w=2*pi*n./TP=0; dW^_tzfF7
g3=-i*ww./2; !DX/^b
P1=0; c7nk~K[6
P2=0; fkv{\zN
P3=1; Lq
$4.l[j
P=0; hA,rSq
for m1=1:M1 SE}RP3dF!
p=0.032*m1; %input amplitude \I,Dje/:w
s10=p.*sech(p.*t); %input soliton pulse in waveguide 1 ^SSOh#
s1=s10; k89gJ5B$
s20=0.*s10; %input in waveguide 2 p4t!T=o/
s30=0.*s10; %input in waveguide 3 hzPB~obC
s2=s20; K<7T}XzU$
s3=s30; VF!kr1n!
p10=dt*(sum(abs(s10').*abs(s10'))-0.5*(abs(s10(N,1)*s10(N,1))+abs(s10(1,1)*s10(1,1)))); Lc: SqF
%energy in waveguide 1 %qjyk=z+Z
p20=dt*(sum(abs(s20').*abs(s20'))-0.5*(abs(s20(N,1)*s20(N,1))+abs(s20(1,1)*s20(1,1)))); $:gSc&mx
%energy in waveguide 2 sv{0XVn+^
p30=dt*(sum(abs(s30').*abs(s30'))-0.5*(abs(s30(N,1)*s30(N,1))+abs(s30(1,1)*s30(1,1)))); :Ye#NPOI
%energy in waveguide 3 io?{ew
for m3 = 1:1:M3 % Start space evolution *sIG&
s1 = exp(dz*i*(abs(s1).*abs(s1))).*s1; % 1st step, Solve nonlinear part of NLS \PMKmJX0O
s2 = exp(dz*i*(abs(s2).*abs(s2))).*s2; Y %D*O
s3 = exp(dz*i*(abs(s3).*abs(s3))).*s3; v^18o$=K",
sca1 = fftshift(fft(s1)); % Take Fourier transform }Keon.N?
sca2 = fftshift(fft(s2)); }Ka.bZS
sca3 = fftshift(fft(s3)); x<