11: Fibre Optics

Example number 1, Page number 11-16

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

#Variable declaration
n1=1.48;          #Core refractive index
n2=1.45;          #Cladding refractive index

#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)
theta0m=60*(theta0-int(theta0)); #acceptance angle(minutes)
thetac=math.asin(n2/n1);      #critical angle(radian)
thetac=thetac*180/math.pi;    #critical angle(degrees)
thetacm=60*(thetac-int(thetac)); #critical angle(minutes)
delta=(n1-n2)/n1;             #fractional index change

#Result
print "numerical aperture is",round(NA,4)
print "acceptance angle is",int(theta0),"degrees",int(round(theta0m)),"minutes"
print "critical angle is",int(thetac),"degrees",int(thetacm),"minutes"
print "fractional index change is",round(delta,2)
numerical aperture is 0.2965
acceptance angle is 17 degrees 15 minutes
answer in the book varies due to rounding off errors
critical angle is 78 degrees 26 minutes
fractional index change is 0.02

Example number 2, Page number 11-17

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

#Variable declaration
n1=1.563;          #Core refractive index
n2=1.498;          #Cladding refractive index

#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)
theta0m=60*(theta0-int(theta0)); #acceptance angle(minutes)

#Resul"
print "numerical aperture is",round(NA,3)
print "acceptance angle is",int(theta0),"degrees",int(theta0m),"minutes"
print "answer for angle in minutes given in the book varies due to rounding off errors"
numerical aperture is 0.446
acceptance angle is 26 degrees 29 minutes
answer for angle in minutes given in the book varies due to rounding off errors

Example number 3, Page number 11-17

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

#Variable declaration
n1=1.563;          #Core refractive index
n2=1.498;          #Cladding refractive index

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

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

Example number 4, Page number 11-17

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

#Variable declaration
n1=1.55;          #Core refractive index
n2=1.50;          #Cladding refractive index

#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 5, Page number 11-18

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

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

#Calculation
n1n2=NA**2/n1_n2;    
n2=(n1n2-n1_n2)/2;      #Cladding refractive index
n1=n2+n1_n2;            #Core refractive index

#Result
print "Cladding refractive index is",n2
print "Core refractive index is",n1
Cladding refractive index is 1.496
Core refractive index is 1.546

Example number 6, Page number 11-18

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

#Variable declaration
n1=1.55;          #Core refractive index
n2=1.50;          #Cladding refractive index

#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 7, Page number 11-18

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

#Variable declaration
n1=1.48;          #Core refractive index
n2=1.45;          #Cladding refractive index

#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)
theta0m=60*(theta0-int(theta0)); #acceptance angle(minutes)

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

Example number 8, Page number 11-19

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

#Variable declaration
NA=0.33;    #numerical aperture
delta=0.02;     #refractive index of cladding

#Calculation
x=1-delta;
n1=math.sqrt(NA**2/(1-x**2));    #refractive index of core 
n2=x*n1;                         #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 9, Page number 11-19

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

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

#Calculation
n1=math.sqrt((NA**2)+(n2**2));     #core refractive index
x=math.sqrt((n1**2)-(n2**2))/n0;
theta0=math.asin(x);          #acceptance angle(radian)
theta0=theta0*180/math.pi;    #acceptance angle(degrees)
theta0m=60*(theta0-int(theta0)); #acceptance angle(minutes)
theta0s=60*(theta0m-int(theta0m)); #acceptance angle(seconds)

#Resul"
print "acceptance angle is",int(theta0),"degrees",int(theta0m),"minutes",int(theta0s),"seconds"
print "answer for angle in seconds given in the book varies due to rounding off errors"
acceptance angle is 8 degrees 38 minutes 55 seconds
answer for angle in seconds given in the book varies due to rounding off errors

Example number 10, Page number 11-20

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

#Variable declaration
n1=1.45;          #Core refractive index
n2=1.44;          #Cladding refractive index

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

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

Example number 11, Page number 11-20

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

#Variable declaration
n1=1.50;          #Core refractive index
delta=4/100;      #fractional index change

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

#Result
print "Cladding refractive index is",n2
print "numerical aperture is",NA
print "acceptance angle is",int(theta0),"degrees",int(round(theta0m)),"minutes"
print "critical angle is",int(thetac),"degrees",int(thetacm),"minutes"
Cladding refractive index is 1.44
numerical aperture is 0.42
acceptance angle is 24 degrees 50 minutes
critical angle is 73 degrees 44 minutes

Example number 12, Page number 11-21

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

#Variable declaration
n1=1.563;          #Core refractive index
n2=1.498;          #Cladding refractive index

#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)
theta0m=60*(theta0-int(theta0)); #acceptance angle(minutes)

#Result
print "numerical aperture is",round(NA,3)
print "acceptance angle is",int(theta0),"degrees",int(round(theta0m)),"minutes"
print "answer for angle in minutes given in the book varies due to rounding off errors"
numerical aperture is 0.446
acceptance angle is 26 degrees 29 minutes
answer for angle in minutes given in the book varies due to rounding off errors