光纤内脉冲信号传输仿真(包含matlab程序)

更新时间:2023-03-16 21:36:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

光纤内脉冲信号传输仿真

一、仿真内容

1、 选择一种脉冲波形(高斯脉冲,啁啾高斯脉冲,双曲正割脉冲,超高斯脉冲等),

讨论光脉冲在光纤内传输时,GVD和SPM效应是如何结合的,并使用MATLAB仿真脉冲波形随传播距离的变化。

2、 选择一种调制方式(ASK,PSK,QPSK,QAM等),对脉冲进行调制,分析接收端的误码率。 二、原理分析

1、 GVD

光脉冲在单模光纤内传输的NLS方程,对脉冲大于5ps的脉冲有

?2?2A?A?i??iA???|A|2A(1式) 2?z22?TU(z,T)满足线性偏微分方程

~?U?2?2U(2式) i?2?z2?T若U(z,w)是U(z,T)的傅里叶变换,即

1?~?i?TU(z,T)?U(z,?)ed?(3式) ???2?满足常微分方程

?22~?Ui???U(4式) ?z2其解为

~iU(z,?)?U(0,?)exp(?2?2z)(5式)

2~~由第5式可得,GVD改变了脉冲的每个频谱分量的相位,且其改变量依赖于频率及传输距离。GVD不会影响脉冲的频谱,但是能改变脉冲的形状。把5式代入3式可得方程2的通解

1?~i22U(z,T)?U(0,?)exp(??z?i?T)d?(6式) ???2?2其中,U(0,?)是入射光在z=0处的傅里叶变换

~U(0,?)??~?U(0,T)exp(i?T)dT(7式) ??方程6和方程7适用于任意形状的输入脉冲。 2、 SPM

定义归一化振幅U

A(z,?)?P0e??/2U(z,?)(8式)

其中归一化时间量

Tt?z/?g???(9式)

T0T0U(z,?)满足方程

?Usgn(?2)?2Ue??z2i??|U|U(10式) 2?z2LD??LNL令?2=0,两边同时乘以i可得

?Ue??z?|U|2U(11式) ?zLNL?1其中LNL?(?P0)

用U?Vexp(i?NL)做代换,并且令方程两边实部虚部相等,则有

??NLe??z2?V?0?V(12式) ?z?zLNL对相位方程进行积分,得到通解

U(L,T)?U(0,T)exp(i?NL(L,T))(13式)

其中,U(0,T)是z=0处的场振幅,且

?NL(L,T)?|U(0,T)|2(Leff/LNL)(14式)

式中有限长度

Leff?[1?exp(??L)]/?(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 只考虑 GVD

图 1

三、MATLAB仿真结果

这里选择传输双极性非归零(NRZ)码,传输高斯脉冲,使用MATLAB仿真光纤中脉冲传输。主要参数设置如下:传输距离L=50Km,损耗a=0.3dB,非线性系数r=3/km/w,色散系数b2=20ps2/km。

高斯脉冲入射光场表达式为:

U(0,T)?exp(?T2)(16式) 2T02传输5个码源[1 , -1, 1, -1, 1],对应的时域波形如下:

周期高斯脉冲10.80.60.40.20-0.2-0.4-0.6-0.8-10100200300400500600700

图2

传输过程中使用分步傅里叶方法,分成m=10段,每段h=5Km,分别进行GVD和SPM分析。传输过程中的波形如下:

10.5Intensity0-0.5-18006004002000-200T/ps-400020L/km4060-600-800

图 3

通过图3可以发现,由于GVD和SPM的作用,脉冲波形被展宽。随着传输距离的增加,脉冲波形与原始波形的差异越大。

附:MATLAB代码

clc;%清除命令窗口原有命令 clear all;%清除原有变量 L=5;%周期数 Ts=4;%符号周期 A=100;%插值倍数

Rb=1/Ts;%可以更改Rb与Ts的关系,但是A需要同时改变 T0=Ts/A; F0=1/T0;

%信源产生[1 -1 1 -1 1] a=zeros(1,L); for i=1:L

if mod(i,2)==1 a(i)=1; else a(i)=-1; end end

d=zeros(1,L*A); for i=1:L

d(1+(i-1)*A)=a(i);%插值,在相邻a(i)插入A-1个0,得到插值后的发送序列; end

%周期高斯脉冲产生 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;

%截取有效高斯点数 for i=1:256 if(u(i)>10^(-5)) U(j)=u(i); j=j+1; end 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'); grid on; hold on;

W=2*pi*(-size(U1,2)/2:size(U1,2)/2-1)*df; for i=1: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

U=fft(U1); w1=fftshift(W);

Uz=U.*exp((1i*b2*(w1.^2)*dz/2)/2); U1=ifft(Uz); %对后dz/2进行GVD

y=5*i*ones(1,size(U1,2));

plot3(y,(-size(U1,2)/2:size(U1,2)/2-1)*dt,U1,'color',[1-0.1*i,0.3,0.1*i]); end;

本文来源:https://www.bwwdw.com/article/4puv.html

Top