Advertisement

非线性光纤光学

阅读量:
复制代码
    %在常规光纤中观察基态孤子的传输特性
    
    
    clear
    clc
    
    %?注意时间域与频域的选择问题
    T = 40; %时间窗口                               
    tn= 2^10;  % 时间区域个数(2^M个)                            
    dt = T/tn;   %选择的时间步长  
    t = ((1:tn)'-(tn+1)/2)*dt;  
    w = wn(T,tn);%傅里叶域频率,调用计算频率函数 
    
    b=0;
    c=-i*w'.^2/2+i*b*w'.^3;
    dz=0.1;  %迭代时选择的步长
    %步长的选择影响计算效率
    z=0:dz:100;  % 位置坐标  
    
    % 输入初始脉冲
    u(1,:)=sech(t);  
    
    %?注意复数的表示,傅里叶变换函数的使用
    %由于输入负频,fft对应逆变换,ifft对应傅里叶变换
    for k=1:1:length(z)
    % 分布傅里叶变换解方程
    u1=fft(exp(c*dz/2).*ifft(u(k,:)));
    u2=u1.*exp(i*dz*abs(u(k,:)).^2);
    u(k+1,:)=fft(exp(c*dz/2).*ifft(u2));
    %二次迭代
    for m=1:2
        u2=u1.*exp(i*dz/2*(abs(u(k,:)).^2+abs(u(k+1,:)).^2));
        u(k+1,:)=fft(exp(c*dz/2).*ifft(u2));
    end
    %缺少迭代仿真将出现很多问题
    end 
    
    subplot(1,2,1);
    plot(t(1:1:length(t)),u(1,:),'k')
    xlabel('归一化时间')
    ylabel('归一化振幅')
    axis([-20,20,0,1.5]);
    title('常规光纤中输入基态孤子')
    
    subplot(1,2,2);
    mesh(t(1:1:length(t)),z(1:(length(z)-1)/50:length(z)-1),abs(u(1:(length(z)-1)/50:length(z)-1,:)))
    %注意采样点少点好画,
    view(-20,45);
    xlabel('归一化时间')
    ylabel('归一化距离')
    zlabel('归一化振幅')
    title('输出光脉冲')
    
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    代码解释
在这里插入图片描述

全部评论 (0)

还没有任何评论哟~