# Ch-3 : Modes and Rays¶

## Ex:3.1 Pg: 84¶

In [2]:
from math import sqrt,pi
from __future__ import division
n1=1.50## core refractive index
y=1.3*10**-6#
m=1000## the no. of models
v=sqrt(2*m)#

core radius=37.90 micrometer


## Ex:3.2 Pg: 84¶

In [3]:
from math import sqrt,pi
from __future__ import division
n1=1.505## core refractive index
n_m=sqrt(n1**2-n2**2)## numerical aperture
y=1.3*10**-6#
v=2.4#
print "numerical aperture=%0.2f"%(n_m)#

numerical aperture=0.09



## Ex:3.3 Pg: 85¶

In [4]:
from math import sqrt,pi
from __future__ import division
n1=1.5## core refractive index
dl=0.01##index difference
m=0## for the dominant mode
v=0## for the dominant mode
y=1.3## in micrometer
k=(2*pi)/y#
b=k**2*n1**2-(2*k*n1*sqrt(2*dl))/a#

propagation constant=7.22 rad/um


## Ex:3.5 Pg: 85¶

In [5]:
from math import sqrt,pi,ceil
from __future__ import division
n1=3.6## core refractive index
d=2.0## thickness in um
y=0.8## wavelength in um
m=(2*d*sqrt(n1**2-n2**2))/y## total no. of models allowed
M=ceil(m)## total no. of models allowed
print "total no. of models allowed=%d"%(M)

total no. of models allowed=8


## Ex:3.6 Pg: 86¶

In [6]:
from math import sqrt,pi,ceil
from __future__ import division
n1=1.48## core refractive index
dl=0.015## index difference
y=0.85*(10**-6)## wavelength in um
v=(2*pi*a*n1*sqrt(2*dl))/y## normalised frequency
M=v**2/2#
m=ceil(M)## the total no. of guided  modes
print "normalised frequency=%0.2f"%(v)#
print "\n the total no. of guided  modess =%d"%(m)

normalised frequency=75.80

the total no. of guided  modess =2873


## Ex:3.7 Pg: 87¶

In [7]:
from math import sqrt,pi
from __future__ import division
n1=1.46## core refractive index
dl=0.015## index difference
y=0.85*(10**-6)## wavelength in um
v=(2*pi*a*n1*sqrt(2*dl))/y## normalised frequency
M=v**2/2## the total no. of guided  modes
print "\n normalised frequency=%0.2f"%(v)#
print "\n the total no. of guided  modess =%d"%(M)

cladding refractive index=1.44

normalised frequency=56.08

the total no. of guided  modess =1572


## Ex:3.8 Pg: 87¶

In [8]:
from math import sqrt,pi
from __future__ import division
n1=1.5## core refractive index
dl=0.01## index difference
M=1100## the total no. of guided  modes
y=1.3*(10**-6)## wavelength in um
v=sqrt(2*M)## normalised frequency
print "normalised frequency=%0.2f"%(v)#
print "\n the diameter of the fiber core =%0.2f um"%(2*a)

normalised frequency=46.90

the diameter of the fiber core =91.50 um


## Ex:3.9 Pg: 87¶

In [9]:
from math import sqrt,pi
from __future__ import division
n1=1.45## core refractive index
n_m=0.16## numerical aperture
y=0.5*(10**-6)## wavelength in um
v=(2*pi*a*n_m)/y## normalised frequency
print "normalised frequency=%0.2f"%(v)

normalised frequency=60.32


## Ex:3.10 Pg: 88¶

In [10]:
from math import sqrt,pi
from __future__ import division
n1=3.6## core refractive index
y=0.85*(10**-6)## wavelength in um
m=1#
n=0#
v_c=2.405## for planner guide
print "the max thickness=%0.2f um"%(a*10**6)

the max thickness=0.61 um


## Ex:3.11 Pg: 88¶

In [13]:
from math import pi,sqrt,ceil
from __future__ import division
n1=1.5 #core refractive index
y=1.3*(10**-6) #wavelength in um
M=1100 #total no. of models
dl=0.01 #index difference
v=sqrt(2*M) #
V=ceil(v) #
print "the core diameter=%d um"%(2*a1)

the core diameter=92 um


## Ex:3.12 Pg: 89¶

In [11]:
from math import sqrt,pi
from __future__ import division
n1=1.45## core refractive index
dl=0.015## index difference
y=0.85*(10**-6)## wavelength in meter
v=2.4*(1+(2/2))**(0.5)## Max normalised frequency
a=(v*y)/(2*pi*n1*(2*dl)**(0.5))## Max core radius in m
d=2*a## The max core diameter in meter
print "The max core diameter in meter=%0.2f um"%( d*10**6)

The max core diameter in meter=3.66 um


## Ex:3.13 Pg: 89¶

In [14]:
from math import sqrt,pi
from __future__ import division
n1=1.48## core refractive index
y=0.85## wavelength in um
dl=(n1-n2)/n1## index difference
v=(2*pi*a*n1*(2*dl)**(0.5))/y## the normaised frequency
M=(v*v)/2## number of modes
print "The number of modes=%0.2f"%( M)

The number of modes=10.11


## Ex:3.14 Pg: 90¶

In [15]:
from math import sqrt,pi
from __future__ import division
y=1.3## wavelength in um
v=26.6## the normaised frequency
NA=(v*y)/(2*pi*a)## Numerical aperture
a_c=pi*(NA)**2#
M=(v*v)/2#
print "The number of modes=%0.2f"%( NA)#
print "\n The number of modes=%0.2f"%( a_c)#
print "\n answer in textbook is wrong"#
print "\n The number of modes=%0.2f"%( M)

The number of modes=0.22

The number of modes=0.15

The number of modes=353.78


## Ex:3.15 Pg: 90¶

In [16]:
from __future__ import division
n1=1.49## core refractive index
dl=(n1-n2)/n1## index difference
v_c=2.405#
y_c=(2*3.14*a*n1*(2*dl)**(0.5))/v_c## cut off wavelength in um
Y=1.31## wavelength in um
A=(v_c*Y)/(2*3.14*n1*(2*dl)**(0.5))## min core radius in um
print "The cut off wavelength =%0.2f um"%( y_c)#
print "\n The min core radius =%0.2f um"%( A)

The cut off wavelength =1.27 um

The min core radius =2.05 um


## Ex:3.16 Pg: 91¶

In [17]:
from math import sqrt,pi
from __future__ import division
NA=0.3## Numerical aperture
y=1## wavelength in um
v=(2*pi*a*NA)/y## the normalised frequency
V=47.1## the normalised frequency
M=(V*V)/4## The mode volume
print "The normalised frequency =%0.2f"%( v)#
print "\n The mode volume =%d guided modes"%( M)

The normalised frequency =47.12

The mode volume =554 guided modes


## Ex:3.17 Pg: 91¶

In [18]:
from __future__ import division
n1=1.46## core refractive index
dl=0.0025## relative index difference
v_c=2.405#
y_c=(2*3.14*a*n1*(2*dl)**(0.5))/v_c## cut off wavelength in um
print "The cut off wavelength =%0.2f um"%( y_c)

The cut off wavelength =1.21 um


## Ex:3.18 Pg: 92¶

In [19]:
from math import sqrt,pi
from __future__ import division
n1=1.5## core refractive index
y=1.3## operating wavelength in um
NA=sqrt(n1**2-n2**2)## numerical aperture
N_A=0.38#
v=(2*pi*a*N_A)/y## cut of numbers
M=v**2/2## number of modes
print "The cut of numbers =%0.2f"%( v)#
print "\n The number of modes =%0.2f"%( M)

The cut of numbers =91.83

The number of modes =4216.48


## Ex:3.19 Pg: 92¶

In [20]:
from math import sqrt,pi
from __future__ import division
n1=1.53## core refractive index
y=1.5## operating wavelength in um
NA=sqrt(n1**2-n2**2)## numerical aperture
print "The max core radius =%0.2f um"%( a)

The max core radius =1.91 um


## Ex:3.20 Pg: 92¶

In [21]:
from math import sqrt,pi
from __future__ import division
y=0.8## operating wavelength in um
NA=0.343## numerical aperture
v=(2*pi*a*NA)/y## v-number
M=v**2/2##number of modes
print "The v-number =%0.2f"%( v)#
print "\n The number of modes =%0.2f"%( M)

The v-number =67.35

The number of modes =2267.87


## Ex:3.21 Pg: 93¶

In [22]:
from math import sqrt,pi
from __future__ import division
n1=1.5## core refractive index
NA=0.38## numerical aperture
v=75## v-number
y=1.3## operating wavelength in um
print "The core radius =%0.2f um"%( a)#
print "\n The cladding refractive index =%0.2f"%( n2)#
print "\n answer in textbook is wrong"

The core radius =40.84 um



## Ex:3.22 Pg: 94¶

In [23]:
from math import sqrt,pi
from __future__ import division
y=1.2## operating wavelength in um
w=5## spot size in um
x=(2*y)/(pi*w)## the divergence angle in degree
print "The divergence angle =%0.2f degree"%( x)

The divergence angle =0.15 degree


## Ex:3.23 Pg: 94¶

In [24]:
from math import sqrt,pi
from __future__ import division
n1=1.46## core refractive index
dl=0.0025## relative index difference
NA=n1*(sqrt(2*dl))## numerical aperture
v=2.405#
y=(2*pi*a*NA)/(v)## cut off wavelength in um
print "The cut off wavelength =%0.2f um"%( y)

The cut off wavelength =1.21 um


## Ex:3.24 Pg: 94¶

In [25]:
from math import sqrt,pi
from __future__ import division
n1=1.5## core refractive index
y1=0.87## operating wavelength in um
y2=1.5## operating wavelength in um
NA=sqrt(n1**2-n2**2)## numerical aperture
v1=(2*pi*a*NA)/y1#
v2=(2*pi*a*NA)/y2#
al=2## parabolic index profile for GRIN
M1=(al/(al+2))*(v1**2/2)## number of modes
M2=(al/(al+2))*(v2**2/2)## number of modes
print "The number of modes at 870 nm =%0.2f um"%( M1)#
print "\n The number of modes =%0.2f um"%( M2)

The number of modes at 870 nm =726.14 um

The number of modes =244.27 um


## Ex:3.25 Pg: 95¶

In [26]:
from math import sqrt,pi
from __future__ import division
n1=1.5## core refractive index
v=2.4## cut off parameter
y=0.85## operating wavelength in um
NA=sqrt(n1**2-n2**2)## numerical aperture
w=v*a## spot size
x=(2*y)/(3.4*w)## divergence angle in degree
d=50## distance in meter
w_s=(y*d)/(pi*w)## spot size at 50 meter
print "The numerical aperture =%0.2f um"%( NA)#
print "\n The max core radius =%0.2f um"%( a)#
print "\n The spot size =%0.2f um"%( w)#
print "\n The divergence angle =%0.2f degree"%( x)#
print "\n The spot size at 50 meter =%0.2f m"%( w_s)

The numerical aperture =0.34 um

The max core radius =0.94 um

The spot size =2.27 um

The divergence angle =0.22 degree

The spot size at 50 meter =5.97 m


## Ex:3.26 Pg: 95¶

In [27]:
from math import sqrt,pi
from __future__ import division
n1=1.53## core refractive index
y=1.2## wavelength in um
v=2.405#
print "The max diameter=%0.2f um"%(2*a)

The max diameter=3.05 um


## Ex:3.27 Pg: 95¶

In [29]:
from math import sqrt,pi
from __future__ import division
n1=1.47## core refractive index
y=1.3## wavelength in um
dl=(n1-n2)/n1## fractional refractive index diff
NA=sqrt(n1**2-n2**2)#
v=2.405#
a=(v*y)/(2*3.14*(sqrt(n1**2-n2**2)))## largest core radius in micrometer
n_eff=n1-(NA/(2*3.14*(a/y)))## fractional refractive index
print "The largest core radius =%0.2f um"%( a)#
print "\n The fractional refractive index=%0.2f"%(n_eff)

The largest core radius =2.91 um

The fractional refractive index=1.46


## Ex:3.28 Pg: 95¶

In [30]:
from math import sqrt,pi
from __future__ import division
n1=1.50## core refractive index
NA=sqrt(n1**2-n2**2)## numerical aperture
y=0.85## wavelength in um
v=(2*3.14*a*NA)/y## cut off parameter
M=v**2/2## number of modes
print "The cut off parameter =%0.2f"%( v)#
print "\n The number of modes =%d"%(M)

The cut off parameter =45.09

The number of modes =1016


## Ex:3.29 Pg: 96¶

In [31]:
from __future__ import division
n1=1.50## core refractive index
y=1.5## wavelength in um
v=2.405#
NA=(v*y)/(2*3.14*a)## numerical aperture
D=(NA/n1)**2/(2)## max value of D
print "The max value of D =%0.2f"%(D)#
print "\n The cladding refractive index =%0.2f"%(n2)

The max value of D =0.00



## Ex:3.30 Pg: 96¶

In [32]:
from math import sqrt,pi,asin
from __future__ import division
n1=1.52## core refractive index
y=0.85## wavelength in um
dl=(n1-n2)/n1## relative refractive index
x=(asin(n2/n1))*(180/3.14)## critical angle in degree
NA=sqrt(n1**2-n2**2)## numerical aperture
a_c=(asin(NA))*(180/3.14)## acceptance angle in degree
a_s=3.14*(n1**2-n2**2)## solid acceptance angle
v=(2*3.14*a*0.34)/y## normalise v-number
M=v**2/2## number of guided modes
a1=5## for single mode step fiber
v1=(2*3.14*a1*0.34)/y#
M1=v1**2/2#
R=M-M1## reduction in modes
print "The max value of D =%0.2f"%(dl)#
print "\n The critical angle =%0.2f degree"%(x)#
print "\n The acceptance angle =%0.2f degree"%(2*a_c)#
print "\n The solid acceptance angle =%0.2f degree"%(a_s)#
print "\n The numerical aperture =%0.2f"%(NA)#
print "\n The normalise v-number =%0.2f"%(v)#
print "\n The number of guided modes =%d"%(M)#
print "\n The reduction in modes =%d"%(R)

The max value of D =0.03

The critical angle =76.87 degree

The acceptance angle =40.56 degree

The solid acceptance angle =0.38 degree

The numerical aperture =0.35

The normalise v-number =113.04

The number of guided modes =6389

The reduction in modes =6310


## Ex:3.31 Pg: 97¶

In [33]:
from __future__ import division
n1=1.46## core refractive index
y=0.85## operating wavelength in um
NA=0.17## numerical aperture
v=(2*3.14*a*NA)/y##normalised frequency
M=v**2/2## number of modes
print "The normalised frequency =%0.2f"%( v)#
print "\n The number of modes =%d"%( M)

The normalised frequency =28.26

The number of modes =399