光纤内脉冲信号传输仿真(包含matlab程序)Word文档格式.docx
《光纤内脉冲信号传输仿真(包含matlab程序)Word文档格式.docx》由会员分享,可在线阅读,更多相关《光纤内脉冲信号传输仿真(包含matlab程序)Word文档格式.docx(6页珍藏版)》请在冰豆网上搜索。
GVD不会影响脉冲的频谱,但是能改变脉冲的形状。
把5式代入3式可得方程2的通解
(6式)
其中,是入射光在z=0处的傅里叶变换
(7式)
方程6和方程7适用于任意形状的输入脉冲。
2、SPM
定义归一化振幅U
(8式)
其中归一化时间量
(9式)
满足方程
(10式)
令=0,两边同时乘以i可得
(11式)
其中
用做代换,并且令方程两边实部虚部相等,则有
(12式)
对相位方程进行积分,得到通解
(13式)
其中,是z=0处的场振幅,且
(14式)
式中有限长度
(15式)
第14式表明,SPM产生随光强变化的相位,但脉冲形状保持不变。
脉冲沿光纤传输时,由于SPM的作用,新的频率分量在不断产生,频谱被展宽。
3、分步傅里叶方法
一般来说,沿光纤的传输方向,色散和非线性效应是同时作用的。
分步傅里叶方法通过假定在传输过程当中,光场每通过一小段距离h,色散和非线性效应分别作用,得到近似解。
从z到z+h的传输过程中,分为3步进行。
第一步,z到z+h/2,只考虑GVD。
第二步,z+h/2处,考虑SPM。
第三步,z+h/2到z+h,只考虑GVD。
通过分步傅里叶方法,把传输距离L分成m个区间,MATLAB程序做m次循环,即可得到最终的近似解。
L
h
只考虑
GVD
SPM
图1
三、MATLAB仿真结果
这里选择传输双极性非归零(NRZ)码,传输高斯脉冲,使用MATLAB仿真光纤中脉冲传输。
主要参数设置如下:
传输距离L=50Km,损耗a=0.3dB,非线性系数r=3/km/w,色散系数b2=20ps2/km。
高斯脉冲入射光场表达式为:
(16式)
传输5个码源[1,-1,1,-1,1],对应的时域波形如下:
图2
传输过程中使用分步傅里叶方法,分成m=10段,每段h=5Km,分别进行GVD和SPM分析。
传输过程中的波形如下:
图3
通过图3可以发现,由于GVD和SPM的作用,脉冲波形被展宽。
随着传输距离的增加,脉冲波形与原始波形的差异越大。
附:
MATLAB代码
clc;
%清除命令窗口原有命令
clearall;
%清除原有变量
L=5;
%周期数
Ts=4;
%符号周期
A=100;
%插值倍数
Rb=1/Ts;
%可以更改Rb与Ts的关系,但是A需要同时改变
T0=Ts/A;
F0=1/T0;
%信源产生[1-11-11]
a=zeros(1,L);
fori=1:
ifmod(i,2)==1
a(i)=1;
else
a(i)=-1;
end
end
d=zeros(1,L*A);
d(1+(i-1)*A)=a(i);
%插值,在相邻a(i)插入A-1个0,得到插值后的发送序列;
%周期高斯脉冲产生
T0=30;
%初始宽度ps;
N=256;
TL=T0*20;
dt=TL/N;
df=1/TL;
t=(-N/2:
N/2-1)*dt;
f=(-N/2:
N/2-1)*df;
w=2*pi*f;
u=exp(-(1/2)*((t/T0).^2));
%U(0,t)
j=1;
%截取有效高斯点数
256
if(u(i)>
10^(-5))
U(j)=u(i);
j=j+1;
end
figure
(2)
U1=conv(U,d);
plot(U1)
title('
周期高斯脉冲'
);
b2=20;
%ps^2/km色散系数
LD=T0^2/b2;
%色散长度km
L=50;
%光纤长度km
a=0.3;
%损耗db/km
r=3;
%非线性系数/km/w
p0=2*10^(-3);
%峰值功率w
Lnl=1/(r*p0);
%非线性长度km
z=L;
dz=z/10;
Leff=(1-exp(-dz*10^(-a/10)))/(10^(-a/10));
%有效长度
fmax=Leff/Lnl;
%最大相位偏移
y=0*ones(1,size(U1,2));
figure(3)
plot3(y,(-size(U1,2)/2:
size(U1,2)/2-1)*dt,U1,'
color'
[0,0,0]);
xlabel('
L/km'
ylabel('
T/ps'
zlabel('
Intensity'
gridon;
holdon;
W=2*pi*(-size(U1,2)/2:
size(U1,2)/2-1)*df;
10%分布傅里叶
U=fft(U1);
w1=fftshift(W);
Uz=U.*exp((1i*b2*(w1.^2)*dz/2)/2);
U1=ifft(Uz);
%先对前dz/2进行GVD
fnl=abs(U1).^2*fmax;
U1=U1.*exp(1i*fnl);
%SPM
%对后dz/2进行GVD
y=5*i*ones(1,size(U1,2));
plot3(y,(-size(U1,2)/2:
[1-0.1*i,0.3,0.1*i]);
end;