#importing module
import math
from __future__ import division
#Variable declaration
iC=21 #collector current in mA
iE=21.4 #Emitter current in mA
#Calculations
alpha=iC/iE
#Result
print("common-base current gain= %1.2f" %alpha)
#importing module
import math
from __future__ import division
#Variable declaration
ni=1.5*10**10 #in cm**3
Na=5*10**16 #in cm**3
Nd=5*10**18 #in cm**3
VBE=0.6 #in V
WB=3*10**-4 #in cm
Const=0.026 #constant for kT/e in V
#Calculations
#a)
np0=ni**2/Na #in cm**-3
deln_x=(np0/WB)*(((math.exp(VBE/Const)-1)*(2/3*WB))-WB/3)
#b)
deln_x1=(np0/WB)*(math.exp(VBE/Const)-1)*WB
#Result
print("Excess minority carrier concentration at x=WB/3 = %1.2f*10**13 cm**-3\n" %round(deln_x/10**13,2)) #The answers vary due to round off error
print("Excess minority carrier concentration at x=0 = %1.2f*10**13 cm**-3\n" %round(deln_x1/10**13,2)) #The answers vary due to round off error
#importing module
import math
from __future__ import division
#Variable declaration
alpha_F=0.98
alpha_R=0.18
IC=2 #current in mA
IB=0.06 #current in mA
Const=0.026 #constant for kT/e in V
#Calculations
VCE=Const*math.log((((IC*(1-alpha_R))+IB)/((alpha_F*IB)-((1-alpha_F)*IC)))*(alpha_F/alpha_R))
#Result
print("Collector-emitter voltage at saturation= %1.2f V" %VCE)
#importing module
import math
from __future__ import division
#Variable declaration
RL=3 #load resistor in ohm
hie=1*10**3 #in ohm
hre=2*10**-4 #in mho
hfe=25 #in mho
hoe=15*10**-6 #in mho
#Calculations
gm=hfe/hie
Ave=-gm*RL*10**3
#Result
print("Transconductannce= %0.3f mho\n" %gm)
print("Voltage gain= %0.2i" %Ave)
#importing module
import math
from __future__ import division
#Variable declaration
IE=1.5*10**-3 #in mA
Cje=1.2*10**-12 #in F
Dn=25 #in cm**2/s
WB=0.4*10**-4 #in cm
Wdc=2.5*10**-4 #in cm
vs=10**7 #in cm/s
Rc=25 #in ohm
CBC=0.15*10**-12 #in F
CS=0.12*10**-12 #in F
Const=0.026 #constant for kT/e in V
#Calculations
Re=Const*(1/IE) #in ohm
tau_e=Re*Cje #emitter-base junction charging in s
tau_b=WB**2/(2*Dn) #transit time in the base in s
tau_d=Wdc/vs #collector depletion region transit time in s
tau_c=Rc*(CBC+CS) #collector capacitance charging time in s
tau_D=tau_e+tau_b+tau_d+tau_c
fT=1/(2*math.pi*(tau_D))
#Result
print("Total emitter-to-collector delay time= %0.1f ps\n" %round(tau_D/10**-12,1))
print("cut-of frequency of transistor= %0.2f GHz" %round(fT/10**9,2))
#importing module
import math
from __future__ import division
#Variable declaration
Wb=0.5*10**-6 #width of base region in m
Dp=15*10**-4 # in m**2/s
#Calculations
tau_n=Wb**2/(2*Dp) #in s
tau_B=tau_n #in s
fT=1/(2*math.pi*tau_B)
#Result
print("a) upper frequency limit= %1.2f GHz" %round(fT/10**9,2))