11: Fibre Optics

Example number 11.1, Page number 11.16

In [21]:
#importing modules
import math
from __future__ import division

#Variable declaration
n1=1.48;      #refractive index of core
n2=1.45;      #refractive index of cladding

#Calculation
NA=math.sqrt((n1**2)-(n2**2));     #numerical aperture
theta0=math.asin(NA);     #acceptance angle(radian)
theta0=theta0*180/math.pi;    #acceptance angle(degrees)
theta0_m=60*(theta0-int(theta0));
thetac=math.asin(n2/n1);     #critical angle(radian)
thetac=thetac*180/math.pi;    #critical angle(degrees)
thetac_m=60*(thetac-int(thetac));
delta=(n1-n2)/n1;      #fractional refractive indices change

#Result
print "numerical aperture is",round(NA,4)
print "acceptance angle is",int(theta0),"degrees",round(theta0_m),"minutes"
print "critical angle is",int(thetac),"degrees",int(thetac_m),"minutes"
print "fractional refractive indices change is",round(delta,2)
numerical aperture is 0.2965
acceptance angle is 17 degrees 15.0 minutes
critical angle is 78 degrees 26 minutes
fractional refractive indices change is 0.02

Example number 11.2, Page number 11.17

In [23]:
#importing modules
import math
from __future__ import division

#Variable declaration
n1=1.563;      #refractive index of core
n2=1.498;      #refractive index of cladding

#Calculation
NA=math.sqrt((n1**2)-(n2**2));     #numerical aperture
theta0=math.asin(NA);     #acceptance angle(radian)
theta0=theta0*180/math.pi;    #acceptance angle(degrees)
theta0_m=60*(theta0-int(theta0));

#Result
print "numerical aperture is",round(NA,3)
print "acceptance angle is",int(theta0),"degrees",round(theta0_m,1),"minutes"
print "answer varies due to rounding off errors"
numerical aperture is 0.446
acceptance angle is 26 degrees 29.5 minutes
answer varies due to rounding off errors

Example number 11.3, Page number 11.17

In [24]:
#importing modules
import math
from __future__ import division

#Variable declaration
n1=1.563;      #refractive index of core
n2=1.498;      #refractive index of cladding

#Calculation
delta=(n1-n2)/n1;      #fractional refractive indices change

#Result
print "fractional refractive indices change is",round(delta,4)
fractional refractive indices change is 0.0416

Example number 11.4, Page number 11.17

In [25]:
#importing modules
import math
from __future__ import division

#Variable declaration
n1=1.55;      #refractive index of core
n2=1.50;      #refractive index of cladding

#Calculation
NA=math.sqrt((n1**2)-(n2**2));     #numerical aperture

#Result
print "numerical aperture is",round(NA,4)
numerical aperture is 0.3905

Example number 11.5, Page number 11.18

In [26]:
#importing modules
import math
from __future__ import division

#Variable declaration
NA=0.39;     #numerical aperture
n1_n2=0.05;    #difference in refractive indices

#Calculation
x=NA**2/n1_n2;
n2=(x-n1_n2)/2;     #refractive index of cladding
n1=n2+n1_n2;      #refractive index of core

#Result
print "refractive index of core is",n1
print "refractive index of cladding is",n2
refractive index of core is 1.546
refractive index of cladding is 1.496

Example number 11.6, Page number 11.18

In [27]:
#importing modules
import math
from __future__ import division

#Variable declaration
n1=1.55;      #refractive index of core
n2=1.50;      #refractive index of cladding

#Calculation
NA=math.sqrt((n1**2)-(n2**2));     #numerical aperture

#Result
print "numerical aperture is",round(NA,4)
numerical aperture is 0.3905

Example number 11.7, Page number 11.18

In [28]:
#importing modules
import math
from __future__ import division

#Variable declaration
n1=1.48;      #refractive index of core
n2=1.45;      #refractive index of cladding

#Calculation
NA=math.sqrt((n1**2)-(n2**2));     #numerical aperture
theta0=math.asin(NA);     #acceptance angle(radian)
theta0=theta0*180/math.pi;    #acceptance angle(degrees)
theta0_m=60*(theta0-int(theta0));

#Result
print "numerical aperture is",round(NA,4)
print "acceptance angle is",int(theta0),"degrees",round(theta0_m),"minutes"
numerical aperture is 0.2965
acceptance angle is 17 degrees 15.0 minutes

Example number 11.8, Page number 11.19

In [29]:
#importing modules
import math
from __future__ import division

#Variable declaration
NA=0.33;     #numerical aperture
delta=0.02;     #fractional refractive indices change

#Calculation
x=1-delta
y=math.sqrt(1-x**2);
n1=NA/y;       #refractive index of core
n2=n1*x;       #refractive index of cladding

#Result
print "refractive index of core is",round(n1,4)
print "refractive index of cladding is",round(n2,3)
refractive index of core is 1.6583
refractive index of cladding is 1.625

Example number 11.9, Page number 11.19

In [31]:
#importing modules
import math
from __future__ import division

#Variable declaration
NA=0.20;     #numerical aperture
n2=1.59;     #refractive index of cladding
n0=1.33;     #refractive index of water

#Calculation
n1=math.sqrt(NA**2+n2**2);      #refractive index of core
theta0=math.asin(NA/n0);       #acceptance angle(radian)
theta0=theta0*180/math.pi;    #acceptance angle(degrees)
theta0_m=60*(theta0-int(theta0));
theta0_s=60*(theta0_m-int(theta0_m));

#Result
print "acceptance angle is",int(theta0),"degrees",int(theta0_m),"minutes",round(theta0_s,1),"seconds"
print "answer varies due to rounding off errors"
acceptance angle is 8 degrees 38 minutes 55.4 seconds
answer varies due to rounding off errors

Example number 11.10, Page number 11.20

In [32]:
#importing modules
import math
from __future__ import division

#Variable declaration
n1=1.45;      #refractive index of core
n2=1.44;      #refractive index of cladding

#Calculation
delta=(n1-n2)/n1;      #fractional refractive indices change

#Result
print "fractional refractive indices change is",round(delta*10**3,4),"*10**-3"
fractional refractive indices change is 6.8966 *10**-3

Example number 11.11, Page number 11.20

In [33]:
#importing modules
import math
from __future__ import division

#Variable declaration
n1=1.50;      #refractive index of core
delta=4/100;    #fractional refractive indices change

#Calculation
n2=n1-(n1*delta);      #refractive index of cladding
NA=math.sqrt((n1**2)-(n2**2));     #numerical aperture
theta0=math.asin(NA);     #acceptance angle(radian)
theta0=theta0*180/math.pi;    #acceptance angle(degrees)
theta0_m=60*(theta0-int(theta0));
thetac=math.asin(n2/n1);     #critical angle(radian)
thetac=thetac*180/math.pi;    #critical angle(degrees)
thetac_m=60*(thetac-int(thetac));

#Result
print "refractive index of cladding is",n2
print "numerical aperture is",round(NA,2)
print "acceptance angle is",int(theta0),"degrees",int(theta0_m),"minutes"
print "critical angle is",int(thetac),"degrees",int(thetac_m),"minutes"
refractive index of cladding is 1.44
numerical aperture is 0.42
acceptance angle is 24 degrees 50 minutes
critical angle is 73 degrees 44 minutes

Example number 11.12, Page number 11.21

In [37]:
#importing modules
import math
from __future__ import division

#Variable declaration
n1=1.563;      #refractive index of core
n2=1.498;      #refractive index of cladding

#Calculation
NA=math.sqrt((n1**2)-(n2**2));     #numerical aperture
theta0=math.asin(NA);     #acceptance angle(radian)
theta0=theta0*180/math.pi;    #acceptance angle(degrees)
theta0_m=60*(theta0-int(theta0));

#Result
print "numerical aperture is",round(NA,3)
print "acceptance angle is",int(theta0),"degrees",round(theta0_m,1),"minutes"
print "answer varies due to rounding off errors"
numerical aperture is 0.446
acceptance angle is 26 degrees 29.5 minutes
answer varies due to rounding off errors