# 13: Fibre Optics¶

## Example number 13.1, Page number 375¶

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

#Variable declaration
n1=1.5;     #core refractive index
n=1;

#Calculations
NA=math.sqrt(n1**2-n2**2);       #numerical aperture
i0=i0*180/math.pi;         #maximum entrance angle(degrees)

#Result
print "numerical aperture is",round(NA,5)
print "maximum entrance angle is",round(i0,2),"degrees"

numerical aperture is 0.24413
maximum entrance angle is 14.13 degrees


## Example number 13.2, Page number 376¶

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

#Variable declaration
n0=1.33;     #water refractive index
NA=0.2;     #numerical aperture

#Calculations
n1=math.sqrt(NA**2+n2**2);      #core refractive index
NA=math.sqrt(n1**2-n2**2)/n0;       #numerical aperture
i0=i0*180/math.pi;         #acceptance angle(degrees)

#Result
print "core refractive index is",round(n1,4)
print "acceptance angle is",round(i0,1),"degrees"

core refractive index is 1.6025
acceptance angle is 8.6 degrees


## Example number 13.3, Page number 376¶

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

#Variable declaration
n1=1.36;     #core refractive index
delta=0.025;    #relative difference

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

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

numerical aperture is 0.304
acceptance angle is 17.7 degrees


## Example number 13.4, Page number 376¶

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

#Variable declaration
n1=1.5;     #core refractive index

#Calculations
delta=(n1-n2)/n1;    #relative difference
NA=n1*math.sqrt(2*delta);       #numerical aperture
i0=i0*180/math.pi;            #acceptance angle(degrees)
theta_c=theta_c*180/math.pi;            #critical angle(degrees)

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

numerical aperture is 0.3873
acceptance angle is 22.79 degrees
critical angle is 75.16 degrees


## Example number 13.5, Page number 377¶

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

#Variable declaration
NA=0.22;    #numerical aperture
delta=0.012;    #relative difference

#Calculations
N=1-delta;
n1=math.sqrt(NA**2/(1-N**2));      #core refractive index

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

core refractive index is 1.42


## Example number 13.6, Page number 377¶

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

#Variable declaration
NA=0.40;    #numerical aperture
delta=1/100;    #relative difference

#Calculations
i0=i0*180/math.pi;     #acceptance angle(degrees)
N=1-delta;
thetac=thetac*180/math.pi;     #critical angle(degrees)

#Result
print "acceptance angle is",round(i0,1),"degrees"
print "critical angle is",round(thetac,1),"degrees"

acceptance angle is 23.6 degrees
critical angle is 81.9 degrees


## Example number 13.7, Page number 378¶

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

#Variable declaration
vf=3*10**8;      #velocity of light in free space(m/s)
vc=2*10**8;      #velocity of light in core(m/s)

#Calculations
n1=vf/vc;       #core refractive index
NA=math.sqrt(n1**2-n2**2);    #numerical aperture

#Result
print "core refractive index is",n1
print "numerical aperture is",NA
print "answer for numerical aperture varies due to rounding off errors"

core refractive index is 1.5
numerical aperture is 0.75
answer for numerical aperture varies due to rounding off errors


## Example number 13.8, Page number 378¶

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

#Variable declaration
n1=1.55;       #core refractive index
d=50*10**-6;     #core diameter(micro m)

#Calculations
NA=math.sqrt(n1**2-n2**2);    #numerical aperture
i0=i0*180/math.pi;     #acceptance angle(degrees)
theta_c=thetac*180/math.pi;     #critical angle(degrees)
x=d*math.tan(thetac);
n=1/x;        #number of reflections per metre

#Result
print "numerical aperture is",round(NA,4)
print "acceptance angle is",round(i0),"degrees"
print "critical angle is",round(theta_c,1),"degrees"
print "number of reflections per metre is",int(n)
print "answer for number of reflections in the textbook is wrong"

numerical aperture is 0.3905
acceptance angle is 23.0 degrees
critical angle is 75.4 degrees
number of reflections per metre is 5206
answer for number of reflections in the textbook is wrong


## Example number 13.9, Page number 379¶

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

#Variable declaration
delta=0.03;    #relative difference

#Calculations
NA=math.sin(i0);    #numerical aperture
N=1-delta;
theta_c=thetac*180/math.pi;     #critical angle(degrees)

#Result
print "numerical aperture is",round(NA,3)
print "critical angle is",round(theta_c,2),"degrees"

numerical aperture is 0.375
critical angle is 75.93 degrees


## Example number 13.10, Page number 379¶

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

#Variable declaration
delta=0.0045;    #relative difference
v=3*10**8;      #velocity of light(m/s)

#Calculations
NA=math.sin(i0);    #numerical aperture
n1=NA/math.sqrt(2*delta);     #core refractive index
vcore=v/n1;      #velocity of light in fibre core(m/s)

#Result
print "velocity of light in fibre core is",round(vcore/10**8,3),"*10**8 m/s"

velocity of light in fibre core is 2.48 *10**8 m/s


## Example number 13.11, Page number 381¶

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

#Variable declaration
V=2.405;     #V-number
lamda=8500*10**-10;    #wavelength(m)
n1=1.48;       #core refractive index

#Calculations
d=V*lamda/(math.pi*math.sqrt(n1**2-n2**2));     #diameter of core(m)

#Result
print "diameter of core is",round(d*10**6,2),"*10**-6 m"

diameter of core is 3.79 *10**-6 m


## Example number 13.12, Page number 381¶

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

#Variable declaration
V=2.405;     #V-number
lamda=1300*10**-3;    #wavelength(micro m)
n1=1.466;       #core refractive index

#Calculations
r=V*lamda/(2*math.pi*math.sqrt(n1**2-n2**2));     #maximum radius for fibre(micro m)

#Result
print "maximum radius for fibre is",round(r,2),"micro m"
print "answer varies due to rounding off errors"

maximum radius for fibre is 3.76 micro m
answer varies due to rounding off errors


## Example number 13.13, Page number 381¶

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

#Variable declaration
lamda=1.3;    #wavelength(micro m)
n1=1.5;       #core refractive index
Nm=1100;      #number of modes
delta=0.01;   #refractive index difference

#Calculations
d=lamda*math.sqrt(Nm/delta)/(math.pi*n1);     #diameter of fibre core(micro m)

#Result
print "diameter of fibre core is",round(d,1),"micro m"

diameter of fibre core is 91.5 micro m


## Example number 13.14, Page number 382¶

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

#Variable declaration
lamda=1.1*10**-6;    #wavelength(m)
NA=0.25;         #numerical aperture

#Calculations
V=2*math.pi*r*NA/lamda;
Nm=V**2/4;     #number of guided modes

#Result
print "number of guided modes is",round(Nm)

number of guided modes is 459.0


## Example number 13.15, Page number 387¶

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

#Variable declaration
L=500/1000;     #length(km)
P0byPi=25/100;     #optical power

#Calculations
dB=-10*math.log10(P0byPi)/L;     #fibre loss(dB/km)

#Result
print "fibre loss is",round(dB,4),"dB/km"

fibre loss is 12.0412 dB/km


## Example number 13.16, Page number 387¶

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

#Variable declaration
L=10;     #length(km)
dB=2.3;   #fibre loss(dB/km)
Pi=400;    #input power(micro W)

#Calculations
P0=10**(-dB*L/10)*Pi;         #output power(micro W)

#Result
print "output power is",round(P0,3),"micro W"
print "answer given in the textbook is wrong"

output power is 2.005 micro W
answer given in the textbook is wrong