from __future__ import division
from numpy import mat
#Open-loop gain, Return ratio, Reverse transmission β of feedback circuit
# Let A be open-loop gain and B be return ratio
# For A, B 10% higher, -1.1A + 55.11B = -50.1
# For A, B 10% lower, -0.9A + 44.91B = -49.9
# Solving the two equations
a=mat([[-1.1, 55.11],[-0.9, 44.91]])
b=mat([[-50.1],[-49.9]])
c=(a**-1)*b
A=c[0,0]
B=c[1,0]
print "Open-loop gain = %0.2f "%A
print "Return ratio = %0.2f "%B
print "Reverse transmission β of the feedback circuit = %0.4f "%(B/A)
from numpy import mat
#Necessary amount of feedback, Gain without feedback
# Let A be gain without feedback and b be necessary amount of feedback
# AOL can assume values A, 1.1A, 0.9A, i.e. 10% variation
# For AOL = 1.1A yields, 50.01 + 1.1A(50.01b -1) = 0
# When AOL = 0.9A, 49.99 + 0.9A(49.99b - 1) = 0
# Solving the two equations
a=mat([[1.1*50.01, -1.1],[0.9*44.99, -0.9]])
b=mat([[-50.01],[-49.99]])
c=(a**-1)*b#
d=c[0,0]# # A*b
A=c[1,0]#
b=d/A#
print "Necessary amount of feedback = %0.2f "%b
print "Gain without feedback = %0.2f "%A
from __future__ import division
# (a) Output voltage
# (b) Input voltage
B1=36# # Fundamental output in volts
B2=7*B1/100# # Second-harmonic distortion in volts
Vs=0.028# # Input in volts
A=B1/Vs# # Gain
print "Part (a)"
b=1.2/100# # Amount of feedback in volts
B1f=B1/(1+b*A)# # Fundamental output with feedback in volts
B2f=B2/(1+b*A)# # Second-harmonic distortion with feedback in volts
print "Fundamental output with feedback = %0.2f V"%B1f
print "Second-harmonic distortion with feedback = %0.2f V"%B2f
print "Part (b)"
B1f=36# # Fundamental output with feedback in volts
B2f=1*B1f/100# # Second-harmonic distortion with feedback in volts
T=B2/B2f-1# # Return ratio
AF=A/(1+T)# # Feedback gain
Vs=B1f/AF# # Input voltage in volts
print "Input voltage = %0.2f V"%Vs
#Closed loop parameters
Av=1000#
bta=0.01#
Zin=1# # in kilo-ohms
Zo=420# # in ohms
fL=1.5# # in kilo-hertz
fH=501.5# # in kilo-hertz
print "Closed loop parameters :"
T=Av*bta# # Return ratio
# From Fig. 11.18
Af=Av/(1+T)# # Closed loop gain
Zif=Zin*(1+T)# # Closed loop input impedance in kilo-ohms
Zof=Zo/(1+T)# # Closed loop output impedance in ohms
fLf=fL/(1+T)# # Closed loop lower 3 dB frequency in kilo-hertz
fHf=fH*(1+T)# # Closed loop upper 3 dB frequency in kilo-hertz
print "Gain = %0.2f "%Af
print "Input impedance = %0.2f kΩ"%Zif
print "Output impedance = %0.2f Ω"%Zof
print "Lower 3 dB frequency = %0.2f kHz"%fLf
print "Upper 3 dB frequency = %0.2f kHz"%fHf
from __future__ import division
from numpy import log10
#Output signal voltage, Output noise voltage, Improvement in S/N ratio
A1=1#
Vs=1# # in volts
Vn=1# # in volts
A2=100#
bta=1#
Vos=Vs*A1*A2/(1+bta*A1*A2)# # Output signal voltage in volts
Von=Vn*A1/(1+bta*A1*A2)# # Output noise voltage in volts
SNRi=20*log10(Vs/Vn)# # Input S/N ratio in dB
SNRo=20*log10(Vos/Von)# # Output S/N ratio in dB
SNR=SNRo-SNRi# # Improvement in S/N raio in dB
print "Output signal voltage = %02.f V"%Vos
print "Output noise voltage = %0.2f V"%Von
print "Improvement in S/N ratio = %0.2f dB"%SNR
from __future__ import division
from numpy import log10
# (b) R2/R1
# (c) Amount of feedback in decibels
# (d) Vo, Vf, Vi
# (e) Decrease in Af
print "Part (b)"
A=1e4#
Af=10#
bta=(A/Af-1)/A# # Feedback factor
R2_R1=1/bta-1# # R2/R1
print "R2/R1 = %0.2f "%R2_R1
print "Part (c)"
dB=20*log10(1+A*bta)# # Amount of feedback in decibels
print "Amount of feedback = %0.2f dB"%dB
print "Part (d)"
Vs=1# # in volts
Vo=Af*Vs# # in volts
Vf=bta*Vo# # in volts
Vi=Vs-Vf# # in volts
print "Vo = %0.2f V"%Vo
print "Vf = %0.2f V"%Vf
print "Vi = %0.2f V"%Vi
print "Part (e)"
A=80*A/100# # Decreased A
Af_dash=A/(1+A*bta)# # Decreased Af
C=(Af-Af_dash)*100/Af# # Percentage decrease in Af
print "Percentage decrease in Af = %0.2f %%"%C
from __future__ import division
#Low frequency gain, Upper 3 dB frequency
# Without feedback
AM=1e4# # Low frequency values of A
wH=100# # Upper 3 dB frequency in hertz
# With feedback
R1=1# # in kilo-ohms
R2=9# # in kilo-ohms
bta=R1/(R1+R2)# # Feedback factor
AfM=AM/(1+bta*AM)# # Low frequency gain
wHf=wH*(1+bta*AM)# # Upper 3 dB frequency in hertz
wHf=wHf*1e-3# # Upper 3 dB frequency in kilo-hertz
print "For closed loop amplifier :"
print "Low frequency gain = %0.2f "%AfM
print "Upper 3 dB frequency = %0.2f kHz"%wHf
from __future__ import division
# (a) RE
# (b) RL
# (c) R1F
# (d) Quiescent collector current
GmF=1# # Transconductance gain in mili-amperes per volts
AVF=-4# # Voltage gain
D=50# # Desensitivity factor
RS=1# # in kilo-ohms
btao=150#
AoL=GmF*D# # Open loop mutual conductance in mili-amperes per volts
print "Part (a)"
RE=(D-1)/AoL# # in kilo-ohms
print "RE = %0.2f kΩ"%RE
print "Part (b)"
RL=-AVF/GmF# # in kilo-ohms
print "RL = %0.2f kΩ"%RL
print "Part (c)"
r_pi=btao/AoL-RS-RE# # in kilo-ohms
R1F=RS+r_pi+(1+btao)*RE# # in kilo-ohms
print "R1F = %0.2f kΩ"%R1F
print "Part (d)"
VT=26e-3# # Voltage equivalent to temperatue at room temperature in volts
IC=btao*VT/r_pi# # in mili-amperes
print "IC = %0.2f mA"%IC
from __future__ import division
from numpy import inf
# (a) Amplifier type
# (b) Input resistance, Output resistance, Transfer ratio
r_pi=1e3# # in ohms
gm=0.1# # in mho
print "Part (a)"
print "It ia a CB-CE cascade, configuration. It has low input and high output impedance and hence corresponds to a current amplifier."
print "Part (b)"
# From low frequency equivalent circuit in Fig. 11.40
btao=gm*r_pi#
Rin=r_pi/(1+btao)# # Input resistance in ohms
Rout=inf# # Output resistance (= ro of Q2)
Ai=gm*gm*Rin*3e3*1e3/(3e3+1e3)# # Transfer ratio
print "Input resistance = %0.2f Ω"%Rin
print "Output resistance = %0.2f "%Rout
print "Transfer ratio = %0.2f "%Ai
#(b) AF
AV=4000#
bta=1/300#
RS=2# # in kilo-ohms
RE=RS# # in kilo-ohms
RC=6# # in kilo-ohms
btao=200#
r_pi=4# # in kilo-ohms
print "Part (b)"
x=-AV*-btao*RC/(r_pi+RS)#
AF=x/(1+x*bta)#
print "AF = %0.2f "%AF
# (a) Amplifier type
# (b) Input resistance, Output resistance, Transfer ratio
r_pi=1e3# # in ohms
gm=0.1# # in mho
print "Part (a)"
print "Q1 is a common collector and Q2 is common emitter stage. Hence the given circuit is cascade of cc and CE stages. As the Rin of a CC is high and the Ro of the CE is low, therefore, the given circuit approximates a voltage amplifier. If RL is chosen a low resistance, the amplifier can be considered a voltage-to-current converter."
def parallel(a,b):
c=a*b/(a+b)
return c
print "Part (b)"
# From the Fig. 11.42
RE1=3e3# # in ohms
RC2=0.6e3# # in ohms
btao=gm*r_pi#
Ri2=r_pi# # in ohms
Ri1=r_pi+(1+btao)*parallel(RE1,Ri2)# # Input resistance in ohms
Rout=RC2# # Output resistance (= ro of Q2)
AV1=(1+btao)*RE1/(r_pi+(1+btao)*RE1)#
Ro1=parallel(RE1,r_pi/(1+btao))# # in ohms
AV2=-btao*RC2/(Ro1+r_pi)#
AV=AV1*AV2#
Ri1=Ri1*1e-3# # in kilo-ohms
Rout=Rout*1e-3# # in kilo-ohms
print "Input resistance = %0.2f Ω"%Ri1
print "Output resistance = %0.2f "%Rout
print "Transfer ratio = %0.2f "%AV
#Small signal gain, Input resistance, Output resistance
btao=100#
r_pi=1e3# # in ohms
ICQ=2.5e-3# # in amperes
VT=25e-3# # in volts
gm=ICQ/VT# # Transconductance in mho
r_pi=btao/gm# # Incremental resistance of emitter-base diode in ohms
# From ac model without feedback in Fig. 11.47
RS=10e3# # in ohms
RF=47e3# # in ohms
RC=4.7e3# # in ohms
def parallel(a,b):
c=a*b/(a+b)#
return c
AoL=-gm*parallel(RF,RC)*parallel(RS,parallel(RF,r_pi))# # in ohms
bta=1/RF#
T=-bta*AoL# # Return ratio
AF=AoL/(1+T)# # in ohms
AVF=AF/RS# # Small signal gain
RID=parallel(RF,r_pi)# # in ohms
RID_dash=parallel(RID,RS)# # in ohms
RIF_dash_I=RID_dash/(1+T)# # in ohms
RIF_I=RS*RIF_dash_I/(RS-RIF_dash_I)# # in ohms
RIF_dash_V=RS+RIF_I# # in ohms
RoD_dash=parallel(RF,RC)# # in ohms
RoF_dash=RoD_dash/(1+T)# # in ohms
RoF=RoF_dash*RC/(RC-RoF_dash)# # in ohms
RIF_dash_V=RIF_dash_V*1e-3# # in kilo-ohms
RoF=RoF*1e-3# # in kilo-ohms
print "Small signal gain = %0.2f "%AVF
print "Input resistance = %0.2f kΩ"%RIF_dash_V
print "Output resistance = %0.2f kΩ"%RoF
# (a) AF, T
# (b) R1F, RoF
btao=150#
ICQ=1.5e-3# # in amperes
VT=25e-3# # Voltage equivalent to temperatue at room temperature in volts
# From circuit without feedback but with loading in Fig. 11.50
RS=2e3# # in ohms
RE1=0.1e3# # in ohms
RF=6.2e3# # in ohms
RC1=4.3e3# # in ohms
RC2=1.2e3# # in ohms
RL=4.7e3# # in ohms
def parallel(a,b):
c=a*b/(a+b)#
return c
print "Part (a)"
gm=ICQ/VT# # Transconductance in mho
r_pi=btao/gm# # Incremental resistance of emitter-base diode in ohms
AV1=-btao*RC1/(RS+r_pi+(1+btao)*parallel(RE1,RF))#
AV2=-btao*parallel(RC2,parallel(RF+RE1,RL))/(RC1+r_pi)#
AoL=AV1*AV2#
bta=-RE1/(RE1+RF)#
T=-bta*AoL#
AF=AoL/(1+T)#
print "AF = %0.2f "%AF
print "T = %0.2f "%T
print "Part (b)"
RID=r_pi+(1+btao)*parallel(RE1,RF)# # in ohms
RID_dash=RS+RID# # in ohms
RIF_dash=RID_dash*(1+T)# # in ohms
RIF=RIF_dash-RS# # in ohms
RoD=parallel(RC2,RF+RE1)# # in ohms
RoD_dash=parallel(RoD,RL)# # in ohms
RoF_dash=RoD_dash/(1+T)# # in ohms
RoF=RL*RoF_dash/(RL-RoF_dash)# # in ohms
RIF=RIF*1e-3# # in kilo-ohms
print "RIF = %0.2f kΩ"%RIF
print "RoF = %0.2f Ω"%RoF
#(a) T, AoL, AF
# (b) RoF
gm=1e-3# # in mho
rd=20e3# # in ohms
def parallel(a,b):
c=a*b/(a+b)#
return c
print "Part (a)"
# From the ac equivalent circuit in Fig. 11.52
RF=10e3# # in ohms
RD1=10e3# # in ohms
RL=10e3# # in ohms
ro=20e3# # in ohms
RS=parallel(0.47e3,RF)# # in ohms
RL2=parallel(ro,parallel(10.47e3,RL))# # in ohms
mu=rd*gm# # Amplification factor
AV1=-mu*RD1/(RD1+rd+(1+mu)*RS)#
AV2=-gm*RL2#
AoL=AV1*AV2#
bta=-0.47/(10+0.47)# # Feedback factor
T=-bta*AoL#
AF=AoL/(1+T)#
print "T = %0.2f "%T
print "AoL = %0.2f "%AoL
print "AF = %0.2f "%AF
print "Part (b)"
RoD=parallel(ro,10.47e3)# # in ohms
TSC=0# # for RL=0, T=0
ToC=bta*AV1*gm*RoD#
# By Blackman's relation
RoF=RoD*(1+TSC)/(1+ToC)# # in ohms
RoF=RoF*1e-3# # in kilo-ohms
print "RoF = %0.2f kΩ"%RoF
#T, AoL, AF
def parallel(a,b):
c=a*b/(a+b)#
return c
ICQ1=0.25e-3# # in amperes
ICQ2=-0.5e-3# # in amperes
bta1=200#
VA1=125# # in volts
bta2=150#
VT=25e-3# # Voltage equivalent to temperatue at room temperature in volts
gm1=ICQ1/VT# # in mho
gm2=abs(ICQ2)/VT# # in mho
r_pi1=bta1/gm1# # in ohms
r_pi2=bta2/gm2# # in ohms
ro1=VA1/ICQ1# # in ohms
# From ac equivalent circuit in Fig. 11.56
RC1=20e3# # in ohms
RS=1e3# # in ohms
bta=-0.82/(20+0.82)# # Feedback factor
RL1=parallel(RC1,ro1)# # in ohms
Ib2_IC1=RL1/(RL1+r_pi2+(1+bta2)*parallel(20e3,0.82e3))# # Ib2/IC1
Ib1_IS=parallel(RS,20.82e3)/(r_pi1+parallel(RS,20.82e3))# # Ib1/IS
AoL=bta2*Ib2_IC1*bta1*Ib1_IS# # Current gain without feedback
T=-bta*AoL#
AF=AoL/(1+T)#
print "T = %0.2f "%T
print "AoL = %0.2f "%AoL
print "AF = %0.2f "%AF
# (a) AIF
# (b) R1F
# (c) A1F'
# (d) AVF
btao=50#
r_pi=2e3# # in ohms
# From equivalent circuit without feedback but taking loading effect in Fig. 11.58
RS=1e3# # in ohms
Rf=15e3# # in ohms
RE2=10e3# # in ohms
RC1=10e3# # in ohms
RC2=10e3# # in ohms
def parallel(a,b):
c=a*b/(a+b)#
return c
print "Part (a)"
RS_dash=parallel(RS,Rf+RE2)# # in ohms
gm=btao/r_pi# # in mho
RE2_dash=parallel(RE2,Rf)# # in ohms
Rx=r_pi+(1+btao)*RE2_dash# # in ohms
I2_IS=-gm*parallel(RS_dash,r_pi)*RC1/(RC1+Rx)# # I2/IS
AI=-btao*I2_IS# # Open loop
If_IS=(1+btao)*I2_IS*RE2/(RE2+Rf)# # If/IS
bta=If_IS/AI# # Feedback factor
T=-bta*AI#
AIF=AI/(1+T)#
print "AIF = %0.2f "%AIF
print "Part (b)"
RID=parallel(RS,parallel(Rf+RE2,r_pi))#
R1F=RID/(1+T)# # in ohms
print "R1F = %0.2f Ω"%R1F
print "Part (c)"
Ii_IS=RS/(RS+parallel(Rf+RE2,r_pi))# # Ii'/IS
AI_dash=AI*Ii_IS#
T=-bta*AI_dash#
A1F_dash=AI_dash/(1+T)#
print "A1F = %0.2f "%A1F_dash
print "Part (d)"
AVF=AIF*RC2/RS#
print "AVF = %0.2f "%AVF
#(a) AVF
# (b) AIF
# (c) RIF
# (d) ROF
btao=50#
r_pi=1.1e3# # in ohms
def parallel(a,b):
c=a*b/(a+b)#
return c
# From equivalent circuit of amplifier without feedback in Fig. 11.60
RS=4.7e3# # in ohms
RF=15e3# # in ohms
RE2=0.1e3# # in ohms
RB1=parallel(91e3,10e3)# # in ohms
RC1=4.7e3# # in ohms
RC2=4.7e3# # in ohms
RB2=RB1# # in ohms
print "Part (b)"
RL1=parallel(RS,parallel(RF+RE2,RB1))# # in ohms
I1_IS=RL1/(RL1+r_pi)# # I1/IS
IC1_IS=btao*I1_IS# # IC1/IS
Ri2=r_pi+(1+btao)*parallel(RE2,RF)# # in ohms
I2_IS=-IC1_IS*parallel(RC1,RB2)/(parallel(RC1,RB2)+Ri2)# # in ohms
IC2_IS=btao*I2_IS# # IC2/IS
AID=-IC2_IS/2# # Open loop
IF_IS=IC2_IS*RE2/(RE2+RF)# # IF/IS
bta=IF_IS/AID# # Feedback factor
T=-bta*AID#
AIF=AID/(1+T)#
print "AIF = %0.2f "%AIF
print "Part (a)"
AVF=AIF*RC2/RS#
print "AVF = %0.2f "%AVF
print "Part (c)"
RID=parallel(parallel(RS,RE2+RF),parallel(RB1,r_pi))# # in ohms
RIF=RID/(1+T)# # in ohms
print "RIF = %0.2f Ω"%RIF
print "Part (d)"
ROF=RC2*1e-3# # in kilo-ohms
print "ROF = %0.2f kΩ"%ROF
# (c) AF, T
# (d) Voltage gain
ICQ1=0.25e-3# # in amperes
ICQ2=1e-3# # in amperes
ICQ3=0.5e-3# # in amperes
RC1=5e3# # in ohms
RC2=7.5e3# # in ohms
RC3=10e3# # in ohms
R1=0.2e3# # in ohms
R2=0.33e3# # in ohms
RS=0.6e3# # in ohms
RF=20e3# # in ohms
btao=200#
VA=125# # in volts
VT=25e-3# # Voltage equivalent to temperatue at room temperature in volts
def parallel(a,b):
c=a*b/(a+b)#
return c
print "Part (c)"
gm1=ICQ1/VT# # in mho
r_pi1=btao/gm1# # in ohms
ro1=VA/ICQ1# # in ohms
gm2=ICQ2/VT# # in mho
r_pi2=btao/gm2# # in ohms
ro2=VA/ICQ2# # in ohms
gm3=ICQ3/VT# # in mho
r_pi3=btao/gm3# # in ohms
ro3=VA/ICQ3# # in ohms
Rin1=r_pi1+(btao+1)*parallel(RF+R2,R1)# # in ohms
RL1=parallel(RC1,ro1)# # in ohms
RL2=parallel(RC2,ro2)# # in ohms
Rin2=r_pi2# # in ohms
Rin3=r_pi3+(btao+1)*parallel(R2,RF+R1)# # in ohms
Io_Ib3=btao# # Io/Ib3
Ib3_Ic2=-RL2/(RL2+Rin3)# # Ib3/Ic2
Ic2_Ib2=btao# # Ic2/Ib2
Ib2_Ic1=-RL1/(RL1+Rin2)# # Ib2/Ic1
Ic1_Ib1=btao# # Ic1/Ib1
Ib1_VS=1/(RS+Rin1)# # Ib1/VS in mho
AoL=Io_Ib3*Ib3_Ic2*Ic2_Ib2*Ib2_Ic1*Ic1_Ib1*Ib1_VS# # Open loop
bta=-R1*R2/(R1+R2+RF)# # Feedback factor
T=-bta*AoL#
AF=AoL/(1+T)#
print "T = %0.2f "%T
print "AF = %0.2f "%AF
print "Part (d)"
Vo_VS=-AF*parallel(RC3,ro3)#
print "Voltage gain = %0.2f "%Vo_VS
#AF, RoF
gm=2e-3# # in mho
rd=20e3# # in ohms
RD=12e3# # in ohms
RG=500e3# # in ohms
Rs=50# # in ohms
RF=5e3# # in ohms
def parallel(a,b):
c=a*b/(a+b)#
return c
Ro=parallel(RD,rd)# # in ohms
AV1=-gm*parallel(RD,parallel(rd,RG))#
AV2=AV1#
AV3=-gm*parallel(RD,rd)#
AV=AV1*AV2*AV3#
RG_dash=parallel(RG,RF)# # in ohms
Vi_Vs=RG_dash/(RG_dash+Rs)# # Vi/Vs
AoL=AV*Vi_Vs*RF/(RF+Ro)# # Vo/Vs (Open loop)
bta=1/RF# # Feedback factor
RM=AoL*Rs# # in ohms
T=-bta*RM# # Return ratio
AF=AoL/(1+T)#
RoD=parallel(Ro,RF)# # in ohms
RoF=RoD/(1+T)# # in ohms
print "AF = %0.2f "%AF
print "RoF = %0.2f Ω"%RoF