资源简介

我自己已经跑过了,非常好用,有问题联系我

资源截图

代码片段和文件信息

function [ outU_time ] = split_step(u_timebetagammadziterationtwEsatg0dt)
%Split_Step Fourier Method
%u_time: pulse description in time domain
%beta: GVD (+:normal) (fs^2/cm)
%gamma: nonlinear coefficient (W^-1*cm^-1)
%dz: step interval (cm)
%iteration: number of iterations in each segment of fiber
%t: time vector
%w: frequency vector
%dt: time interval (fs)

npoints=length(u_time);
u_freq=fftshift(fft(u_time));

%split-step loop
for Num=1:iteration;
    A=ifft(ifftshift(exp(-beta/2*0.5*j*w.^2*dz).*u_freq));
    B=exp(gamma*-j*abs(A).^2*dz).*A;
    u_freq=exp(-beta/2*0.5*j*w.^2*dz).*fftshift(fft(B));
    
    energy=sum(abs(u_freq).^2)*dt*1e-15;     %equal to sum(abs(u_time).^2)*dt*npoints*1e-15;   %(J)
    u_freq=u_freq*exp(g0*dz/(1+energy/Esat));
end;

outU_time=ifft(ifftshift(u_freq));


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        836  2008-05-12 00:33  newfolder2\split_step.m

     文件        506  2008-05-12 00:34  newfolder2\split_step_dispersion.m

     文件        671  2008-05-12 00:35  newfolder2\split_step_nogain.m

     目录          0  2008-05-12 00:35  newfolder2

----------- ---------  ---------- -----  ----

                 2013                    4


评论

共有 条评论