您现在的位置:首页 >> 技术文章 >> MATLAB技术 >> 内容

MATLAB代做|FPGA代做|python代做- 用于模拟光纤中的非线性薛定谔方程

时间:2019-10-30 20:42:55 点击:

  核心提示:MATLAB代做|FPGA代做|python代做- 用于模拟光纤中的非线性薛定谔方程...
% This code solves the NLS equation with the split-step method
% idu/dz - sgn(beta2)/2 d^2u/d(tau)^2 + N^2*|u|^2*u = 0
% Written by Govind P. Agrawal in March 2005 for the NLFO book

%specify input parameters
clear all;%
distance = input('Enter fiber length (in units of L_D)=');%
beta2 = input('dispersion: 1 for normal, -1 for anomalous:');%
N = input('Nonlinear parameter N= ');%soliton order
mshape = input('m=0 for sech, m>0 for super-Gaussian = ');
chirp0 = 0; %input pulse chirp (default value)

%---set simulation parameters
nt = 1024; Tmax =32; % FFT points and window size
step_num = round(20*distance*N^2)  % No. of z steps to
deltaz = distance/step_num; % step size in z
dtau = (2*Tmax)/nt; % step size in tau

%---tau and omega arrays
tau = (-nt/2:nt/2-1)*dtau; % temporal grid
omega = (pi/Tmax)*[(0:nt/2-1) (-nt/2:-1)]; % frequency grid

%---Input Field profile
if mshape==0
   uu = sech(tau).*exp(-0.5i*chirp0*tau.^2); % soliton
   else % super-Gaussian
       uu = exp(-0.5*(1+1i*chirp0).*tau.^(2*mshape));
end
%---Plot input pulse shape and spectrum
temp = fftshift(ifft(uu)).*(nt*dtau)/sqrt(2*pi); % spectrum figure; 
% subplot(2,1,1);
%plot(tau, abs(uu).^2, '--k'); hold on;
%axis([-5 5 0 inf]);
%xlabel('Normalized Time');
%ylabel('Normalized Power');
%title('Input and Output Pulse Shape and Spectrum');
%subplot(2,1,2);
%plot(fftshift(omega)/(2*pi), abs(temp).^2, '--k'); hold on;
%axis([-.5 .5 0 inf]);
%xlabel('Normalized Frequency');
%ylabel('Spectral Power');

%---store dispersive phase shifts to speedup code
dispersion = exp(i*0.5*beta2*omega.^2*deltaz); % phase factor
hhz = 1i*N^2*deltaz; % nonlinear phase factor

%*********[ Beginning of MAIN Loop]***********
% scheme: 1/2N -> D -> 1/2N; first half step nonlinear
temp = uu.*exp(abs(uu).^2.*hhz/2); % note hhz/2
for n=1:step_num
f_temp = ifft(temp).*dispersion;
uu = fft(f_temp);
temp = uu.*exp(abs(uu).^2.*hhz);
end
uu = temp.*exp(-abs(uu).^2.*hhz/2); % Final field
temp = fftshift(ifft(uu)).*(nt*dtau)/sqrt(2*pi); %Final spectrum
%***************[ End of MAIN Loop ]**************
%----Plot output pulse shape and spectrum
subplot(2,1,1)
plot(tau, abs(uu).^2, '-k')
subplot(2,1,2)
plot(fftshift(omega)/(2*pi), abs(temp).^2, '-k')
 

联系:highspeedlogic

QQ :1224848052

微信:HuangL1121

邮箱:1224848052@qq.com

网站:http://www.mat7lab.com/

网站:http://www.hslogic.com/

微信扫一扫:

作者:非线性薛定谔 来源:非线性薛定谔
  • 您是如何找到本站的?
  • 百度搜索
  • Google搜索
  • 查阅资料过程中
  • 论坛发现
  • 百度贴吧发现
  • 朋友介绍
本站最新成功开发工程项目案例
相关评论
发表我的评论
  • 大名:
  • 内容:
  • matlab代做|matlab专业代做|matlab淘宝代做(www.hslogic.com) © 2019 版权所有 All Rights Reserved.
  • Email:highspeed_logic@163.com 站长QQ: 1224848052

    专业代做/代写/承接、MATLAB、SIMULINK、FPGA项目、博士/硕士/本科毕业设计、课题设计、论文,毕业论文,Coursework、Eassy、Assignment