summaryrefslogtreecommitdiff
path: root/Electronic_devices_and_circuits/chapter7.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'Electronic_devices_and_circuits/chapter7.ipynb')
-rwxr-xr-xElectronic_devices_and_circuits/chapter7.ipynb645
1 files changed, 645 insertions, 0 deletions
diff --git a/Electronic_devices_and_circuits/chapter7.ipynb b/Electronic_devices_and_circuits/chapter7.ipynb
new file mode 100755
index 00000000..f37b3943
--- /dev/null
+++ b/Electronic_devices_and_circuits/chapter7.ipynb
@@ -0,0 +1,645 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:4a9283ba6472e11de214bfc0c69a7f007685d94fb7b513179011a2e471e81b7b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7:Operational Amplifiers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.1,Page number 361"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V1=120 #negative terminal Vn(uV)\n",
+ "V2=80 #positive terminal Vp(uV)\n",
+ "Ad=10**3 #difference mode gain\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "Vd=V1-V2 #difference mode signal(uV) \n",
+ "Vc=(V1+V2)/2 #common mode signal(uV)\n",
+ "\n",
+ "#Part a\n",
+ "CMRR=100. #common mode rejection ratio\n",
+ "Vo=Ad*Vd*(1+(Vc/(CMRR*Vd))) #output voltage(mV)\n",
+ " \n",
+ "#Part b\n",
+ "CMRR=10**5. #common mode rejection ratio\n",
+ "Vo1=Ad*Vd*(1+(1/CMRR)*(Vc/Vd)) #output voltage(mV) \n",
+ "\n",
+ "#Results\n",
+ "print\"output voltage is\",round(Vo/1E+3),\"mV\"\n",
+ "print\"output voltage is\",round(Vo1/1E+3),\"mV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "output voltage is 41.0 mV\n",
+ "output voltage is 40.0 mV\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.2,Page number 365"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "deltavi=0.5 #change in vi(V)\n",
+ "deltat=10 #change in time(us)\n",
+ "s=1 #slew rate(V/us)\n",
+ "\n",
+ "#Calculations\n",
+ "Kvf=(s*deltat)/deltavi #closed loop gain of amplifier\n",
+ "\n",
+ "#Results\n",
+ "print\"closed loop gain of amplifier is\",Kvf"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "closed loop gain of amplifier is 20.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.3,Page number 365"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "f=50*10**3. #OPAMP freequency(Hz)\n",
+ "Vm=0.02 #maximum value of signal voltage(V)\n",
+ "S=.5*10**6 #slew rate(V/s)\n",
+ "\n",
+ "#Calculations\n",
+ "Kvf=S/(2*(math.pi)*f*Vm) #closed loop gain of amplifier\n",
+ "\n",
+ "#Results\n",
+ "print\"closed loop gain of amplifier is\",round(Kvf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "closed loop gain of amplifier is 80.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.4,Page number 369"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Ic=100 #current at quinscent point(uA)\n",
+ "beta=2000. #current gain\n",
+ "Ad=250 #difference mode gain\n",
+ "CMRR=5000 #as 74 dB=5000,common mode rejection ratio(dB)\n",
+ "\n",
+ "#Calculations\n",
+ "rpi=(25*beta)/Ic #dynamic internal resistance(k ohms) \n",
+ "gm=beta/rpi #transconductance(mS)\n",
+ "Re=CMRR/gm #emitter resistance(k ohms)\n",
+ "Rc=(Ad*2)/gm #collector resistance(k ohms) from formula Ad=gmRc/2\n",
+ "Rin=2*rpi #input resistance(k ohms)\n",
+ "\n",
+ "#Results\n",
+ "print\"Re is\",Re,\"k ohms\"\n",
+ "print\"Rc is\",Rc,\"k ohms\"\n",
+ "print\"input resistance is\",Rin,\"k ohms\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Re is 1250.0 k ohms\n",
+ "Rc is 125.0 k ohms\n",
+ "input resistance is 1000.0 k ohms\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.6,Page number 371"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Icq=.428 #current at quinscent point(uA)\n",
+ "beta=200. #current gain\n",
+ " #as 74 dB=5000,common mode rejection ratio(dB)\n",
+ "Rc=10. #collector resistance(k ohms) \n",
+ "Re=16. #emitter resistance(k ohms) \n",
+ "Vcc=15. #supply voltage(V)\n",
+ "\n",
+ "#Calculations\n",
+ "#Part b\n",
+ "Ibq=Icq/beta #Ib at Q(uA)\n",
+ "rpi=(25*beta)/Icq #dynamic resistance(k ohms)\n",
+ "gm=beta/rpi #transconductance\n",
+ "\n",
+ "#Part b\n",
+ "vo1=Vcc-(Icq*Rc) #terminal 1 voltage(V) \n",
+ "vo2=vo1 #terminal 2 voltage(V) \n",
+ "\n",
+ "#Part c \n",
+ "Ad=(gm*Rc)/2 #differential mode gain\n",
+ "Ac=Rc/(2*Re) #common mode gain\n",
+ "CMRR=Ad/Ac #common mode rejection ratio\n",
+ "\n",
+ "#Part d\n",
+ "Rid=2*rpi #differential input resistance(k ohms)\n",
+ "rpi=11.7 #dynamic resistance(k ohms)\n",
+ "Ric=rpi+(2*(beta+1)*Re) #common mode input resistance(k ohms)\n",
+ "\n",
+ "#Results\n",
+ "print\"Icq is\",Icq,\"mA,and Ibq is \",round((Ibq/1E-3),2),\"uA\"\n",
+ "print\"vo1 and vo2 have same value as\",vo1,\"V\"\n",
+ "print\"\",\n",
+ "print\"Ad:\",round(Ad/1E-3),\",Ac:\",round(Ac,3),\"and CMRR is\",round(CMRR/1E-3)\n",
+ "print\"Rid is\",round((Rid/1E+3),1),\"K ohms and Ric is\",round((Ric/1E+3),2),\" Mohms\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Icq is 0.428 mA,and Ibq is 2.14 uA\n",
+ "vo1 and vo2 have same value as 10.72 V\n",
+ " Ad: 86.0 ,Ac: 0.313 and CMRR is 274.0\n",
+ "Rid is 23.4 K ohms and Ric is 6.44 Mohms\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.7,Page number 373"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "R1=10. #series resistance(K ohms)\n",
+ "Rf=10**3. #feedback resistance(k ohms) \n",
+ "vo=-5. #output voltage(V)\n",
+ "Ri=1000 #input resistance(k ohms)\n",
+ "Av=2.5*10**5 #gain\n",
+ "\n",
+ "#Calculations\n",
+ "v1=-vo*(R1/Rf) #input signal voltage(V)\n",
+ "vi=-vo/Av #inverting voltage(V) \n",
+ "i1=((v1*10**-3)-vi)/R1 #current through R1(uA)\n",
+ "ii=vi/Ri #inverting current(uA)\n",
+ "iF=-ii #forward current(uA)\n",
+ "\n",
+ "#Results\n",
+ "print\"value of vi is\",vi,\"mV\"\n",
+ "print\"value of ii:\",ii,\"uA i1:,\",i1,\"uA and iF is\",iF,\"uA\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of vi is 2e-05 mV\n",
+ "value of ii: 2e-08 uA i1:, 3e-06 uA and iF is -2e-08 uA\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.8,Page number 374"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Vs=4 #source voltage(V)\n",
+ "R1=10. #resistance(k ohms)\n",
+ "Vb=Va=2 #voltage at point A and point B\n",
+ "Rf=30 #forward resistance(k ohms)\n",
+ "\n",
+ "#Calculations\n",
+ "I=(Vs-Vb)/R1 #current(mA)\n",
+ "Vo=(-I*Rf)+Vb #output voltage(V) \n",
+ "\n",
+ "#Result\n",
+ "print\"output voltage\",Vo,\"V\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "output voltage -4.0 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.9,Page number 375"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Rf=2 #as vs=2sinwt and vo=(1+Rf/Rs)*vb and vB=vA=vs\n",
+ "Rs=1\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "vo=(1+(Rf/Rs))*2 #output voltage(V)\n",
+ "\n",
+ "#Result\n",
+ "print\"output voltage\",vo,\"sinwt\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "output voltage 6 sinwt\n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.10,Page number 377"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Ro=100. #output resistance(ohms)\n",
+ "vo=10. #output voltage(V)\n",
+ "A=10**5. #gain \n",
+ "Ri=100*10**3 #input resistance(ohms) \n",
+ "Rs=1*10**3. #resistance(ohms)\n",
+ "Rl=10*10**3 #load resistance(ohms)\n",
+ "\n",
+ "#Calculations\n",
+ "#Part i\n",
+ "iL=vo/Rl #load current(mA)\n",
+ "Avi=vo+(iL*Ro) #voltage gain without feedback\n",
+ "vi=Avi/A #voltage(V)\n",
+ "ii=vi/Ri #current(A) \n",
+ "vs=vo+ii*(Rs+Ri) #source voltage(V)\n",
+ "\n",
+ "#Part ii\n",
+ "Avf=vo/vs #voltage gain with feedback \n",
+ "\n",
+ "\n",
+ "#Part iii\n",
+ "Rif=vs/ii #input resistance(ohms) \n",
+ "Rof=Ro/A #output resistance(ohms)\n",
+ "\n",
+ "#Results\n",
+ "print\"vs is\",round(vs,4),\"V\"\n",
+ "print\"vo/vs that is Avf is\",Avf\n",
+ "print\"input and output resistances are\",Rif,Rof,\"ohms\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "vs is 10.0001 V\n",
+ "vo/vs that is Avf is 0.999989799104\n",
+ "input and output resistances are 9901091099.01 0.001 ohms\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.11,Page number 382"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Vb=Va=3 #voltage at A and B \n",
+ "R1=40*10**3. #input resistance(ohms)\n",
+ "t=50*10**-3 #time after switch is open(mS)\n",
+ "V1=5 #input voltage(V)\n",
+ "\n",
+ "#Calculations\n",
+ "#Part a\n",
+ "vo=-3 #as Va=Vb=3\n",
+ "\n",
+ "#Part b\n",
+ "i1=(V1-Vb)/R1 #input current(A)\n",
+ "vo1=(-250*t)-Va #vo at 50 mS\n",
+ "\n",
+ "#Result\n",
+ "print\"output voltage\",vo1,\"V\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "output voltage -15.5 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.14,Page number 388"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "BW=30*10**3 #specified bandwidth(k Hz)\n",
+ "fc=18*10**3 #centered frequency(Hz)\n",
+ "R1=20 #resistance(k ohms) \n",
+ "R2=180 #resistance(k ohms) \n",
+ "C=1.2*10**-9 #capacitance(F)\n",
+ "G=40 #pass band gain(dB)\n",
+ "g=20 #pass region gain(dB)\n",
+ "\n",
+ "#Calculationsv\n",
+ "fc1=fc-(BW/2) #high pass section frequency(Hz)\n",
+ "fc2=fc+(BW/2) #low pass section frequency(Hz)\n",
+ "Rfc1=1/(2*math.pi*fc1*C) #high pass section resistance(k ohms)\n",
+ "Rfc2=1/(2*math.pi*fc2*C) #low pass section resistance(k ohms)\n",
+ "Gfc1=G-g #gain at frequency 0.3KHz(dB)\n",
+ "Gfc2=G-2*6 #gain at frequency 132KHz(dB)\n",
+ "\n",
+ "#Results\n",
+ "print\"R1 and R2 are\",R1,\"K ohms and\",R2,\"K ohms\"\n",
+ "print\"Rfc1 is\",round(Rfc1/1E+3),\"k ohms and Rfc2 is\",round(Rfc2/1E+3),\"k ohms\"\n",
+ "print\"filter gain at frequencies 0.3 KHz is\",Gfc1,\"dB and 132 k Hz are\",Gfc2,\"dB\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R1 and R2 are 20 K ohms and 180 K ohms\n",
+ "Rfc1 is 44.0 k ohms and Rfc2 is 4.0 k ohms\n",
+ "filter gain at frequencies 0.3 KHz is 20 dB and 132 k Hz are 28 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.21,Page number 402"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "R=250 #resistance(k ohms)\n",
+ "\n",
+ "#Calculations\n",
+ "#part a\n",
+ "R1=-R/(-5) #as vo=-5va+3vb(given),so when vb=0,vo/voa=-250/R1=-5\n",
+ "\n",
+ "#part b\n",
+ "R2=R1/(2-1) #as va=0\n",
+ " #vx=(R1/R1+R)*vob=(1/6)*vb\n",
+ " #vy=(R2/R1+R2)*vb\n",
+ " #vx=vy\n",
+ " #(1/6)*vob=(R2/R1+R2)*vb\n",
+ " #vob=3vb\n",
+ " #(1/6)*3=R2/(50+R2)\n",
+ " \n",
+ "#Result\n",
+ "print\"R1 and R2 are\",R1,\"K ohms and\",R2,\"K ohms\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R1 and R2 are 50 K ohms and 50 K ohms\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.22,Page number 403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "R1=10*10**3 #resistance(k ohms)\n",
+ "C1=10**-6 #capacitance(uF) \n",
+ "C=0.1*10**-6 #capacitance(uF) \n",
+ "R=100*10**3 #resistance(k ohms) \n",
+ "\n",
+ "#Calculations\n",
+ "#part b \n",
+ "wc1=1/C1*R1 #angular frequency(rad/s)\n",
+ "wc2=1/C*R #angular frequency(rad/s)\n",
+ "wc=wc1=wc2 #angular frequency(rad/s)\n",
+ "\n",
+ "#Results\n",
+ "print\"wc1 is\",wc1/1E+10,\"rad/s\"\n",
+ "print\"wc2 is\",wc2/1e+10,\"rad/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wc1 is 100.0 rad/s\n",
+ "wc2 is 100.0 rad/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.23,Page number 404"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "vo1=5 #say (V)\n",
+ "K=25 #proportionality constant \n",
+ "Q=250 #volume of fluid passed across metering point(cm^3) \n",
+ "R1=2.5 #output resistance(k ohms)\n",
+ "\n",
+ "#Calculations\n",
+ "C1=(K*Q)/(R1*vo1) #capacitor(nF)\n",
+ "\n",
+ "#Results\n",
+ "print\"C1 is\",round(C1/1E+1),\"uF\"\n",
+ "print\"vo1 is -5V when Q=250 cm^3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C1 is 50.0 uF\n",
+ "vo1 is -5V when Q=250 cm^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file