In [5]:

```
from __future__ import division
# Given data
Vin= 0.5 # in V
Av= 10
I_B_max= 1.5 # in micro amp
I_B_max=I_B_max*10**-6 # in A
# Let
I1=100*I_B_max # in A
R1= Vin/I1 # in ohm
Rf= Av*R1 # in ohm
# R2= R1 || Rf = R1 (approx.)
R2= R1 # in ohm
print "Value of I1 = %0.f micro amp" %(I1*10**6)
print "Value of R1 = %0.1f kohm" %(R1*10**-3)
print "Value of R2 = %0.1f kohm" %(R2*10**-3)
print "Value of Rf = %0.f kohm" %(Rf*10**-3)
```

In [1]:

```
from math import log10
# Given data
Vin= 50 # in mV
Vin = Vin*10**-3 # in V
I_B_max= 200 # in nA
I_B_max=I_B_max*10**-9 # in A
I1=100*I_B_max # in A(assumed)
Av=100
R1= Vin/I1 # in Ω
print "The value of R1 = %0.1f kΩ (Standard value 2.2 kΩ)" %(R1*10**-3)
R1= 2.2 # kohm (standard value)
Rf= Av*R1 # in kohm
print "The value of Rf = %0.f kΩ" %Rf
# R2 = R1 || Rf = R1 (approx)
R2= R1 # in kohm
print "The value of R2 = %0.1f kΩ" %R2
Av= 20*log10(Av) # in dB
C1= 100 # in pF
R1= 1.5 # in kΩ
C2= 3 # in pF
print "Voltage gain = %0.f dB" %Av
print "Value of C1 = %0.f pF" %C1
print "Value of C2 = %0.f pF" %C2
print "Value of R1 = %0.1f kΩ" %R1
```

In [7]:

```
# Given data
A_VD= 200 # in V/mV
A_VD=A_VD*10**3 # in V/V
B1=1 # in MHz
B1=B1*10**6 # in Hz
f1=B1
f0= f1/A_VD # in Hz
print "Cut-off frequency = %0.f Hz" %f0
```

In [3]:

```
from numpy import pi
# Given data
Vin= 15 # in volt
SR= 0.8 # in V/micro sec
SR=SR*10**6 # in V/sec
omega= SR/Vin
f= omega/(2*pi) # in Hz
print "Full power bandwidth = %0.1f kHz" %(f*10**-3)
```

In [1]:

```
# Given data
SR= 2 # in V/micro sec
del_v_in= 0.5 # in volt
del_t=10 #in micro sec
del_v_inBYdel_t= del_v_in/del_t # in V/micro sec
# v_out= A_CL*v_in
A_CL= SR/del_v_inBYdel_t
print "Closed-loop gain = %0.f " %A_CL
```

In [6]:

```
# Given data
Vpp= 3 # in volts
del_V= Vpp*(90-10)/100 # in volts
del_t= 4 # in micro sec
SR_required= del_V/del_t # in V/micro sec
print "The required SR = %0.1f V/micro sec" %SR_required
print "(i) The 741 op-amp has an SR of 0.5 volts per micro second. It is too slow so it cannot be used"
print "(ii) The 318 op-amp has an SR of 50 volts per micro second. It is fast enough and can be used."
SR= 50 # V/micro sec
# Rise time using a 318 op-amp,
del_t= del_V/SR # in micro sec
del_t= del_t*10**3 # in ns
print " The reise time using 318 op-amp = %0.f ns" %del_t
```

In [30]:

```
from __future__ import division
from numpy import pi
# Given data
Vout= 6 # in volts
Vin= 20*10**-3 # in V
Vrms= 1.414
Vout_peak= 6*Vrms # in volts
f_max= 15 # in kHz
# Required closed loop gain
A_CL= Vout/Vin
# Required SR
SRmax= 2*pi*Vout_peak*f_max # in V/micro sec
print "(i) The 741 has an SR of 0.5 V/micro sec. It is too slow and would distort the sine wave output."
print "(ii) The 318 has an SR of 50 V/micro sec. It is fast enough to develop a 6 Vrms sine wave output at 15 kHz."
f_1per= 15 # kHz
# The gain bandwidth,
GBW= 7*A_CL*f_1per # in kHz
GBW= GBW*10**-3 # in MHz
print " The gain bandwidth = %0.1f MHz" %GBW
print " The GBW for 318 op-amp is only 15 MHz. So even though the 318 op-amp satisfies the SR requirement but"
print " it does not have a large enough GBW to proved a gain of 300 (±1 %) at 15 kHz"
A_CL= 10
GBW10= 7*A_CL*f_1per # in kHz
GBW10= GBW10*10**-3 # in MHz
print "GBW (Gain of 10) = %0.2f MHz" %GBW10
A_CL= 30
GBW30= 7*A_CL*f_1per # in kHz
GBW30= GBW30*10**-3 # in MHz
print "GBW (Gain of 30) = %0.2f MHz" %GBW30
print "The 318 op-amp has a large enough gain bandwidth to operate both amplifiers."
```