Chapter 6: Optical Transmittor

Example 6.1,Page number 139

In [2]:
import math

#Given

Tj=125;         #in degree celsius
Tamp=60;        #n degree celsius
Pt=1.8;         #in W
RthJ_a =34;     #in k/w(Assumption)
Rth=(Tj-Tamp)/Pt;
print"Rth =",round(Rth,4),"K/W";
if Rth>RthJ_a:
    print"No Heat sink is required";
else:
    print"Yes,Heat sink is required";    
  
Rth = 36.1111 K/W
No Heat sink is required

Example 6.2,Page number 140

In [5]:
import math

#Given

Tj=120;         #in degree celsius
Tamp=80;        #in degree celsius
Pt=2.1;         #in W 
RthJ_a =34;     #in k/w(Assumption)
Rth=(Tj-Tamp)/Pt;
print"Rth =",round(Rth,4),"K/W";
if Rth>RthJ_a:
    print"No Heat sink is required";
else:
    print"Yes,Heat sink is required";
Rth = 19.0476 K/W
Yes,Heat sink is required

Example 6.3,Page number 140

In [8]:
import math

#given

#data insufficient
Rth=17.70;          # Rth assumed minimum
Rthc_H=0.65;        #k/w
Rthj_a=33.0;          #k/w
Rthj_c=3;           #k/w
RthH_a=1/(1/Rth-1/Rthj_a)-Rthj_c-Rthc_H;
print"RthH-a <=",round(RthH_a,4),"K/W";
RthH-a <= 34.5265 K/W

Example 6.4,Page number 148

In [9]:
import math

#given

Vcc=5;        #in volt
Icc=24;       #in mA
Vset=0.65;    #in volt
Vf=1.5;       #in volt
IMOD=15;      #in mA
TA=25;        #in degree celsius
Pdynamic=(Vcc-Vf-Vset)*Icc;
print"Power dissipation under dynamic condition",Pdynamic,"mW";
Pstatic=(Vcc*Icc);
print"power dissipation under static condition",Pstatic,"mW";
PD=Pdynamic+Pstatic;
print"total power dissipation",PD,"mW";
#Tj=TA+PD*wj_a;
TA=25;       #in degree cel
wj_a=84;     #degree cel/w
PD=188.4;    #mW
Tj=TA+PD*10**-3*wj_a;
print"Temp. of junction temp",Tj,"degree C";
Power dissipation under dynamic condition 68.4 mW
power dissipation under static condition 120 mW
total power dissipation 188.4 mW
Temp. of junction temp 40.8256 degree C

Example 6.5,Page number 150

In [5]:
import math

#given

Ifon=120.0;       #in mA
Vcc=5;          #in V
Vfon=2;         #in V
R3=(Vcc-Vfon)/Ifon/10**-3 +3.2*(Vcc-Vfon-1.4)/Ifon/10**-3;
print" R3=",round(R3,4),"ohm";

R0=(R3-32)/3.2;
print" R0=",round(R0,4),"ohm";

R1=(R0+10)/2;
print" R1=",round(R1,1),"ohm";
R2=R1-10;
print" R2=",round(R2,1),"ohm";
C1=2*10**-9/R1;
print" C1=",round(C1*10**12,4),"pF";         

#answer in book is approximately written
 R3= 67.6667 ohm
 R0= 11.1458 ohm
 R1= 10.6 ohm
 R2= 0.6 ohm
 C1= 189.1626 pF

Example 6.6,Page number 155

In [7]:
import math

#given

Impd1=250;     #in microA
Impd0=25;      #in microA
Iref=(1./16)*Impd1*10**-6;
print" Reference current is",Iref*10**6,"microA";
Rref=1.5/Iref;
print" External bias resistor value Rref1 is",Rref/1000,"kohm";

Rref1=24.0/Impd1/10**-6;
print" Also,Rref1=24/Impd \n External bias resistor value is",Rref1/1000,"kohm";
Irefz=(1./4)*Impd0;
print" Ref0 current is",Irefz,"microA";
Rrefz=1.5/Irefz/10**-6;
print" External bias resistor value Rrefz is",Rrefz/1000,"kohm";
 Reference current is 15.625 microA
 External bias resistor value Rref1 is 96.0 kohm
 Also,Rref1=24/Impd 
 External bias resistor value is 96.0 kohm
 Ref0 current is 6.25 microA
 External bias resistor value Rrefz is 240.0 kohm

Example 6.7,Page number 157

In [13]:
import math

#given

R=400;          #in mA
nEO=25;         #in mW
n_laser=nEO*10**-3*R*10**-3;
print"n_laser =",n_laser;
Tone=(40*10**-12)*(80*10**3)/n_laser;
print"Tone =",Tone*10**6,"micros";
BWone=1./(2*math.pi*Tone);
print"BWone =",round(BWone,4),"Hz ";
Tzero=(40*10**-12)*80*10**3/n_laser;
BWzero=1.0/2/math.pi/Tzero;        #Hz
print"BWzero =",round(BWzero,4),"Hz";

#answer misprinted
n_laser = 0.01
Tone = 320.0 micros
BWone = 497.3592 Hz 
BWzero = 497.3592 Hz

Example 6.8,Page number 159

In [4]:
import math

#given

iol =5;         #in mA
ioh=80;         #bias current in mA
ralarmH=(1.5*1500)/ioh/10**-3;
print" Alarm resistor RalarmH is",ralarmH/1000,"kOhm";
ralarmL=(1.5*300)/iol/10**-3;
print" Alarm resistor RalarmL is",ralarmL/1000,"kOhm";
ialarmh=80*10**-3;
ialarmH=ioh*10**-3/1500;
print" Alarm current  IalarmH is",round(ialarmH*10**6,4),"microA";  #unit of anwer misprinted in book
ialarml=5*10**-3;
ialarmL=iol*10**-3/300;
print" Alarm current  IalarmL is",round(ialarmL*10**6,4),"microA";
 Alarm resistor RalarmH is 28.125 kOhm
 Alarm resistor RalarmL is 90.0 kOhm
 Alarm current  IalarmH is 53.3333 microA
 Alarm current  IalarmL is 16.6667 microA

Example 6.9,Page number 160

In [6]:
import math

#given

Ibias=15.;       #in mA  assumption
Ild=35.;         #in mA
Rld=50.;         #in ohm
Ildi=100.;       #in mA
Ilde=50.;        #in mA
Imod=(Ildi+Ilde)/Ildi*35;  #mA
print"Total modulation current is \nImod=",round(Imod,4),"mA";
Ildq=1.2/100*10**3;                    #in mA  
print"The current complementary output is Ildq=",round(Ildq,4),"mA";
Vld=-1.2-Rld*(Ibias+Ild)*10**-3;       #optical high
print"The laser voltage for optical high is Vld=",round(Vld,4),"V";
Vld=-1.2-Rld*(Ibias)*10**-3;           #optical dark
print"The laser voltage for optical dark is Vld=",round(Vld,4),"V";
Vldq=-Ild*10**-3*Rld;
print"The laser voltage at complimentary o/p is Vldq=",round(Vldq,4),"V";
Rchock=5;           #in Ohm
Vchock=-Rchock*Ibias*10**-3;
print"Vchock=",round(Vchock,4),"V";
Vbias=0.5*(-3.7+Vld)+Vchock;
print"Vbias=",round(Vbias,4),"V";

#(i) Pdvee1
Pdvcc=5*2.5;          #in mW
print"Pdvcc=",round(Pdvcc,4),"mW";
Pdvee1=4.5*80;        #in mW
print"Pdvee1=",round(Pdvee1,4),"mW";

#(ii) Pdvee2
Pdvee2=6*160;         #in mW
print"Pdvee2=",Pdvee2,"mW";

#(iii) PdLD
PdLD=0.5*(3.75*50);    #in mW
print"PdLD=",round(PdLD,4),"mW";

#(iv) PdLQ
PdLDQ=0.5*abs(Vld)*50;  #in mW
print"PdLDQ=",round(PdLDQ,4),"mW";

#(v) PdLDQ
Pdbias=abs(Vbias)*Ibias; #in mW
print"Pdbias=",round(Pdbias,4),"mW";

#PT
PT=Pdvcc+Pdvee1+Pdvee2-(PdLD+PdLDQ+Pdbias);
print"Total power dissipation (PT)=",round(PT,4),"mW";
Total modulation current is 
Imod= 52.5 mA
The current complementary output is Ildq= 12.0 mA
The laser voltage for optical high is Vld= -3.7 V
The laser voltage for optical dark is Vld= -1.95 V
The laser voltage at complimentary o/p is Vldq= -1.75 V
Vchock= -0.075 V
Vbias= -2.9 V
Pdvcc= 12.5 mW
Pdvee1= 360.0 mW
Pdvee2= 960 mW
PdLD= 93.75 mW
PdLDQ= 48.75 mW
Pdbias= 43.5 mW
Total power dissipation (PT)= 1146.5 mW

Example 6.10,Page number 161

In [8]:
import math

#given

vcc=-5;             #in v
imod=35;            #in mA
ibias=18;           #in mA
vbias=-2;           #in v
vout=2;             #in v
tj=30;              #degree cel
icc=140;            #in mA
Pt=(-vcc*icc*10**-3)+(-vcc-vout)*imod*10**-3+(-vcc+vbias)*ibias*10**-3;
print"Pt=",Pt*1000,"mW";
Tj=30;              #in degree
Tj_a=Tj*Pt;
Tcase=125-Tj_a;     #in degree
print"Tcase(max)=",Tcase,"degree Cel";
Pt= 859.0 mW
Tcase(max)= 99.23 degree Cel

Example 6.11,Page number 174

In [11]:
import math

#given

z11=49.95;          #in ohm
z12=0.15;           #in ohm
z21=0.15;           #in ohm
z22=49.95;          #in ohm
zdiff=2*(z11-z12);
print"Zdiff=",zdiff,"ohm";        #answer misprinted
zcm=z11+z12;
print"Zcm=",zcm,"ohm";
Zdiff= 99.6 ohm
Zcm= 50.1 ohm

Example 6.12,Page number 174

In [12]:
import math

#given

z11=65.4;     #in ohm
z12=8.2;      #in ohm
z21=8.2;      #in ohm
z22=65.4;     #in ohm
zdiff=2*(z11-z12);
print" Zdiff=",zdiff,"ohm";  
zcm=z11+z12;
print" Zcm=",zcm,"ohm";
 Zdiff= 114.4 ohm
 Zcm= 73.6 ohm

Example 6.13,Page number 181

In [14]:
import math

#given

dV=50;              #in mV
di=3;               #in Amp
Lcable=15;          #in nH
fL=dV*10**-3/di/2/math.pi/Lcable/10**-9;
print"fLcable =",round(fL/1000,4),"kHz";
fLcable = 176.8388 kHz

Example 6.14,Page number 181

In [17]:
import math

#given

dV=50;          #in mV
di=4;           #in Amp
fL=120;         #in kHz
Lcable=dV*10**-3/di/2/math.pi/fL/10**3;
print"The maximum allowed parasitic cable inductance (Lcable) must not exceed",round(Lcable*10**9,4),"nH";
The maximum allowed parasitic cable inductance (Lcable) must not exceed 16.5786 nH

Example 6.15,Page number 182

In [19]:
import math

#given

dV=40;              #in mV
di=2.5;             #in Amp
Lbypas=0.5;         #in nH
fL=dV*10**-3/di/2/math.pi/Lbypas/10**-9;
print"fHnoise =",round(fL/10**6,4),"MHz";
fHnoise = 5.093 MHz

Example 6.16,Page number 182

In [21]:
import math

#given

dV=50;              #in mV
di=2.5;             #in Amp
Cbypas=220;         #in microF
fL=di/(dV*10**-3*2*math.pi*Cbypas*10**-6);
print"fLnoise =",round(fL/1000,4),"kHz";          #Result
fLnoise = 36.1716 kHz

Example 6.17,Page number 182

In [23]:
import math

#given

dV=50;              #in mV
di=4;               #in Amp
Cbypas=200;         #in microF
Lbypas=0.2;         #in nH
fL=di/(dV*10**-3*2*math.pi*Cbypas*10**-6);
print"fLnoise =",round(fL/1000,4),"kHz";          #Result misprinted
fH=dV*10**-3/di/2/math.pi/Lbypas/10**-9;
print"fHnoise =",round(fH/10**6,4),"MHz ";         
Bw=fH-fL;
print"Bwnoise =",round(Bw/10**6,4),"MHZ";         #Result miscalculated
fLnoise = 63.662 kHz
fHnoise = 9.9472 MHz 
Bwnoise = 9.8835 MHZ

Example 6.18,Page number 184

In [25]:
import math

#given

dV=40;          #in mV
di=3;           #in Amp
LT=0.05;        #in nH
fH=dV*10**-3/di/2/math.pi/LT/10**-9;
print"fCdecoupling(high) =",round(fH/10**6,4),"MHz";         #Result
fCdecoupling(high) = 42.4413 MHz

Example 6.19,Page number 184

In [29]:
import math

#given

dV=45;            #in mV
di=2.5;           #in Amp
CT=2.2;           #in microF
LT=0.05;          #in nH
fCL=di/(dV*10**-3*2*math.pi*CT*10**-6);
print"fLnoise =",round(fCL/10**6,4),"MHz";          #Result     
fCH=42.3;           #in MHz taken from last question i.e. 6.18      
print"",round(fCL/10**6,4),"MHz <=B.W.noise <=",round(fCH,4),"MHZ";         #Result
fLnoise = 4.0191 MHz
 4.0191 MHz <=B.W.noise <= 42.3 MHZ