import math
# Variable initialisation
r=30.8*math.pow(10,-12) # electro optice coefficient in m/V
L=3*math.pow(10,-2) # length in m
y=1.3*math.pow(10,-6) # wavelength in m
n=2.1
d=30*math.pow(10,-6) # distance between the electrodes in m
V=(y*d)/(math.pow(n,3)*r*L) # voltage required to have a pi radian phase change in volt
# Results
print ('%s %.3f %s' %(" The voltage required to have a pi radian phase change = ",V,"volt"))
#Variable initialisation
a_fc=4 #fider cable loss in dB/km
aj=0.7 #splice loss in db/km
L=5 # length in km
a_cr1=4 # connector losses
a_cr2=3.5 # connector losses
CL=(a_fc+aj)*L+(a_cr1+a_cr2) # total channel loss in dB
# Results
print ('%s %.f %s' %(" The total channel loss = ",CL,"dB"))
import math
# variable initialisation
p=0.5*math.pow(10,-9) # pulse broadening in s/km
L=12 # length in km
# calculations
Pt=p*math.sqrt(L) # with mode coupling, the total rms broadening in s
BT=20*math.pow(10,6)
DL=2*pow((2*Pt*BT*math.sqrt(2)),4) # dispersion equalization penalty in dB
Pt1=p*L # without mode coupling, the total rms broadening in s
DL1=2*math.pow((2*Pt1*BT*math.sqrt(2)),4) # without mode coupling, equalization penalty in dB
DL2=2*math.pow((2*Pt1*150*math.pow(10,6)*math.sqrt(2)),4) # without mode coupling,dispersion equalization penalty with 125 Mb/s
DL3=2*math.pow((2*Pt*125*math.pow(10,6)*math.sqrt(2)),4) # with mode coupling,dispersion equalization penalty with 125 Mb/s
# Results
print ('%s %.2f %s' %(" With mode coupling, the total rms broadening = ",Pt*pow(10,9),"ns"))
print ('%s %.2f %s' %("\n The dispersion equalization penalty = ",DL*pow(10,4),"dB"))
print ('%s %.f %s' %("\n without mode coupling, the total rms broadening = ",Pt1*pow(10,9),"dB"))
print ('%s %.3f %s' %("\n without mode coupling, equalization penalty = ",DL1,"dB"))
print ('%s %.2f %s' %("\n without mode coupling,dispersion equalization penalty with 125 Mb/s = ",DL2,"dB"))
print ('%s %.2f %s' %("\n with mode coupling,dispersion equalization penalty with 125 Mb/s = ",DL3,"dB"))
print ("\n The answer is wrong in the textbook")
import math
# Variable initialisation
Pi=-2.5 # mean optical power launched into the fiber in dBm
Po=-45 # mean output optical power available at the receiver in dBm
a_fc=0.35 # fider cable loss in dB/km
aj=0.1 # splice loss in db/km
a_cr=1 # connector losses
Ma=6 # safety margin in dB
L=(Pi-Po-a_cr-Ma)/(a_fc+aj) # length in km when system operating at 25 Mbps
Po1=-35 # mean output optical power available at the receiver in dBm
L1=(Pi-Po1-a_cr-Ma)/(a_fc+aj) # length in km when system operating at 350 Mbps
# Results
print ('%s %.2f %s' %(" The length when system operating at 25 Mbps = ",L,"km"))
print ('%s %.2f %s' %("\n The length when system operating at 350 Mbps = ",L1,"km"))
import math
# variable initialisation
Tx=-80 # transmitter output in dBm
Rx=-40 # receiver sensitivity in dBm
sm=32 # system margin in dB
L=10 # in km
fl=2*L # fider loss in dB
cl=1 # detector coupling loss in dB
tl=0.4*8 # total splicing loss in dB
ae=5 # angle effects & future splice in dB
ta=29.2 # total attenuation in dB
Ep=2.8 # excess power margin in dB
# Results
print ('%s %.1f %s' %(" The fider loss = ",fl,"dB"))
print ('%s %.2f %s' %("\n The total splicing loss = ",tl,"dB"))
print ('%s %.1f %s' %("\n The fangle effects & future splice = ",ae,"dB"))
print ('%s %.2f %s' %("\n The total attenuation = ",ta,"dB"))
print ('%s %.1f %s' %("\n The excess power margin = ",Ep,"dB"))
print ("\n Hence the system can operate with small excess power margin ")
import math
# variable initialisation
Lc=1 # connector loss in db
Ls=5 # star coupler insertion loss in dB
af=2 # fider loss in dB
Ps=-14 # transmitted power in dBm
Pr=-49 # receiver sensitivity in dBm
sm=6 # system margin in dB
N=16.0
L=(Ps-Pr-Ls-4*Lc-(10*math.log(N))/math.log(10)-sm)/(2*af) # max transmission length in km when transmission star coupler is used
N1=32
L1=(Ps-Pr-Ls-4*Lc-(10*math.log(N1))/math.log(10)-sm)/(2*af) # max transmission length in km when reflection star coupler is used
# Results
print ('%s %.2f %s' %(" The max transmission length when transmission star coupler is used = ",L,"km"))
print ('%s %.2f %s' %("\n The max transmission length when reflection star coupler is used = ",L1,"km"))
import math
# variable declaration
y=860*math.pow(10,-9) # wavelength in m
L=5000 # length in m
X=0.024
dy=20*math.pow(10,-9) # spectral width in m
dts=6*math.pow(10,-9) # silica optical link rise time in s
dtr=8*math.pow(10,-9) # detector rise in s
c=3*math.pow(10,8)# speed of light in m/s
dtm=-(L*dy*X)/(c*y) # material dispersion delay time in s
id=2.5*math.pow(10,-12) # intermodel dispersion in s/m
dti=id*L # intermodel dispersion delay time
dtsy=math.sqrt(math.pow(dts,2)+math.pow(dtr,2)+math.pow(dtm,2)+math.pow(dti,2)) # system rise time in s
Br_max=0.7/dtsy # max bit rate for NRZ coding in bit/s
Br_max1=0.35/dtsy # max bit rate for RZ coding in bit/s
# Results
print ('%s %.2f %s' %(" The system rise time = ",dtsy*pow(10,9),"ns"))
print ('%s %.2f %s' %("\n The max bit rate for NRZ coding = ",Br_max/pow(10,6),"Mbit/s"))
print ('%s %.2f %s' %("\n The max bit rate for RZ coding = ",Br_max1/pow(10,6),"Mbit/s"))
import math
#variable declaration
Br=50*math.pow(10,6) # data rate in b/s
c=3*math.pow(10,8) # speed of light in m/s
n1=1.47
dl=0.02
n12=n1*dl # the difference b/w n1 and n2
L_si=(0.35*c)/(n12*Br) # transmission distance for Si fiber
L_GI=(2.8*c*math.pow(n1,2))/(2*n1*n12*Br) # transmission distance for GRIN fiber
# Results
print ('%s %.3f %s' %(" The transmission distance for Si fiber = ",L_si,"m"))
print ('%s %.f %s' %("\n The transmission distance for GRIN fiber = ",L_GI,"m"))
import math
# Initialisation of variables
Br=20*math.pow(10,6) # data rate in b/s
c=3*math.pow(10,8)# speed of light in m/s
y=86*math.pow(10,-9)# wavelength in m
dy=30*math.pow(10,-9) # spectral width in m
X=0.024
Tb=1/Br
Lmax=(0.35*Tb*c*y)/(dy*X)# material dispersion limited transmission distance for RZ coding in m
# Results
print ('%s %.3f %s' %(" The material dispersion limited transmission distance = ",Lmax,"m"))
import math
# variable declaration
y=860*math.pow(10,-9) # wavelength in m
c=3*math.pow(10,8) # speed of light in m/s
n1=1.47
dl=0.02
n12=n1*dl # the difference b/w n1 and n2
La=1/1000.0 # loss a in dB/m
Pr=-65 # receiver power in dB
Pt=-5 #transmitted power in dB
dy=30*math.pow(10,-9) # line width in m
X=0.024
Lmax=(0.35*c*y)/(dy*X) # material dispersion limited distance for RZ coding in m
L_GI=(1.4*c*n1)/(n12)# model dispersion limited distance for RZ coding in m
L_At=(Pt-Pr)/(La) # attenuation limited distance for RZ coding in m
# Results
print ('%s %.2f %s' %(" The material dispersion limited distance = ",Lmax/pow(10,10),"*10^10*1/Br m"))
print ('%s %.1f %s' %("\n The model dispersion limited distance = ",L_GI/pow(10,10),"*10^10*1/Br m"))
print ('%s %.f %s' %("\n The attenuation limited distance = ",L_At/pow(10,3),"-20log(Br) km"))