计算脉冲在非线性耦合器中演化的Matlab 程序 S\g7wXH
X]MM7hMuR
% This Matlab script file solves the coupled nonlinear Schrodinger equations of F>kn:I"X)
% soliton in 2 cores coupler. The output pulse evolution plot is shown in Fig.1 of \w[ZY$/
% Youfa Wang and Wenfeng Wang, “A simple and effective numerical method for nonlinear H0 n@kKr
% pulse propagation in N-core optical couplers”, IEEE Photonics Technology lett. Vol.16, No.4, pp1077-1079, 2004 8sF0]J[g{
b%f2"e0g
%fid=fopen('e21.dat','w'); N vHy'
N = 128; % Number of Fourier modes (Time domain sampling points) >m6,xxTR
M1 =3000; % Total number of space steps {C0^D*U:
J =100; % Steps between output of space u|>U`[Zpj
T =10; % length of time windows:T*T0 MQH8Q$5D
T0=0.1; % input pulse width |ezO@
MN1=0; % initial value for the space output location ajW$d!
dt = T/N; % time step FJ,\?ooGf
n = [-N/2:1:N/2-1]'; % Index S%s|P=u
t = n.*dt; 'A(-MTd%
u10=1.*sech(1*t); % input to waveguide1 amplitude: power=u10*u10 m\Fb ,
u20=u10.*0.0; % input to waveguide 2 Ldj^O9p(
u1=u10; u2=u20; &R FM
d=
U1 = u1; +6)kX4
U2 = u2; % Compute initial condition; save it in U %%,hR'+|
ww = 4*n.*n*pi*pi/T/T; % Square of frequency. Note i^2=-1. p F*~)e
w=2*pi*n./T; hPi
:31-0
g=-i*ww./2; % w=2*pi*f*n./N, f=1/dt=N/T,so w=2*pi*n./T i
=fOdp
L=4; % length of evoluation to compare with S. Trillo's paper hOL y*%
dz=L/M1; % space step, make sure nonlinear<0.05 l)PFzIz=V
for m1 = 1:1:M1 % Start space evolution h:Mn$VR,
u1 = exp(dz*i*(abs(u1).*abs(u1))).*u1; % 1st sSolve nonlinear part of NLS ($ B]9*
u2 = exp(dz*i*(abs(u2).*abs(u2))).*u2; `MYK XBM
ca1 = fftshift(fft(u1)); % Take Fourier transform ~v(M6dz~vk
ca2 = fftshift(fft(u2)); OK2/k_jXN'
c2=exp(g.*dz).*(ca2+i*1*ca1.*dz); % approximation 8j+:s\
c1=exp(g.*dz).*(ca1+i*1*ca2.*dz); % frequency domain phase shift 19w,'}CGk
u2 = ifft(fftshift(c2)); % Return to physical space 9k+&fyy
u1 = ifft(fftshift(c1)); J (&M<<%
if rem(m1,J) == 0 % Save output every J steps. ny_ kr`$42
U1 = [U1 u1]; % put solutions in U array S}p&\w H
U2=[U2 u2]; -f;j1bQ
MN1=[MN1 m1]; vb. Y8[
z1=dz*MN1'; % output location L!b0y7yR
end {{[jC"4AY
end k1Mxsd
hg=abs(U1').*abs(U1'); % for data write to excel GKsL~;8"
ha=[z1 hg]; % for data write to excel B/9<b{6
t1=[0 t']; JXRf4QmG
hh=[t1' ha']; % for data write to excel file 0@e}hv;
%dlmwrite('aa',hh,'\t'); % save data in the excel format am'p^Z@
figure(1) )4F/T, {;m
waterfall(t',z1',abs(U1').*abs(U1')) % t' is 1xn, z' is 1xm, and U1' is mxn 0O['-x
figure(2) qfP"UAc{/
waterfall(t',z1',abs(U2').*abs(U2')) % t' is 1xn, z' is 1xm, and U1' is mxn d,J<SG&L&
B[/['sD
非线性超快脉冲耦合的数值方法的Matlab程序 ,ORG"]_F
>]XaUQ-
在研究脉冲在非线性耦合器中的演变时,我们需要求解非线性偏微分方程组。在如下的论文中,我们提出了一种简洁的数值方法。 这里我们提供给大家用Matlab编写的计算程序。 7MuK/q.
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 vPl6Dasr
xlPcg7
<;,S"e
N} x/&e
% This Matlab script file solves the nonlinear Schrodinger equations &b@!DAwAJ
% for 3 cores nonlinear coupler. The output plot is shown in Fig.2 of qvfAG 0p
% Youfa Wang and Wenfeng Wang, “A simple and effective numerical method for nonlinear Ubw!/|mi
% pulse propagation in N-core optical couplers”, IEEE Photonics Technology lett. Vol.16, No.4, pp1077-1079, 2004 ?<yq 2`\4O
Puth8$
C=1; [>M*_1F
M1=120, % integer for amplitude 4z0R\tjT
M3=5000; % integer for length of coupler ;/)Mcx] n
N = 512; % Number of Fourier modes (Time domain sampling points) ),y!<\oQ
dz =3.14159/(sqrt(2.)*C)/M3; % length of coupler is divided into M3 segments, make sure nonlinearity<0.05. 5Du>-.r
T =40; % length of time:T*T0. |p8"9jN@}c
dt = T/N; % time step 10l1a4
n = [-N/2:1:N/2-1]'; % Index X~)V )'R
t = n.*dt; 6Er0o{iI
ww = 4*n.*n*pi*pi/T/T; % Square of frequency. Note i^2=-1. ghJ,s|lH
w=2*pi*n./T; d[>N6?JA/
g1=-i*ww./2; ReB(T7Vk=
g2=-i*ww./2; % w=2*pi*f*n./N, f=1/dt=N/T,so w=2*pi*n./TP=0; rz[uuY7
g3=-i*ww./2; f?>-yMR|
P1=0; @^:7UI_
P2=0; 5;K-,"UQ
P3=1; BudWbZ5>Ep
P=0; JW% /^'
for m1=1:M1 z"s%#/#
p=0.032*m1; %input amplitude
1W}nYU
s10=p.*sech(p.*t); %input soliton pulse in waveguide 1 %];h|[ax]
s1=s10; .cH{WZ
s20=0.*s10; %input in waveguide 2 q(jkit~`A
s30=0.*s10; %input in waveguide 3 9#EHXgz
s2=s20; ?LV-W
s3=s30; <