Ch-5 : Dispersion in Optical Fibers

Ex:5.1 Pg: 198

In [1]:
from __future__ import division
t=0.1*10**-6## pulse broading in sec
d=12## disance in km
B=1/(2*t)## max bandwidth MHz
ds=t/d## dispersion in ns/km
bl=B*d## bandwidth length product
print "The max bandwidth =%d MHz"%( B/10**6)#
print "\n The dispersion =%0.2f ns/km"%( ds*10**9)#
print "\n bandwidth length product =%d MHz km"%( bl/10**6)
The max bandwidth =5 MHz

 The dispersion =8.33 ns/km

 bandwidth length product =60 MHz km

Ex:5.2 Pg: 198

In [2]:
from __future__ import division
t=0.1*10**-6## pulse broadening in sec
d=15## disance in km
B=1/(2*t)## max bandwidth MHz
ds=t/d## dispersion in ns/km
bl=B*d## bandwidth length product
print "The max bandwidth =%d MHz"%( B/10**6)#
print "\n The dispersion =%0.2f ns/km"%( ds*10**9)#
print "\n bandwidth length product =%d MHz km"%( bl/10**6)
The max bandwidth =5 MHz

 The dispersion =6.67 ns/km

 bandwidth length product =75 MHz km

Ex:5.3 Pg: 199

In [3]:
from math import sqrt
from __future__ import division
n1=1.465## core refractive index
n2=1.45## cladding refractive index
c=3*10**8## the speed of light in m/s
NA=sqrt(n1**2-n2**2)## numerical aperture
Mp=(NA**2)/(2*n1*c)## multipath pulse broadening in ns/km
bl=(1/NA**2)*(2*n1*c)## bandwidth length product in GHz km
print "The numerical aperture =%0.2f"%( NA)#
print "\n The multipath pulse broadening =%0.2f ns/km"%( Mp*10**9)#
print "\n The bandwidth length product =%d GHz km"%( bl/10**9)
The numerical aperture =0.21

 The multipath pulse broadening =0.05 ns/km

 The bandwidth length product =20 GHz km

Ex:5.4 Pg: 201

In [4]:
from __future__ import division
ds=0.020## material dispersion
c=3*10**8## the speed of light m/s
y=1.3## wavelength in um
M=ds/(c*y)## material dispersion parameter in ps/nm/km
w=6## spectral width in nm
l=1## length in km
rm=w*l*M## rms pulse broadening in ns/km
print "The material dispersion parameter =%0.2f ps/nm/km"%( M*10**12)#
print "\n The rms pulse broadening =%0.2f ns/km"%(rm*10**9)
The material dispersion parameter =51.28 ps/nm/km

 The rms pulse broadening =0.31 ns/km

Ex:5.5 Pg: 201

In [5]:
from __future__ import division
wr=0.0014## relative spectral width in nm
y=1.3*10**-6## wavelength in m
w=wr*y## spectral width in nm
ds=0.020## material dispersion
c=3*10**8## the speed of light in m/s
M=ds/(c*y)## material dispersion parameter in ps/nm/km
l=1## length in km
rm=w*l*M## rms pulse broadening in ns/km
print "The rms pulse broadening =%0.2f ns/km"%(rm*10**9*10**3)
The rms pulse broadening =0.09 ns/km

Ex:5.6 Pg: 202

In [6]:
from math import sqrt
from __future__ import division
n1=1.46## core refractive index
dl=0.01## relative index difference
L=10*10**3## optical length in meter
c=3*10**8## the speed of light in m/s
dt=(L*n1*dl)/c## delay difference in s
dT=dt*10**9## delay difference in ns
rm=(L*n1*dl)/(2*sqrt(3)*c)## rms pulse broadening s
rM=rm*10**9## rms pulse broadening ns
bt=0.2/rm## max bit rate in bit/sec
bT=bt/10**6## max bit rate in M bits/sec
bl=bt*L## bandwidth length product in Hz meter
bL=(bt*L)/(10**6*10**3)## bandwidth length product in MHz km
print "The delay difference =%d ns"%( dT)#
print "\n The rms pulse broadening =%0.2f ns"%( rM)#
print "\n The max bit rate =%0.2f M bits/sec"%( bT)#
print "\n The bandwidth length product =%0.2f MHz km"%( bL)
The delay difference =486 ns

 The rms pulse broadening =140.49 ns

 The max bit rate =1.42 M bits/sec

 The bandwidth length product =14.24 MHz km

Ex:5.7 Pg: 202

In [7]:
from math import sqrt
from __future__ import division
n1=1.5## core refractive index
dl=0.01## relative index difference
L=6*10**3## optical length in meter
c=3*10**8## the speed of light in m/s
rm=(L*n1*dl)/(2*sqrt(3)*c)## rms pulse broadening s
rM=rm*10**9## rms pulse broadening ns
bt=0.2/rm## max bit rate in bit/sec
bT=bt/10**6## max bit rate in M bits/sec
print "The rms pulse broadening =%0.2f ns"%( rM)#
print "\n The max bit rate =%0.2f M bits/sec"%( bT)
The rms pulse broadening =86.60 ns

 The max bit rate =2.31 M bits/sec

Ex:5.8 Pg: 203

In [8]:
from math import sqrt
from __future__ import division
n1=1.4## core refractive index
dl=0.012## relative index difference
L=6*10**3## optical length in meter
c=3*10**8## the speed of light in m/s
dt=(L*n1*dl)/c## delay difference in s
dT=dt*10**9## delay difference in ns
rm=(L*n1*dl)/(2*sqrt(3)*c)## rms pulse broadening s
rM=rm*10**9## rms pulse broadening ns
bt=0.2/rm## max bit rate in bit/sec
bT=bt/10**6## max bit rate in M bits/sec
print "The delay difference =%d ns"%( dT)#
print "\n The rms pulse broadening =%0.2f ns"%( rM)#
print "\n The max bit rate =%0.2f M bits/sec"%( bT)
The delay difference =336 ns

 The rms pulse broadening =96.99 ns

 The max bit rate =2.06 M bits/sec

Ex:5.9 Pg: 204

In [9]:
from math import sqrt
from __future__ import division
n1=1.5## core refractive index
c=3*10**8## the speed of light m/s
w=6*10**-6## rms spectral width in m
M=200## material dispersion parameter in ps/nm/km
NA=0.25## numerical aperture
w=50## spectral width in nm
L=1## length in m
rm=w*L*M## rms pulse broadening in s/km
rM=rm/10**3## rms pulse broadening in ns/km due to material dispersion
rm1=(L*1000*(NA)**2)/(4*sqrt(3)*n1*c)##rms pulse broadening in ns/km due to material dispersion in sec/m
rM1=rm1*10**9## rms pulse broadening in ns/km due to intermodel dispersion in ns/km
rmt=sqrt(rM**2+rM1**2)## total rms pulse broadening in ns/km
bl=0.2/(rmt*10**-9)## bandwidth length product in Hz km
bL=bl/10**6## bandwidth length product in MHz km
print "The total rms pulse broadening =%0.2f ns/km"%(rmt)#
print "\n The bandwidth length product =%0.2f MHz km"%(bL)
The total rms pulse broadening =22.40 ns/km

 The bandwidth length product =8.93 MHz km

Ex:5.10 Pg: 204

In [10]:
from __future__ import division
yo=1320## zero dispersion wavelength in nm
y=1290## dispersion wavelength in nm
so=0.092## dispersion slop
dt=(y*so/4)*(1-(yo/y)**4)## toal first order dispersion at 1290 nm in ps/nm/km
yo1=1310## zero dispersion wavelength in um
y1=1550## dispersion wavelength in nm
so=0.092## dispersion slop
dt1=(y1*so/4)*(1-(yo1/y1)**4)## toal first order dispersion at 1550 nm in ps/nm/km
DM=13.5## profile dispersion in ps/nm/km
DP=0.4## profile dispersion in ps/nm/km
DW=dt1-(DM+DP)## wavelength dispersion in ps/nm/km
print "The toal first order dispersion at 1290 nm =%0.2f ps/nm/km"%( dt)#
print "\n The toal first order dispersion at 1550 nm =%0.2f ps/nm/km"%( dt1)#
print "\n The wavelength dispersion at 1550 nm =%0.2f ps/nm/km"%( DW)
The toal first order dispersion at 1290 nm =-2.86 ps/nm/km

 The toal first order dispersion at 1550 nm =17.46 ps/nm/km

 The wavelength dispersion at 1550 nm =3.56 ps/nm/km

Ex:5.11 Pg: 205

In [11]:
from __future__ import division
L=6*10**-2## beat length in m
dy=6*10**-9## spectral width in m
y=1.3*10**-6## operating wavelength in m
BF=y/(L)##model birefrigence in um
Lc=y**2/(BF*dy)## coherence length in m
db=2*3.14/(L)## difference beween two propagation constants
dB=(2*3.14*BF)/y#
print "The model birefrigence =%0.2f um"%( BF*10**6)#
print "\n The coherence length=%0.2f m"%( Lc)#
print "\n The difference beween two propagation constants=%0.2f"%( db)#
print "\n The difference beween two propagation constants=%0.2f"%( dB)
The model birefrigence =21.67 um

 The coherence length=13.00 m

 The difference beween two propagation constants=104.67

 The difference beween two propagation constants=104.67

Ex:5.12 Pg: 206

In [12]:
from __future__ import division
y=0.85*10**-6## operating wavelength in m
L=0.5*10**-3## beat length in m
BF=y/(L)##model birefrigence in um
L1=75## beat length in m
BF1=y/(L1)##model birefrigence in um
print "The model birefrigenceat 0.5 nm =%0.2f*10**-3"%( BF)#
print "\n The model birefrigence at 75 m =%0.2f*10**-8 "%( BF1*10**8)#
The model birefrigenceat 0.5 nm =0.00*10**-3

 The model birefrigence at 75 m =1.13*10**-8 

Ex:5.13 Pg: 206

In [13]:
from __future__ import division
Lc=100000## coherence length in m
y=1.32*10**-6## operating wavelength in m
dy=1.5*10**-9## spectral width in m
BF=y**2/(Lc*dy)##model birefrigence in um
L=y/BF## beat length in m
print "The beat length=%0.2f m"%( L)
The beat length=113.64 m

Ex:5.14 Pg: 206

In [14]:
from math import sqrt
from __future__ import division
n1=1.46## core refractive index
NA=0.25## numerical aperture
c=3*10**5## the speed of light km/s
L=7## length in km
si=NA**2/(4*sqrt(3)*n1*c)##intermodel pulse broadening ns/km
st=si*L##total intermodel pulse broadening
BW=0.187/st## bandwidth in MHz
print "The intermodel pulse broadening =%0.2f ns/km"%( st*10**9)#
print "\n The bandwidth =%0.2f MHz"%( BW/10**6)
The intermodel pulse broadening =144.17 ns/km

 The bandwidth =1.30 MHz

Ex:5.15 Pg: 207

In [15]:
from __future__ import division
n1=1.46## core refractive index
df=0.025#
L=500## length in m
c=3*10**8## the speed of light in m/s
dt=(n1*L*df**2)/(8*c)## max dispersion in ns/m
print "The  max dispersion =%0.2f ns/m"%( dt*10**9)#
print "\n The answer in the textbook is wrong"
The  max dispersion =0.19 ns/m

 The answer in the textbook is wrong

Ex:5.16 Pg: 207

In [17]:
from __future__ import division
dy=15## spectral width in nm
L=25## optical length in km
ps=1.60##pulse spreads in ns/km
pS=1.6## pulse spreads in ns/km
d=pS/(dy*L)## material dispersion in ns/km**2/nm
print "The  max dispersion =%0.2e ns/km**2/nm"%( d)
The  max dispersion =4.27e-03 ns/km**2/nm

Ex:5.17 Pg: 208

In [18]:
from __future__ import division
n1=1.46## core refractive index
NA=0.2## numerical aperture
L=1.5*10**3## length in m
c=3*10**8## the spee of light in m/s
dt=(L*NA**2)/(2*c*n1)##intermodel dispersion in ns/km
print "The intermodel dispersion =%0.2f ns/km"%( dt*10**9)
The intermodel dispersion =68.49 ns/km

Ex:3.18 Pg: 209

In [19]:
from math import sqrt
from __future__ import division
BLP=250*10**6## bandwidth length product in Hz
tr=0.32/BLP## intermodel pulse width broadening
md=75## material dispersion in ps/nm.km
tm=2.25##pulse broadening due to material dispersion in ns/km
tc=sqrt((tr*10**9)**2+tm**2)## combine pulse broadening in ns/km
Ba=0.32/tm*10**9## actual BLP in Hz.km
Bac=Ba/10**6## actual BLP in MHz.km
print "The intermodel pulse width broadening =%0.2f ns/km"%( tr*10**9)#
print "\n pulse broadening due to material dispersion =%0.2f ns/km"%( tm)#
print "\n The combine pulse broadening =%0.2f ns/km"%( tc)#
print "\n The actual BLP =%0.2f MHz.km"%( Bac)
The intermodel pulse width broadening =1.28 ns/km

 pulse broadening due to material dispersion =2.25 ns/km

 The combine pulse broadening =2.59 ns/km

 The actual BLP =142.22 MHz.km

Ex:5.19 Pg: 209

In [20]:
from __future__ import division
L=40## length in m
Ny=.75## in ps/nm
dy=8## spectral width in nm
t_mat=L*Ny*dy## chromatic/material dispersion in ps
t_mat1=t_mat/1000## chromatic/material dispersion in ns
print "The chromatic/material dispersion =%0.2f ns"%( t_mat1)
The chromatic/material dispersion =0.24 ns

Ex:5.20 Pg: 210

In [21]:
from math import sqrt
from __future__ import division
y=1.3## operating wavelength in um
md=2.80## material dispersion in ns
wd=0.50## waveguide dispersion in ns
wt=0.60## width of transmitted pulse in ns
td=sqrt(md**2+wd**2)## total dispersion in ns
dt=wt+td## received pulse width in ns
br=1/(5*dt*10**-9)## max bit rate bit/sec
Br=br/10**6## max bit rate in mbps
print "The received pulse width =%0.2f ns"%( dt)#
print "\n The  max bit rate =%0.2f mbps"%( Br)
The received pulse width =3.44 ns

 The  max bit rate =58.07 mbps

Ex:5.21 Pg: 210

In [22]:
from math import sqrt
from __future__ import division
y=0.85## operating wavelength in um
md=2.75## material dispersion in ns
wd=0.45## waveguide dispersion in ns
wt=0.50## width of transmitted pulse in ns
td=sqrt(md**2+wd**2)## total dispersion in ns
dt=wt+td## received pulse width in ns
br=1/(5*dt*10**-9)## max bit rate bit/sec
Br=br/10**6## max bit rate in mbps
print "The received pulse width =%0.2f ns"%( dt)#
print "\n The  max bit rate =%0.2f mbps"%( Br)
The received pulse width =3.29 ns

 The  max bit rate =60.85 mbps

Ex:5.22 Pg: 211

In [23]:
from __future__ import division
n1=1.46## core refractive index
df=0.025#
L=1500## length in meter
c=3*10**8## the speed of ligth in m/s
md=(n1*L*df)/(c*(1-df))## max dispersion in sec
Md=md*10**9## max dispersion in ns
print "The max dispersion =%d ns"%( Md)
The max dispersion =187 ns

Ex:5.23 Pg: 212

In [24]:
from __future__ import division
n1=1.5## core refractive index
L=1000## length in meter
NA=0.22## numerical aperture
dl=(NA/n1)**2/2#
c=3*10**8## the speed of ligth in m/s
dt=(L*n1*dl)/c##intermodel dispersion in sec
dT=dt*10**9##intermodel dispersion in ns
print "The max dispersion =%d ns"%( dT)
The max dispersion =53 ns

Ex:5.24 Pg: 212

In [25]:
from math import sqrt
from __future__ import division
w=30## line width in nm
L=1.5## length in km
d1=6## in ns/km
d2=85## in ps/km/nm
d3=d2/1000## in ns/km/nm
dt=d1*L## intermodel dispersion in ns
dt1=w*d3*L## intramodel dispersion in ns
dT=sqrt(dt**2+dt1**2)## total dispersion in ns
print "The max dispersion =%d ns"%( dt)#
print "\n The max dispersion =%0.2f ns"%( dt1)#
print "\n The max dispersion =%0.2f ns"%( dT)#
print "\n answer in the textbook is wrong"
The max dispersion =9 ns

 The max dispersion =3.83 ns

 The max dispersion =9.78 ns

 answer in the textbook is wrong

Ex:5.25 Pg: 213

In [26]:
from __future__ import division
n1=1.55## core refractive index
n2=1.48## cladding refractive index
l=150##fiber length in m
c=3*10**8##the speed of light in m/s
dl=(n1**2-n2**2)/(2*n1)#
dL=0.068#
dt=(l*n1*dL)/(c)## intermodel dispersion in s
dT=dt*10**9## intermodel dispersion in ns
print "The intermodel dispersion =%0.2f ns"%( dT)
The intermodel dispersion =52.70 ns

Ex:5.29 Pg: 214

In [27]:
from __future__ import division
n1=1.42## core refractive index
dl=0.02#
c=3*10**8##the speed of light in m/s
dt=(n1*dl)/c## intermodel disersion in sec/m
dt1=dt*1000## intermodel disersion in sec/km
dt2=dt1*10**9## intermodel disersion in ns/km
print "The intermodel dispersion per km =%0.2f ns/km"%( dt2)
The intermodel dispersion per km =94.67 ns/km

Ex:5.28 Pg: 214

In [28]:
from __future__ import division
y=900## operating wavelength in nm
yo=1343## wavelength in nm
so=0.095## in ps/nm**2-km
L=150## in km
dy=50##in nm
Dy=(so*y/4)*(1-(yo/y)**4)## inps/nm-km
Dy1=Dy*(-1)## do not consider -ve sign
dt=Dy1*L*dy## pulse spreading in ps
dt1=dt/1000## pulse spreading in ns
print "The pulse spreading =%0.2f ns"%( dt1)
The pulse spreading =634.57 ns

Ex:5.29 Pg: 215

In [29]:
from __future__ import division
n1=1.48## core refractive index
y=900## operating wavelength in nm
yo=1343## wavelength in nm
so=0.095## in ps/nm**2-km
L=1.5## in km
dy=50##in nm
dl=0.002#
c=3*10**8## the speed of ligth in m/s
Dm=(so*y/4)*(1-(yo/y)**4)## inps/nm-km
Dm1=Dm*(-1)## do not consider -ve sign
Vd=0.26#
Dw=((n1*dl)/(c*y*10**-9))*(Vd)#
DW=Dw*10**6## in ps/nm-km
dt=DW*L*dy## pulse spreading in ps
dt1=dt/100## pulse spreading in ns
print "The pulse spreading =%0.2f ps"%( dt1)
The pulse spreading =2.14 ps

Ex:5.30 Pg: 215

In [30]:
from math import sqrt
from __future__ import division
a=4.1*10**-6## core radius in um
dl=0.0036#
y1=1.310*10**-6## operating wavelength in um
y2=1.550*10**-6## operating wavelength in um
n1=1.4677## core refrative index at y=1.310
n2=1.4682## core refrative index at y=1.550
v1=(2*3.14*a*n1*sqrt(2*dl))/y1## normalised frequency at y=1.310
v2=(2*3.14*a*n2*sqrt(2*dl))/y2## normalised frequency at y=1.550
wo=a*(0.65+(1.619/v1**1.5)+2.879/v1**3)#
wp=wo-a*(0.016+1.567/v1**7)#
wo1=a*(0.65+(1.619/v2**1.5)+2.879/v2**3)#
wp1=wo-a*(0.016+1.567/v2**7)#
print "The value of wo =%0.2f um"%( wo*10**6)#
print "\n The value of wp =%0.2f um"%( wp*10**6)#
print "\n The value of wo1 =%0.2f um"%( wo1*10**6)#
print "\n The value of wp1 =%0.2f um"%( wp1*10**6)
The value of wo =5.20 um

 The value of wp =5.13 um

 The value of wo1 =6.23 um

 The value of wp1 =5.10 um

Ex:5.31 Pg: 215

In [31]:
from __future__ import division
y=1.30*10**-6## operating wavelength in m
dn1=10**-6#
dn2=10**-5#
db1=(dn1*2*3.14)/y## in per m
db2=(dn2*2*3.14)/y## in per m
Lp1=(2*3.14)/(db1)## beat length in m
Lp2=(2*3.14)/(db2)## beat length in m
print "The max core radius =%0.2f um"%( db1)#
print "\n The max core radius =%0.2f um"%( db2)#
print "\n The beat length =%0.2f m"%( Lp1)#
print "\n The beat length =%0.2f cm"%( Lp2*100)#
print "\n Hence, range of beat length# 13cm-1.3m"
The max core radius =4.83 um

 The max core radius =48.31 um

 The beat length =1.30 m

 The beat length =13.00 cm

 Hence, range of beat length# 13cm-1.3m

Ex:5.32 Pg: 216

In [32]:
from math import sqrt
from __future__ import division
n1=1.48## core refractive index
dl=0.0027#
a=4.4*10**-6## radius in m
y=1.32*10**-6## operating wavelength in m
n2=n1*(1-dl)#
c=3*10**8## the speed of ligth in m/s
v=(2*3.14*a*n1*sqrt(2*dl))/y#
VD=0.080+0.549*(2.834-v)**2#
DW=(-1)*(n2*dl*VD)/(c*y)## wavelength dispersion in s /um/m
Dw=DW*10**6## wavelength dispersion in ps /nm/km
print "The wavelength dispersion =%0.2f ps n/m/km"%( Dw)
The wavelength dispersion =-2.52 ps n/m/km

Exa:5.33 Pg: 216

In [33]:
from math import sqrt,pi
from __future__ import division
n1=1.48## core refractive index
dl=0.01## refractive index difference
c=3*10**8## the speed of light in m/s
y=1.55## wavelength in um
DM=7## in ps/nm-km
DW=(-1)*DM## in ps/nm-km
X=-10**12*(n1*dl)/(c*y)## in ps/nm/km
Z=(DW/X)-0.08## 
V=2.834-sqrt(Z/0.549)#
a=(V*y)/(2*pi*n1*sqrt(2*dl))## core radius in um
print "The core radius =%0.2f um"%( a)
The core radius =2.75 um