# 5: Fiber Optics¶

## Example number 1, Page number 166¶

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

#Variable declaration
n1=1.50;          #Core refractive index

#Calculation
phic=phic*180/math.pi;    #critical angle(degrees)
NA=math.sqrt(n1**2-n2**2);    #numerical aperture
phimax=math.asin(NA)*180/math.pi;    #acceptance angle(degrees)

#Result
print "critical angle is",round(phic,1),"degrees"
print "numerical aperture is",round(NA,1)
print "acceptance angle is",round(phimax,1),"degrees"

critical angle is 78.5 degrees
numerical aperture is 0.3
acceptance angle is 17.4 degrees


## Example number 2, Page number 166¶

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

#Variable declaration
n1=1.46;          #Core refractive index
delta=0.05;       #relative refractive index difference

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

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

numerical aperture is 0.46


## Example number 3, Page number 166¶

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

#Variable declaration
NA=0.3;    #numerical aperture

#Calculation
thetaa1=math.asin(NA);         #acceptance angle for meridional rays(radian)
thetaa1=thetaa1*180/math.pi;         #acceptance angle for meridional rays(degrees)
thetaa2=math.asin(NA/math.cos(gama))*180/math.pi;    #acceptance angle for skew rays(degrees)

#Result
print "acceptance angle for meridional rays is",round(thetaa1,2),"degrees"
print "acceptance angle for skew rays is",round(thetaa2,3),"degrees"
print "answer for acceptance angle for skew rays given in the textbook varies due to rounding off errors"

acceptance angle for meridional rays is 17.46 degrees
acceptance angle for skew rays is 25.104 degrees
answer for acceptance angle for skew rays given in the textbook varies due to rounding off errors


## Example number 4, Page number 166¶

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

#Variable declaration
n1=1.53;          #Core refractive index
delta=0.0196;       #relative refractive index difference

#Calculation
NA=n1*math.sqrt(2*delta);    #numerical aperture
thetaa=math.asin(NA)*180/math.pi;     #acceptance angle(degrees)

#Result
print "numerical aperture is",round(NA,3)
print "acceptance angle is",round(thetaa,3),"degrees"
print "answer for acceptance angle given in the textbook varies due to rounding off errors"

numerical aperture is 0.303
acceptance angle is 17.633 degrees
answer for acceptance angle given in the textbook varies due to rounding off errors


## Example number 5, Page number 166¶

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

#Variable declaration
n1=1.5;          #Core refractive index
L=1;             #distance(m)

#Calculation
phic=round(math.asin(n2/n1)*180/math.pi,2);       #critical angle(degrees)
l=2*a*math.tan(phicr);                #fibre length(m)
r=1/l;                        #number of reflections
od=L/math.sin(phicr);         #total distance travelled by light(m)

#Result
print "critical angle is",phic,"degrees"
print "fibre length is",round(l*10**6,2),"micro m"
print "answer for fibre length given in the book is wrong"
print "number of reflections is",int(r)
print "total distance travelled by light is",round(od,4),"m"

critical angle is 83.38 degrees
fibre length is 430.82 micro m
answer for fibre length given in the book is wrong
number of reflections is 2321
total distance travelled by light is 1.0067 m


## Example number 6, Page number 167¶

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

#Variable declaration
Pi=100;           #input power(micro W)
Po=2;             #output power(micro W)
L=10;             #length(m)

#Calculation
sa=(10/L)*math.log10(Pi/Po);      #signal attenuation per unit length(dB km-1)
osa=sa*L;         #overall signal attenuation(dB)

#Result
print "signal attenuation per unit length is",round(sa,1),"dB km-1"
print "overall signal attenuation is",int(round(osa)),"dB"

signal attenuation per unit length is 1.7 dB km-1
overall signal attenuation is 17 dB


## Example number 7, Page number 167¶

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

#Variable declaration
n=1.55;           #Core refractive index
L=10;             #length(m)
delta=0.026;      #relative refractive index difference
C=3*10**5;

#Calculation
deltaT=L*n*delta/C;         #total dispersion(s)
blp=L/(2*deltaT);           #bandwidth length product(Hz km)

#Result
print "total dispersion is",round(deltaT*10**9,1),"ns"
print "bandwidth length product is",round(blp/10**5,2),"*10**5 Hz km"
print "answer for bandwidth length product given in the book is wrong"

total dispersion is 1343.3 ns
bandwidth length product is 37.22 *10**5 Hz km
answer for bandwidth length product given in the book is wrong


## Example number 8, Page number 167¶

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

#Variable declaration
n1=1.55;          #Core refractive index

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

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

numerical aperture is 0.391


## Example number 9, Page number 167¶

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

#Variable declaration
n1=1.563;          #Core refractive index

#Calculation
NA=math.sqrt(n1**2-n2**2);    #numerical aperture
phimax=math.asin(NA)*180/math.pi;
phimaxd=int(phimax);          #acceptance angle(degrees)
phimaxm=60*(phimax-phimaxd);  #acceptance angle(minutes)

#Result
print "numerical aperture is",round(NA,4)
print "acceptance angle is",phimaxd,"degrees",round(phimaxm,1),"minutes"
print "answer for acceptance angle in minutes given in the book varies due to rounding off errors"

numerical aperture is 0.4461
acceptance angle is 26 degrees 29.5 minutes
answer for acceptance angle in minutes given in the book varies due to rounding off errors


## Example number 10, Page number 168¶

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

#Variable declaration
NA=0.39;       #numerical aperture
delta=0.05;    #relative refractive index difference

#Calculation
n1=NA/math.sqrt(2*delta);      #Core refractive index

#Result
print "Core refractive index is",round(n1,4)
print "answer given in the book varies due to rounding off errors"

Core refractive index is 1.2333
answer given in the book varies due to rounding off errors


## Example number 11, Page number 168¶

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

#Variable declaration
n1=1.563;      #Core 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 12, Page number 168¶

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

#Variable declaration
n1=1.48;      #Core refractive index

#Calculation
NA=math.sqrt(n1**2-n2**2);     #numerical aperture
thetamax=math.asin(NA)*180/math.pi;
thetamaxd=int(thetamax);       #angle of acceptance(degrees)
thetamaxm=60*(thetamax-thetamaxd);   #angle of acceptance(minutes)

#Result
print "numerical aperture is",round(NA,4)
print "angle of acceptance is",thetamaxd,"degrees",int(round(thetamaxm)),"minutes"

numerical aperture is 0.2965
angle of acceptance is 17 degrees 15 minutes


## Example number 13, Page number 168¶

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

#Variable declaration
NA=0.39;          #numerical aperture
delta=0.05;       #fractional index change

#Calculation
n1=NA/math.sqrt(2*delta);     #refractive index of core

#Result
print "refractive index of core is",round(n1,3)

refractive index of core is 1.233


## Example number 14, Page number 169¶

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

#Variable declaration
n1=1.563;      #Core refractive index

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

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

fractional index change is 0.04159


## Example number 15, Page number 169¶

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

#Variable declaration
n1=1.55;          #Core refractive index

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

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

numerical aperture is 0.39


## Example number 16, Page number 169¶

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

#Variable declaration
n1=1.563;          #Core refractive index

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

#Result
print "numerical aperture is",round(NA,4)
print "acceptance angle is",round(theta0,2),"degrees"

numerical aperture is 0.4461
acceptance angle is 26.49 degrees


## Example number 17, Page number 170¶

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

#Variable declaration
n1=1.53;          #Core refractive index

#Calculation
thetac=math.asin(n2/n1)*180/math.pi;      #critical angle(degrees)

#Result
print "critical angle is",round(thetac,2),"degrees"

critical angle is 68.14 degrees


## Example number 18, Page number 170¶

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

#Variable declaration
n1=1.6;          #Core refractive index
n0=1.33;         #water refractive index

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

#Result
print "numerical aperture is",round(NA,3)
print "acceptance angle is",round(theta0,4),"degrees"

numerical aperture is 0.582
acceptance angle is 35.6198 degrees


## Example number 19, Page number 171¶

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

#Variable declaration
n1=1.5;      #Core refractive index

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

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

fractional index change is 0.133


## Example number 20, Page number 171¶

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

#Variable declaration
n1=1.55;       #Core refractive index

#Calculation
x=n1*math.sin(theta1)/n2;
theta2=math.asin(x)*180/math.pi;       #angle of reflection(degrees)

#Result
print "angle of reflection is",round(theta2,2),"degrees"

angle of reflection is 57.03 degrees


## Example number 21, Page number 171¶

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

#Variable declaration
delta=0.14;    #fractional index change

#Calculation
n1=n2/(1-delta);      #Core refractive index

#Result
print "Core refractive index is",round(n1,2)

Core refractive index is 1.51


## Example number 22, Page number 172¶

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

#Variable declaration

numerical aperture is 0.45088