(完整word版)光纤内脉冲信号传输仿真(包含matlab程序)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
光纤内脉冲信号传输仿真
一、仿真内容
1、 选择一种脉冲波形(高斯脉冲,啁啾高斯脉冲,双曲正割脉冲,超高斯脉冲等),
讨论光脉冲在光纤内传输时,GVD 和SPM 效应是如何结合的,并使用MATLAB 仿真脉冲波形随传播距离的变化。
2、 选择一种调制方式(ASK ,PSK ,QPSK ,QAM 等),对脉冲进行调制,分析接收端的误码率。 二、原理分析
1、 GVD
光脉冲在单模光纤内传输的NLS 方程,对脉冲大于5ps 的脉冲有
2222|A |22A A i i A A z T
βα
γ∂∂=-+-∂∂ (1式) U (z,T )满足线性偏微分方程
~
2222U U i z T
β∂∂=∂∂ (2式) 若U(z,w)是U(z,T)的傅里叶变换,即
~1(z,T)(z,)2i T U U e d ωωωπ-∞=-∞
⎰ (3式)
满足常微分方程
~
~222
U
i U z βω∂=-∂ (4式) 其解为
~
~
22(z,)(0,)exp(z)2
i
U U ωωβω= (5式)
由第5式可得,GVD 改变了脉冲的每个频谱分量的相位,且其改变量依赖于频率及传输距离。GVD 不会影响脉冲的频谱,但是能改变脉冲的形状。把5式代入3式可得方程2的通解
~22
1(z,T)(0,)exp(z i T)22
i U U d ωβωωωπ∞=--∞⎰ (6式)
其中,~
(0,)U ω是入射光在z=0处的傅里叶变换
~
(0,)U(0,T)exp(i T)U dT ωω∞
=-∞
⎰
(7式) 方程6和方程7适用于任意形状的输入脉冲。 2、 SPM
定义归一化振幅U
/2
(z,)(z,)A U αττ-= (8式) 其中归一化时间量
00
/g
t z T T T ντ-==
(9式) (z,)U τ满足方程
2222sgn()|U |U 2z D NL
U U e i z L L αβτ-∂∂=-∂∂ (10式) 令2β=0,两边同时乘以i 可得
2|U |U z
NL
U e z L α-∂=∂ (11式) 其中10()NL L P γ-=
用NL exp(i )U V φ=做代换,并且令方程两边实部虚部相等,则有
0V
z ∂=∂
2z NL NL
e V z L αφ-∂=∂ (12式) 对相位方程进行积分,得到通解
NL (L,T)U(0,T)exp(i (L,T))U φ= (13式)
其中,U(0,T)是z=0处的场振幅,且
2NL eff NL (L,T)|U(0,T)|(L /L )φ= (14式)
式中有限长度
eff L [1exp(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 次循环,即可得到最终的近似解。
图 1
三、MATLAB 仿真结果
这里选择传输双极性非归零(NRZ )码,传输高斯脉冲,使用MATLAB 仿真光纤中脉冲传输。主要参数设置如下:传输距离L=50Km ,损耗a=0.3dB ,非线性系数r=3/km/w ,色散系数b2=20ps 2 /km 。
高斯脉冲入射光场表达式为:
2
2
0(0,T)exp()2T U T =-
(16式) 传输5个码源[1 , -1, 1, -1, 1],对应的时域波形如下:
图2
传输过程中使用分步傅里叶方法,分成m=10段,每段h=5Km ,分别进行GVD 和SPM 分析。传输过程中的波形如下:
100
200
300
400
500
600
700
-1-0.8-0.6-0.4-0.200.20.40.60.81周期高斯脉冲
L
h
只考虑 GVD
只考虑 GVD
只考虑 SPM
图 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
-800
-1-0.500.5
1T/ps
I n t e n s i t y