diff options
Diffstat (limited to 'Analog_Integrated_Circuits_by_J._B._Gupta')
-rw-r--r-- | Analog_Integrated_Circuits_by_J._B._Gupta/Chaper01.ipynb | 1020 | ||||
-rw-r--r-- | Analog_Integrated_Circuits_by_J._B._Gupta/Chaper02.ipynb | 433 | ||||
-rw-r--r-- | Analog_Integrated_Circuits_by_J._B._Gupta/Chaper03.ipynb | 742 | ||||
-rw-r--r-- | Analog_Integrated_Circuits_by_J._B._Gupta/Chaper04.ipynb | 523 | ||||
-rw-r--r-- | Analog_Integrated_Circuits_by_J._B._Gupta/Chaper05.ipynb | 440 | ||||
-rw-r--r-- | Analog_Integrated_Circuits_by_J._B._Gupta/Chaper06.ipynb | 107 | ||||
-rw-r--r-- | Analog_Integrated_Circuits_by_J._B._Gupta/Chaper07.ipynb | 674 | ||||
-rw-r--r-- | Analog_Integrated_Circuits_by_J._B._Gupta/Chaper08.ipynb | 175 | ||||
-rw-r--r-- | Analog_Integrated_Circuits_by_J._B._Gupta/Chaper10.ipynb | 234 | ||||
-rw-r--r-- | Analog_Integrated_Circuits_by_J._B._Gupta/screenshots/snap2.png | bin | 0 -> 40816 bytes | |||
-rw-r--r-- | Analog_Integrated_Circuits_by_J._B._Gupta/screenshots/snap4.png | bin | 0 -> 17677 bytes | |||
-rw-r--r-- | Analog_Integrated_Circuits_by_J._B._Gupta/screenshots/snap4_2.png | bin | 0 -> 15307 bytes |
12 files changed, 4348 insertions, 0 deletions
diff --git a/Analog_Integrated_Circuits_by_J._B._Gupta/Chaper01.ipynb b/Analog_Integrated_Circuits_by_J._B._Gupta/Chaper01.ipynb new file mode 100644 index 00000000..d7194670 --- /dev/null +++ b/Analog_Integrated_Circuits_by_J._B._Gupta/Chaper01.ipynb @@ -0,0 +1,1020 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:61d9db5db58e478b9fe9a5d30d29d7e25c81e0f55f4212cd024ae335f00db037" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 1- Differential Amplifiers" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.1 - Page 11" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "VCC= 9;#in V\n", + "VEE= -9;# in V\n", + "RC= 3.9;#in k\u03a9\n", + "RE= 3.3;# in k\u03a9\n", + "VBE= 0.7;# in V\n", + "IE= (abs(VEE)-VBE)/(2*RE);# emitter current in mA\n", + "IC= IE;# collector current in mA\n", + "# Collector voltage,\n", + "VC= VCC-IC*RC;# in V\n", + "print \"The collector voltage = %0.3f volts\" %VC \n", + "# Emitter voltage,\n", + "VE= 0-VBE;# in V\n", + "print \"The emitter voltage = %0.1f volts\" %VE\n", + "# Collecctor-emitter voltage,\n", + "VCE= VC-VE;# in V\n", + "print \"The collector-emitter voltage = %0.3f volts\" %VCE\n", + "\n", + "# Note : There is some difference between coding output and the answer of the book \n", + "# because in the book the value of IE is used as 1.25mA while the calculated value of IE is 1.258" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The collector voltage = 4.095 volts\n", + "The emitter voltage = -0.7 volts\n", + "The collector-emitter voltage = 4.795 volts\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.2 - Page 12" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "VCC= 10;#in V\n", + "VEE= -10;# in V\n", + "RC= 10;#in k\u03a9\n", + "RE= 9.3;# in k\u03a9\n", + "VBE= 0.7;# in V\n", + "IE= (abs(VEE)-VBE)/(2*RE);# emitter current in mA\n", + "ICQ= IE;#quiescent collector current in mA\n", + "print \"The quiescent collector current = %0.1f mA\" %ICQ\n", + "# Quiescent Collector-emitter voltage,\n", + "VCEQ= VCC+VBE-ICQ*RC;# in V\n", + "print \"The quiescent collector-emitter voltage = %0.1f volts\" %VCEQ" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The quiescent collector current = 0.5 mA\n", + "The quiescent collector-emitter voltage = 5.7 volts\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.3 - Page 12" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "# Given data\n", + "VCC= 12;#in V\n", + "VEE= -12;# in V\n", + "RC= 10;#in k\u03a9\n", + "RE= 10;# in k\u03a9\n", + "RB= 20;# in k\u03a9\n", + "VBE= 0.7;# in V\n", + "# Part (a)\n", + "beta_dc= 75;\n", + "# Tail current, IT= 2*IE= VEE/RE (ignoring VBE), hence\n", + "IT= abs(VEE)/RE;# in mA\n", + "IC= IT/2;#collector current in mA\n", + "# output voltage,\n", + "Vout1= VCC-(IC*RC);# in V\n", + "IT= (abs(VEE)-VBE)/RE;# tail current in mA (on considering VBE)\n", + "IC= IT/2;#collector current in mA\n", + "Vout2= VCC-IC*RC;# in V\n", + "# Tail current,\n", + "IT= (abs(VEE)-VBE)/(RE+RB/(2*beta_dc));# in mA\n", + "IC= IT/2;#collector current in mA\n", + "# output voltage,\n", + "Vout3= VCC-IC*RC;# in V\n", + "print \"Part (a) : There are three different values of output voltage \"\n", + "print \"%0.f V\" %Vout1\n", + "print \"%0.2f V\" %Vout2\n", + "print \"%0.3f V\" %Vout3\n", + "\n", + "# Part (b)\n", + "IT= abs(VEE)/RE;# in mA\n", + "IC= IT/2;#collector current in mA\n", + "IB= IC/(beta_dc);# base current in mA\n", + "IB= IB*10**3;# in \u00b5A\n", + "VB= -IB*RB;#base voltage in mV\n", + "VB= VB*10**-3;# in V\n", + "print \"\\nPart (b) : \"\n", + "print \"The value of base current = %0.f \u00b5A\" %IB\n", + "print \"The value of base voltage = %0.2f V\" %VB\n", + "\n", + "# Part (c)\n", + "beta_dc1= 60;\n", + "beta_dc2= 80;\n", + "IB1= IC/beta_dc1;#base current for transistor Q1, in mA\n", + "IB1= IB1*10**3;# in \u00b5A\n", + "print \"\\nPart (c)\"\n", + "print \"The value of base current for transistor Q1 = %0.f \u00b5A \" %IB1\n", + "VB1= -IB1*RB;# in mV\n", + "VB1= VB1*10**-3;# in V\n", + "print \"The value of base voltage for transistor Q1 = %0.1f V\" %VB1\n", + "IB2= IC/beta_dc2;#base current for transistor Q2, in mA\n", + "IB2= IB2*10**3;# in \u00b5A\n", + "print \"The value of base current for transistor Q2 = %0.1f \u00b5A\" %IB2\n", + "VB2= -IB2*RB;# in mV\n", + "VB2= VB2*10**-3;# in V\n", + "print \"The value of base voltage for transistor Q2 = %0.2f V\" %VB2\n", + "\n", + "# Note : In the part (c), the unit of base current for transistor Q2 in the book is wrong it will be \u00b5A\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Part (a) : There are three different values of output voltage \n", + "6 V\n", + "6.35 V\n", + "6.424 V\n", + "\n", + "Part (b) : \n", + "The value of base current = 8 \u00b5A\n", + "The value of base voltage = -0.16 V\n", + "\n", + "Part (c)\n", + "The value of base current for transistor Q1 = 10 \u00b5A \n", + "The value of base voltage for transistor Q1 = -0.2 V\n", + "The value of base current for transistor Q2 = 7.5 \u00b5A\n", + "The value of base voltage for transistor Q2 = -0.15 V\n" + ] + } + ], + "prompt_number": 23 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.4 - Page 13" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "RC= 2.2;#in k\u03a9\n", + "RE= 4.7;# in k\u03a9\n", + "RE= RE*10**3;# in \u03a9\n", + "Ri1= 50;# in \u03a9\n", + "Ri2= 50;# in \u03a9\n", + "VCC= 10;#in V\n", + "VEE= 10;# in V\n", + "VBE= 0.7;# in V\n", + "beta_dc= 100;\n", + "beta_ac= 100;\n", + "\n", + "# Part (a)\n", + "# Formula Used : ICQ= IE= (VEE-VBE)/(2*RE+Ri/beta_dc)\n", + "ICQ= (VEE-VBE)/(2*RE+Ri1/beta_dc);#quiescent collector current in A\n", + "ICQ= ICQ*10**3;# in mA\n", + "IE= ICQ;# in mA\n", + "print \"Part (a)\"\n", + "print \"The value of ICQ = %0.4f mA\" %ICQ\n", + "# Quiescent collector-emitter voltage,\n", + "VCEQ= VCC+VBE-ICQ*RC;# in V\n", + "print \"The value of VCEQ = %0.4f V\" %VCEQ\n", + "\n", + "# Part (b)\n", + "re_desh= 26/IE;# AC emitter resistance in \u03a9\n", + "# Formula Used : Ad= Vout/Vind= RC/re_desh\n", + "Ad= RC*10**3/re_desh;# voltage gain\n", + "print \"Part (b)\"\n", + "print \"The voltage gain = %0.2f \" %Ad\n", + "\n", + "# Part (c)\n", + "Rin1= 2*beta_ac*re_desh;# input resistance in \u03a9\n", + "Rin1= Rin1*10**-3;#in k\u03a9\n", + "Rin2= Rin1;# in k\u03a9\n", + "print \"Part (c)\"\n", + "print \"The input resistance = %0.3f k\u03a9\" %Rin1\n", + "\n", + "# Part (d)\n", + "Rout1= RC;# in k\u03a9\n", + "print \"Part (d)\"\n", + "print \"The output resistance = %0.1f k\u03a9\" %Rout1\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Part (a)\n", + "The value of ICQ = 0.9893 mA\n", + "The value of VCEQ = 8.5235 V\n", + "Part (b)\n", + "The voltage gain = 83.71 \n", + "Part (c)\n", + "The input resistance = 5.256 k\u03a9\n", + "Part (d)\n", + "The output resistance = 2.2 k\u03a9\n" + ] + } + ], + "prompt_number": 24 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.5 - Page 14" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "VCC= 15;#in V\n", + "VEE= 15;# in V\n", + "RC= 1;#in M\u03a9\n", + "RE= RC;# in M\u03a9\n", + "beta_ac= 100;\n", + "VBE= 0.7;# in V\n", + "IE= (VEE-VBE)/(2*RE);#emitter current in \u00b5A\n", + "IC= IE;# in collector current in \u00b5A\n", + "re_desh= 26/IE;# ac resistance of each emitter diode in k\u03a9\n", + "Ad= RC*10**3/re_desh;# Voltage gain \n", + "print \"The voltage gain = %0.f\" %Ad\n", + "Zin= 2*beta_ac*re_desh;# input impedance in k\u03a9\n", + "Zin= Zin*10**-3;# in M\u03a9\n", + "print \"The input impedance = %0.4f M\u03a9\" %Zin\n", + "Zout= RC;#output impedance in M\u03a9\n", + "print \"The output impedance = %0.f M\u03a9\" %Zout\n", + "Acm= (RC*10**3)/(2*RE*10**3+re_desh);# common-mode gain\n", + "CMRR= Ad/Acm;# common-mode rejection ratio\n", + "print \"The common-mode rejection ratio = %0.f \" %CMRR \n", + "# When v_in is zero\n", + "Vout= VCC- IC*RC;# in V\n", + "print \"When v_in is zero then the total output voltage at the quiescent value = %0.2f V\" %Vout\n", + "# When v_in= 1mV,\n", + "v_in= 1*10**-3;# in V\n", + "Vout= Ad*v_in;# in V\n", + "print \"When v_in is -1mV then the ac output voltage = %0.3f V\" %Vout\n", + "\n", + "# Note : The value of CMRR in the book is wrong because the correct value of Acm is \"0.4991\" and \n", + "# in the book it is taken as \"0.4225\"\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The voltage gain = 275\n", + "The input impedance = 0.7273 M\u03a9\n", + "The output impedance = 1 M\u03a9\n", + "The common-mode rejection ratio = 551 \n", + "When v_in is zero then the total output voltage at the quiescent value = 7.85 V\n", + "When v_in is -1mV then the ac output voltage = 0.275 V\n" + ] + } + ], + "prompt_number": 27 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.6 - Page 16" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "VEE= 5;# supply voltage in V\n", + "RC= 2*10**3;# collector resistance in \u03a9\n", + "RE= 4.3;# emitter resistance in k\u03a9\n", + "VBE= 0.7;# in V\n", + "VT= 26;# in mV\n", + "IE= (VEE-VBE)/(2*RE);#emitter current in mA\n", + "re_desh= VT/IE;#dynamic emitter resistance in \u03a9\n", + "Ad= RC/(2*re_desh);# differential mode gain\n", + "print \"The differential mode gain = %0.2f\" %Ad\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The differential mode gain = 19.23\n" + ] + } + ], + "prompt_number": 28 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.7 - Page 17" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "VEE= 5;# supply voltage in V\n", + "RC= 2*10**3;# collector resistance in \u03a9\n", + "RE= 4.3;# emitter resistance in k\u03a9\n", + "VBE= 0.7;# in V\n", + "VT= 26;# in mV\n", + "IE= (VEE-VBE)/(2*RE);#emitter current in mA\n", + "re_desh= VT/IE;#dynamic emitter resistance in \u03a9\n", + "Ad= RC/(2*re_desh);# differential mode gain\n", + "Acm= RC/(2*RE*10**3+re_desh);# common mode gain\n", + "print \"The common mode gain = %0.4f\" %Acm\n", + "CMRR= Ad/Acm;# common mode rejection ratio\n", + "print \"The CMRR = %0.1f\" %CMRR\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The common mode gain = 0.2312\n", + "The CMRR = 83.2\n" + ] + } + ], + "prompt_number": 29 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.8 - Page 19" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "VEE= 9;#in V\n", + "VCC= 9;#in V \n", + "RC= 47*10**3;# collector resistance in \u03a9\n", + "RE= 43*10**3;# emitter resistance in \u03a9\n", + "vin1= 2.5*10**-3;# in V\n", + "Ri1= 20*10**3;# in \u03a9\n", + "Ri2= Ri1;# in \u03a9\n", + "VBE= 0.7;# in V\n", + "VT= 26*10**-3;# in V\n", + "beta1= 75;\n", + "beta2= 75;\n", + "IE= (VEE-VBE)/(2*RE+Ri1/beta1);#emitter current in A\n", + "ICQ= IE;# quiescent current in A\n", + "VCEQ= VCC+VBE-ICQ*RC;# quiescent collector voltage in V\n", + "re_desh= VT/IE;#AC emitter resistance in \u03a9\n", + "Ad= RC/re_desh;# voltage gain\n", + "vout= Ad*vin1;# output voltage in V\n", + "print \"The output voltage = %0.3f V\" %vout" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The output voltage = 0.435 V\n" + ] + } + ], + "prompt_number": 30 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.9 - Page 20" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "RC= 2.2;#in k\u03a9\n", + "RE= 4.7;# in k\u03a9\n", + "Ri1= 50*10**-3;# in k\u03a9\n", + "Ri2= 50*10**-3;# in k\u03a9\n", + "VCC= 10;#in V\n", + "VEE= 10;# in V\n", + "VBE= 0.7;# in V\n", + "beta_dc= 100;\n", + "beta_ac= 100;\n", + "\n", + "# Part (i)\n", + "# Formula Used : ICQ= IE= (VEE-VBE)/(2*RE+Ri/beta_dc)\n", + "ICQ= (VEE-VBE)/(2*RE+Ri1/beta_dc);#quiescent collector current in mA\n", + "IE= ICQ;# in mA\n", + "print \"Part (i) : Dual-input, unbalanced output\"\n", + "print \"The value of ICQ = %0.4f mA\" %ICQ\n", + "# Quiescent collector-emitter voltage,\n", + "VCEQ= VCC+VBE-ICQ*RC;# in V\n", + "print \"The value of VCEQ = %0.4f V\" %VCEQ\n", + "re_desh= 26/IE;# AC emitter resistance in \u03a9\n", + "Rin1= 2*beta_ac*re_desh;# input resistance in \u03a9\n", + "Rin1= Rin1*10**-3;#in k\u03a9\n", + "Rin2= Rin1;# in k\u03a9\n", + "print \"The value of Rin1 = %0.3f k\u03a9 \" %Rin1\n", + "print \"The value of Rin2 = %0.3f k\u03a9 \" %Rin1\n", + "Rout= RC;# in k\u03a9\n", + "print \"The value of Rout = %0.1f k\u03a9\" %Rout \n", + "print \"The value of RC = %0.1f k\u03a9\" %RC\n", + "# Formula Used : Ad= Vout/Vind= RC/re_desh\n", + "Ad= RC*10**3/(re_desh*2);# voltage gain of dual input, unbalanced output\n", + "print \"The value of Ad = %0.3f \" %Ad\n", + "\n", + "# Part (ii)\n", + "print \"\\nPart (ii) : Single-output, balanced output\"\n", + "print \"The value of ICQ = %0.4f mA\" %ICQ\n", + "print \"The value of VCEQ = %0.4f V\" %VCEQ\n", + "print \"The value of Rin = %0.3f k\u03a9\" %Rin1\n", + "print \"The value of Rout1 = %0.1f k\u03a9\" %Rout\n", + "print \"The value of Rout2 = %0.1f k\u03a9\" %Rout\n", + "# Formula Used : Ad= Vout/Vind= RC/re_desh\n", + "Ad= RC*10**3/(re_desh);# voltage gain of dual input, unbalanced output\n", + "print \"The value of Ad = %0.2f\" %Ad\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Part (i) : Dual-input, unbalanced output\n", + "The value of ICQ = 0.9893 mA\n", + "The value of VCEQ = 8.5235 V\n", + "The value of Rin1 = 5.256 k\u03a9 \n", + "The value of Rin2 = 5.256 k\u03a9 \n", + "The value of Rout = 2.2 k\u03a9\n", + "The value of RC = 2.2 k\u03a9\n", + "The value of Ad = 41.855 \n", + "\n", + "Part (ii) : Single-output, balanced output\n", + "The value of ICQ = 0.9893 mA\n", + "The value of VCEQ = 8.5235 V\n", + "The value of Rin = 5.256 k\u03a9\n", + "The value of Rout1 = 2.2 k\u03a9\n", + "The value of Rout2 = 2.2 k\u03a9\n", + "The value of Ad = 83.71\n" + ] + } + ], + "prompt_number": 35 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.10 - Page 22" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "VEE= 9;#in V\n", + "VCC= 9;#in V \n", + "RC= 47*10**3;# collector resistance in \u03a9\n", + "RE= 43*10**3;# emitter resistance in \u03a9\n", + "vin1= 2.5*10**-3;# in V\n", + "Ri1= 20*10**3;# in \u03a9\n", + "Ri2= Ri1;# in \u03a9\n", + "VBE= 0.7;# in V\n", + "VT= 26*10**-3;# in V\n", + "beta1= 75;\n", + "beta2= 75;\n", + "IE= (VEE-VBE)/(2*RE+Ri1/beta1);#emitter current in A\n", + "ICQ= IE;# quiescent current in A\n", + "VCEQ= VCC+VBE-ICQ*RC;# quiescent collector voltage in V\n", + "re_desh= VT/IE;#AC emitter resistance in \u03a9\n", + "Ad= RC/(2*re_desh);# voltage gain\n", + "vout= Ad*vin1;# output voltage in V\n", + "print \"The output voltage = %0.3f V\" %vout" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The output voltage = 0.217 V\n" + ] + } + ], + "prompt_number": 38 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.11 - Page 26" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "VEE= 15 #in V\n", + "VD1= 0.7 # in V\n", + "VD2= 0.7 # in V\n", + "VBE= 0.7 # in V\n", + "Beta= 100 \n", + "VT= 26 # in mV\n", + "R3= 180 #in \u03a9\n", + "RC= 470 # in \u03a9\n", + "VB3= -VEE+VD1+VD2 #in V\n", + "VE3= VB3-VBE #voltage at emitter terminal of transistor Q3 in V\n", + "IE3= (VE3-(-VEE))/R3 #emitter current through transistor Q3 in A\n", + "\n", + "#Part (i) \n", + "ICQ= IE3/2 #quiescent current in A\n", + "ICQ= round(ICQ*10**3) #in mA\n", + "IE= ICQ #emitter current in mA\n", + "print \"Part (i) : Quiescent current = %0.f mA \" %ICQ\n", + "VCEQ= VEE+VBE-ICQ*10**-3*RC #quiescent collector-emitter voltage in V\n", + "print \"The quiescent collector-emitter voltage = %0.2f V\" %VCEQ\n", + "re_desh= VT/IE #AC emitter resistance in \u03a9\n", + "\n", + "# Part (ii)\n", + "Ad= RC/re_desh # differential voltage gain\n", + "print \"Part (ii) : Differential voltage gain = %0.2f \" %Ad\n", + "\n", + "# Part (iii)\n", + "Rin1= 2*Beta*re_desh # in \u03a9\n", + "Rin1= Rin1*10**-3 # in k\u03a9\n", + "print \"Part (iii) : The input resistance = %0.1f k\u03a9\" %Rin1" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Part (i) : Quiescent current = 2 mA \n", + "The quiescent collector-emitter voltage = 14.76 V\n", + "Part (ii) : Differential voltage gain = 36.15 \n", + "Part (iii) : The input resistance = 2.6 k\u03a9\n" + ] + } + ], + "prompt_number": 41 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.12 - Page 27" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "VEE= 10 #in V\n", + "VCC=10 # in V\n", + "VD1= 0.715 # in V\n", + "Vz= 6.2# in V\n", + "VBE= VD1 # in V\n", + "Izt= 41 # in mA\n", + "R3= 2.7 # in k\u03a9\n", + "RC= 4.7 # in k\u03a9\n", + "VT= 26 # in mV\n", + "beta_ac= 100 \n", + "beta_dc= 100 \n", + "VB3= -VEE+Vz+VD1 #voltage at the base of transistor Q3 in V\n", + "VE3= VB3-VBE # voltage at the emitter of transistor Q3 in V\n", + "IE3= (VE3-(-VEE))/R3 #emitter current through transistor Q3 in mA\n", + "ICQ= IE3/2 #quiescent current in mA\n", + "VCEQ= VCC+VBE-ICQ*RC # in V\n", + "print \"Part (c) : The Q-point values : \" \n", + "print \"The value of ICQ = %0.3f mA\" %ICQ\n", + "print \"The value of VCEQ = %0.2f V\" %VCEQ\n", + "re_desh= VT/ICQ #dynamic emitter resistance in \u03a9\n", + "Ad= RC*10**3/re_desh # voltage gain\n", + "print \"Part (a) : The voltage gain = %0.1f\" %Ad\n", + "Rin= 2*beta_ac*re_desh # differential input resistance in \u03a9\n", + "Rin=Rin*10**-3 # in k\u03a9\n", + "print \"Part (b) : The differential input resistance = %0.2f k\u03a9\" %Rin" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Part (c) : The Q-point values : \n", + "The value of ICQ = 1.148 mA\n", + "The value of VCEQ = 5.32 V\n", + "Part (a) : The voltage gain = 207.5\n", + "Part (b) : The differential input resistance = 4.53 k\u03a9\n" + ] + } + ], + "prompt_number": 44 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.13 - Page 31" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "VCC= 12 # in V\n", + "VBE= 0.7 # in V\n", + "R1= 25 # in k\u03a9\n", + "# I= I_REF= (VCC-VBE)/R1\n", + "I= (VCC-VBE)/R1 # mirrored current in mA\n", + "print \"The mirrored current = %0.3f mA\" %I" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The mirrored current = 0.452 mA\n" + ] + } + ], + "prompt_number": 45 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.14 - Page 31" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "VCC= 10 # in V\n", + "VBE= 0.7 # in V\n", + "R1= 15 # in k\u03a9\n", + "Beta= 100 \n", + "I_REF= (VCC-VBE)/R1 #reference current in mA\n", + "print \"The reference current = %0.2f mA\" %I_REF\n", + "Iout= I_REF*Beta/(Beta+2) # output current in mA\n", + "print \"The output current = %0.3f mA\" %Iout" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The reference current = 0.62 mA\n", + "The output current = 0.608 mA\n" + ] + } + ], + "prompt_number": 46 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.15 - Page 32" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "VCC= 15 # in V\n", + "VBE= 0.7 # in V\n", + "R1= 2.2 # in k\u03a9\n", + "Beta= 220 \n", + "I_REF= (VCC-VBE)/R1 #reference current in mA\n", + "# Formula : I= IC= I_REF*(Beta/(Beta+2))\n", + "IC= I_REF*Beta/(Beta+2) # in mA\n", + "print \"The value of current = %0.2f mA\" %IC" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of current = 6.44 mA\n" + ] + } + ], + "prompt_number": 48 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.16 - Page 32" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "Vz= 1.8 # in V\n", + "VBE= 0.7 # in V\n", + "RE= 1 # in k\u03a9\n", + "Beta= 180 \n", + "VB= Vz-VBE # in V\n", + "IE= VB/RE #emitter current in mA\n", + "# Formula : I= IC= IE*(Beta/(Beta+1))\n", + "IC= IE*Beta/(Beta+1) # in mA\n", + "print \"The value of current = %0.3f mA\" %IC" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of current = 1.094 mA\n" + ] + } + ], + "prompt_number": 49 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.17 - Page 33" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "VCC= 9 # in V\n", + "R1= 12 # in k\u03a9\n", + "VBE= 0.7 # in V\n", + "Beta= 100 \n", + "I_REF= (VCC-2*VBE)/R1 #reference current in mA\n", + "print \"The reference current = %0.4f mA\" %I_REF\n", + "Iout= I_REF/(1+2/(Beta*(1+Beta))) #output current in mA\n", + "print \"The output current = %0.4f mA\" %Iout\n", + "IC2= Iout #collector current in mA\n", + "print \"The collector current = %0.4f mA\" %IC2\n", + "# IB3= I_REF-IC1= I_REF-IC2 (since IC1= IC2)\n", + "IB3= I_REF-IC2 #base current of transistor Q3 in mA\n", + "IB3= IB3*10**3 # in \u00b5A\n", + "print \"The base current of transistor Q3 = %0.1f \u00b5A\" %IB3\n", + "IB3= 0.1 # in \u00b5A\n", + "IE3= (1+Beta)*IB3 # emitter current of transistor Q3 in \u00b5A\n", + "print \"The emitter current of transistor Q3 = %0.1f \u00b5A\" %IE3\n", + "IB1= IE3/2 #base current in \u00b5A\n", + "IB2= IB1 # in \u00b5A\n", + "print \"The base current = %0.2f \u00b5A\" %IB1" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The reference current = 0.6333 mA\n", + "The output current = 0.6332 mA\n", + "The collector current = 0.6332 mA\n", + "The base current of transistor Q3 = 0.1 \u00b5A\n", + "The emitter current of transistor Q3 = 10.1 \u00b5A\n", + "The base current = 5.05 \u00b5A\n" + ] + } + ], + "prompt_number": 50 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.18 - Page 33" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "VEE= 10 # in V\n", + "VBE= 0.715 # in V\n", + "beta_ac= 100 \n", + "beta_dc= 100 \n", + "R= 5.6 # in k\u03a9\n", + "I_REF= (VEE-VBE)/R # in mA\n", + "IC1= I_REF*beta_ac/(2+beta_ac) # in mA\n", + "# IC1= IC2= IC3 (by symmetry)\n", + "IC2= IC1 # in mA\n", + "IC3= IC2 # in mA\n", + "I_RC= IC1+IC2+IC3 # current through RC in mA\n", + "print \"The current through RC = %0.2f mA\" %I_RC" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The current through RC = 4.88 mA\n" + ] + } + ], + "prompt_number": 51 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.19 - Page 34" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "VCC= 5 # in V\n", + "VBE= 0.7 # in V\n", + "VEE= -5 # in V\n", + "VT= 26 # in mV\n", + "R= 18.6 # in k\u03a9\n", + "Beta= 100 \n", + "I2= (VCC-VBE-VEE)/R # in mA\n", + "IC3= I2 # in mA (due to current mirror action)\n", + "IE= IC3/2 # emitter current of transistor Q1 and Q2\n", + "re_desh= VT/IE #AC emitter resistance of transistor in \u03a9\n", + "Rin1= 2*Beta*re_desh # in \u03a9\n", + "Rin1= Rin1*10**-3 # in k\u03a9\n", + "print \"The differential input resistance = %0.1f k\u03a9\" %Rin1" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The differential input resistance = 20.8 k\u03a9\n" + ] + } + ], + "prompt_number": 52 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.20 - Page 42" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "VCC= 18 # in V\n", + "R1= 4.7 # in k\u03a9\n", + "R2= 5.6 # in k\u03a9\n", + "R3= 6.8 # in k\u03a9\n", + "RE= 1.1 # in k\u03a9\n", + "VBE= 0.7 # in V\n", + "VT= 26 # in mV\n", + "RC= 1.8*10**3 # in \u03a9\n", + "IE1= (VCC*R1/(R1+R2+R3)-VBE)/RE # in mA\n", + "re_desh= VT/IE1 #dynamic resistance of each transistor in \u03a9\n", + "Av= -RC/re_desh # voltage gain of the cascode amplifier\n", + "print \"The voltage gain of the cascode amplifier = %0.1f\" %Av" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The voltage gain of the cascode amplifier = -267.3\n" + ] + } + ], + "prompt_number": 55 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Analog_Integrated_Circuits_by_J._B._Gupta/Chaper02.ipynb b/Analog_Integrated_Circuits_by_J._B._Gupta/Chaper02.ipynb new file mode 100644 index 00000000..91b1146e --- /dev/null +++ b/Analog_Integrated_Circuits_by_J._B._Gupta/Chaper02.ipynb @@ -0,0 +1,433 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:fbfd2008fca7908da17c106dc65086ccb8dfa867c246542b164a8092db725ebf" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 2- Operational Amplifiers and Their Parameters" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.2 - Page 59" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "Vin1= 5 # in \u00b5V\n", + "Vin1= Vin1*10**-6 # in V\n", + "Vin2= -7 #in \u00b5V\n", + "Vin2= Vin2*10**-6 # in V\n", + "Av= 2*10**5 # unit less\n", + "Rin= 2 # in M\u03a9\n", + "Vout= (Vin1-Vin2)*Av # in V\n", + "print \"The output voltage = %0.1f volts\" %Vout" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The output voltage = 2.4 volts\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.4 - Page 60" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "# Given data\n", + "Rs= 2 # in k\u03a9\n", + "RL= 5 # in k\u03a9\n", + "A= 10**5 # unit less\n", + "Rin= 100 #in k\u03a9\n", + "Rout= 50 # in \u03a9\n", + "Vout= 10 # in V\n", + "# For Vout = 10 V, V1= V2 = Vout\n", + "V1= Vout # in V\n", + "V2= V1 # in V\n", + "# From equation V1= Vs*Rin/(Rin+Rs)\n", + "Vs= V1*(Rin+Rs)/Rin # in V\n", + "Vout_by_Vs= Vout/Vs # value of Vout/Vs\n", + "print \"The value of Vs =%0.1f volts\" %Vs\n", + "print \"The value of Vout/Vs = %0.2f\" %Vout_by_Vs\n", + "print \"The input resistance of the circuit = %0.f k\u03a9\" %Rin" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of Vs =10.2 volts\n", + "The value of Vout/Vs = 0.98\n", + "The input resistance of the circuit = 100 k\u03a9\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.6 - Page 63" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "# Given data\n", + "Ad= 100 # differential mode gain\n", + "Acm= 0.01 # common mode gain\n", + "CMRR= Ad/Acm \n", + "CMRR_desh= 20*math.log(CMRR,10) # CMRR in dB\n", + "print \"CMRR = %0.f dB\" %CMRR_desh" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "CMRR = 80 dB\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.7 - Page 63" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "Ad= 10**5 # differential mode gain\n", + "CMRR= 10**5 \n", + "# Common-mode gain,\n", + "Acm= Ad/CMRR \n", + "print \"The common-mode gain = %0.f\" %Acm" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The common-mode gain = 1\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.8 - Page 63" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "V1= 10 # in mV\n", + "V2= 9 # in mV\n", + "Ad= 60 # differential voltage gain in dB\n", + "Ad= 10**(Ad/20) \n", + "CMRR= 80 # in dB\n", + "CMRR= 10**(CMRR/20) \n", + "Vd= V1-V2 # difference signal in mV\n", + "Vcm= (V1+V2)/2 # common-mode signal in mV\n", + "# Output voltage,\n", + "Vout= Ad*Vd*(1+1/CMRR*Vcm/Vd) # in mV\n", + "AdVd= Ad*Vd # in mV\n", + "# Error voltage\n", + "Verror= Vout-AdVd # in mV\n", + "Per_error= Verror/Vout*100 # percentage error\n", + "print \"The error voltage = %0.2f mV\" %Verror\n", + "print \"The percentage error in the output voltage = %0.3f \" %Per_error" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The error voltage = 0.95 mV\n", + "The percentage error in the output voltage = 0.095 \n" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.9 - Page 63" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "V1= 745 # in \u00b5V\n", + "V2= 740 # in \u00b5V\n", + "Ad= 5*10**5 # differential voltage gain\n", + "CMRR= 80 # in dB\n", + "CMRR= 10**(CMRR/20) \n", + "Vd= V1-V2 # difference signal in \u00b5V\n", + "Vcm= (V1+V2)/2 # common-mode signal in \u00b5V\n", + "# Output voltage,\n", + "Vout= Ad*Vd*(1+1/CMRR*Vcm/Vd) # in \u00b5V\n", + "AdVd= Ad*Vd # in \u00b5V\n", + "# Error voltage\n", + "Verror= Vout-AdVd # in \u00b5V\n", + "Vout= Vout*10**-6 # in V\n", + "Verror= Verror*10**-6 # in V\n", + "Per_error= Verror/Vout*100 # percentage error\n", + "print \"The output voltage = %0.6f V\" %Vout\n", + "print \"The percentage error in the output voltage= %0.4f\" %Per_error" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The output voltage = 2.537125 V\n", + "The percentage error in the output voltage= 1.4633\n" + ] + } + ], + "prompt_number": 16 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.10 - Page 65" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "Vd= 25 #differential input voltage in \u00b5V\n", + "Vd= Vd*10**-6 # in V\n", + "A= 200000 # open loop gain\n", + "# Output voltage,\n", + "Vout= A*Vd # in V\n", + "print \"The output voltage = \u00b1 %0.f \" %Vout" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The output voltage = \u00b1 5 \n" + ] + } + ], + "prompt_number": 18 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.11 - Page 72" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "dVout= 20 # change in output voltage in V\n", + "dt= 4 # change in time in \u00b5s\n", + "SR= dVout/dt # slew rate in V/\u00b5s\n", + "print \"The slew rate = %0.f V/\u00b5s\" %SR" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The slew rate = 5 V/\u00b5s\n" + ] + } + ], + "prompt_number": 19 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.12 - Page 72" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "IB1= 10 # in \u00b5A\n", + "IB2= 7.5 # in \u00b5A\n", + "# Input bias current,\n", + "I_in_bias= (IB1+IB2)/2 # in \u00b5A\n", + "# Input offset current,\n", + "I_in_offset= IB1-IB2 # in \u00b5A\n", + "print \"The input bias current = %0.2f \u00b5A\" %I_in_bias\n", + "print \"The input offset current = %0.1f \u00b5A\" %I_in_offset" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The input bias current = 8.75 \u00b5A\n", + "The input offset current = 2.5 \u00b5A\n" + ] + } + ], + "prompt_number": 20 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.13 - Page 73" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from numpy import pi\n", + "# Given data\n", + "SR= 6 # slew rate in V/\u00b5s\n", + "SR= 6*10**6 # in V/s\n", + "\n", + "# Part (i) For Vmax= 1V\n", + "Vmax= 1 # in V\n", + "fmax= SR/(2*pi*Vmax) # limiting frequency in Hz\n", + "fmax= fmax*10**-6 # in MHz\n", + "print \"Part (i) : The limiting frequency for maximum voltage of 1V = %0.3f MHz\" %fmax\n", + "\n", + "# Part (ii) For Vmax= 10V\n", + "Vmax= 10 # in V\n", + "fmax= SR/(2*pi*Vmax) # limiting frequency in Hz\n", + "fmax= fmax*10**-3 # in kHz\n", + "print \"Part (ii) : The limiting frequency for maximum voltage of 10V = %0.1f kHz\"%fmax" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Part (i) : The limiting frequency for maximum voltage of 1V = 0.955 MHz\n", + "Part (ii) : The limiting frequency for maximum voltage of 10V = 95.5 kHz\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.14 - Page 73" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "Vpp= 3 # output voltage in V\n", + "del_t= 4 # in \u00b5s\n", + "del_V= 90*Vpp/100-10*Vpp/100 # in V\n", + "# Required slew rate,\n", + "SR= del_V/del_t # in V/\u00b5s\n", + "print \"The required slew rate = %0.1f V/\u00b5s\" %SR" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The required slew rate = 0.6 V/\u00b5s\n" + ] + } + ], + "prompt_number": 22 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Analog_Integrated_Circuits_by_J._B._Gupta/Chaper03.ipynb b/Analog_Integrated_Circuits_by_J._B._Gupta/Chaper03.ipynb new file mode 100644 index 00000000..93af7d63 --- /dev/null +++ b/Analog_Integrated_Circuits_by_J._B._Gupta/Chaper03.ipynb @@ -0,0 +1,742 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:478d2286c724fe1697b07415e388c61efae3feb10b5764ad632fe267d6730d95" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter -3 Op-Amps With Negative Feedback" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.1 - Page 88" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "Af= 10 # voltage gain\n", + "R1= 3 # in \u03a9\n", + "Rf= (Af-1)*R1 # From Af= 1+Rf/R1\n", + "print \"The value of R1 = %d \u03a9\" %R1\n", + "print \"The value of Rf = %d \u03a9\" %Rf" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of R1 = 3 \u03a9\n", + "The value of Rf = 27 \u03a9\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.2 - Page 88" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "R1= 2 # in k\u03a9\n", + "Rf_min= 0 \n", + "Rf_max= 100 # in k\u03a9\n", + "# Formula Used : Af= 1+Rf/R1\n", + "Af_max= 1+Rf_max/R1 # maximum closed loop voltage gain\n", + "Af_min= 1+Rf_min/R1 # minimum closed loop voltage gain\n", + "print \"The maximum closed loop voltage gain = %d\" %Af_max\n", + "print \"The minimum closed loop voltage gain = %d\" %Af_min" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The maximum closed loop voltage gain = 51\n", + "The minimum closed loop voltage gain = 1\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.3 - Page 89" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "# Given data\n", + "R1= 100 # in \u03a9\n", + "Rf= 100*10**3 # in \u03a9\n", + "A= 2*10**5 #unit less\n", + "Rin= 2*10**6 # in \u03a9\n", + "Rout= 75 # in \u03a9\n", + "f0= 5 # in Hz\n", + "B= R1/(R1+Rf) # feedback fraction\n", + "AB= A*B # feedback factor\n", + "Af= 1+Rf/R1 # voltage gain\n", + "Rin_f= Rin*(1+AB) # input resistance in \u03a9\n", + "Rout_f= Rout/(1+AB) # output resistance in \u03a9\n", + "f_f= f0*(1+AB) # bandwidth in Hz\n", + "Rin_f= Rin_f*10**-6 # in M\u03a9\n", + "print \"The voltage gain is = %d\" %Af\n", + "print \"The input resistance = %0.1f M\u03a9\" %Rin_f\n", + "print \"The output resistance = %0.4f \u03a9\" %Rout_f\n", + "print \"The bandwidth = %0.f Hz\" %f_f" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The voltage gain is = 1001\n", + "The input resistance = 401.6 M\u03a9\n", + "The output resistance = 0.3735 \u03a9\n", + "The bandwidth = 1004 Hz\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.4 - Page 89" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "Rin= 2*10**6 # in \u03a9\n", + "Rout= 75 # in \u03a9\n", + "f0= 5 # in Hz\n", + "A= 2*10**5 #unit less\n", + "B=1 # for voltage follower\n", + "Rf= 0 \n", + "Af= 1 # voltage gain (since Rf=0)\n", + "Rin_f= A*Rin # input resistance in \u03a9\n", + "Rin_f= Rin_f*10**-9 # in G\u03a9\n", + "Rout_f= Rout/A #output resistance in \u03a9\n", + "f_f= f0*A # bandwidth in Hz\n", + "f_f= f_f*10**-6 # in MHz\n", + "print \"The voltage gain = %d\" %Af \n", + "print \"The input resistance = %0.f G\u03a9\" %Rin_f\n", + "print \"The output resistance = %0.6f \u03a9\" %Rout_f\n", + "print \"The bandwidth = %0.f MHz\" %f_f" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The voltage gain = 1\n", + "The input resistance = 400 G\u03a9\n", + "The output resistance = 0.000375 \u03a9\n", + "The bandwidth = 1 MHz\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.5 - Page 92" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "Rin= 2*10**6 # in \u03a9\n", + "Rout= 75 # in \u03a9\n", + "f0= 5 # in Hz\n", + "R1= 330 #in \u03a9\n", + "Rf= 3.3*10**3 # in \u03a9\n", + "A= 2*10**5 #unit less\n", + "B= R1/(R1+Rf) # feedback fraction\n", + "AB= A*B # feedback factor\n", + "Af= -Rf/R1 # colsed-loop voltage gain\n", + "Rin_f= R1 # input resistance with feedback in \u03a9\n", + "Rout_f=Rout/(1+AB) # output resistance with feedback in \u03a9\n", + "f_f= f0*(1+AB) # closed-loop bandwidth in Hz\n", + "f_f= f_f*10**-3 # in kHz\n", + "print \"The closed-loop voltage gain = %0.f\" %Af \n", + "print \"The input resistance = %0.f \u03a9\" %Rin_f\n", + "print \"The output resistance = %0.5f \u03a9\" %Rout_f\n", + "print \"The bandwidth = %0.2f kHz\" %f_f" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The closed-loop voltage gain = -10\n", + "The input resistance = 330 \u03a9\n", + "The output resistance = 0.00412 \u03a9\n", + "The bandwidth = 90.91 kHz\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.6 - Page 93" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "Rin= 2*10**6 # in \u03a9\n", + "Rout= 75 # in \u03a9\n", + "f0= 5 # in Hz\n", + "A= 2*10**5 #unit less\n", + "B= 1/2 # feedback fraction (since R1=Rf)\n", + "Af= -1 # voltage gain\n", + "R1= 330 #in \u03a9 (assume)\n", + "Rin_f= R1 # input resistance with feedback in \u03a9\n", + "Rout_f= Rout/(A/2) # output resistance in \u03a9\n", + "f_f= A/2*f0 # in Hz\n", + "f_f= f_f*10**-6 # in MHz\n", + "print \"The closed-loop voltage gain = %0.f\" %Af\n", + "print \"The input resistance = %0.f \u03a9\" %Rin_f\n", + "print \"The output resistance = %0.5f \u03a9\" %Rout_f\n", + "print \"The bandwidth = %0.1f MHz\" %f_f" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The closed-loop voltage gain = -1\n", + "The input resistance = 330 \u03a9\n", + "The output resistance = 0.00075 \u03a9\n", + "The bandwidth = 0.5 MHz\n" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.7 - Page 93" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "Rin= 2*10**6 # in \u03a9\n", + "Rout= 75 # in \u03a9\n", + "f0= 5 # in Hz\n", + "A= 200000 #unit less\n", + "VCC= 15 # in V\n", + "VEE= -15 # in V\n", + "Vout_swing= 13 # in V\n", + "# Part (i) : Non-inverting Amplifier\n", + "R1= 1*10**3 # in \u03a9\n", + "Rf= 10*10**3 #in \u03a9\n", + "B= R1/(R1+Rf) # feedback fraction\n", + "AB= A*B # feedback factor\n", + "Af= 1+Rf/R1 # voltage gain\n", + "Rin_f= Rin*(1+AB) # input resistance in \u03a9\n", + "Rin_f=Rin_f*10**-9 # in G\u03a9\n", + "Rout_f= Rout/(1+AB) # output resistance in \u03a9\n", + "f_f= f0*(1+AB) # bandwidth in Hz\n", + "f_f=f_f*10**-3 # in kHz\n", + "VooT= Vout_swing/(1+AB) #in V\n", + "VooT= VooT*10**3 # in mV\n", + "print \"Part (i) : Non-inverting Amplifier :- \" \n", + "print \"The closed-loop voltage gain = %0.f \" %Af\n", + "print \"The input resistance = %0.4f G\u03a9\" %Rin_f\n", + "print \"The output resistance = %0.5f \u03a9\" %Rout_f\n", + "print \"The bandwidth = %0.2f kHz\" %f_f\n", + "print \"The output offset voltage with feedback = \u00b1 %0.3f mV\" %VooT\n", + "\n", + "# Part (ii) : Inverting Amplifier\n", + "R1= 470 # in \u03a9\n", + "Rf= 4.7*10**3 #in \u03a9\n", + "B= R1/(R1+Rf) # feedback fraction\n", + "AB= A*B # feedback factor\n", + "Af= -Rf/R1 # voltage gain\n", + "Rin_f= R1 # input resistance in \u03a9\n", + "Rout_f= Rout/(1+AB) # output resistance in \u03a9\n", + "f_f= f0*(1+AB) # bandwidth in Hz\n", + "f_f=f_f*10**-3 # in kHz\n", + "VooT= Vout_swing/(1+AB) #in V\n", + "VooT= VooT*10**3 # in mV\n", + "print \"\\nPart (ii) : Inverting Amplifier :- \" \n", + "print \"The closed-loop voltage gain = %0.f \" %Af\n", + "print \"The input resistance = %0.f \u03a9\" %Rin_f\n", + "print \"The output resistance = %0.5f \u03a9\" %Rout_f\n", + "print \"The bandwidth = %0.2f kHz\" %f_f\n", + "print \"The output offset voltage with feedback = \u00b1 %0.3f mV\" %VooT" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Part (i) : Non-inverting Amplifier :- \n", + "The closed-loop voltage gain = 11 \n", + "The input resistance = 36.3656 G\u03a9\n", + "The output resistance = 0.00412 \u03a9\n", + "The bandwidth = 90.91 kHz\n", + "The output offset voltage with feedback = \u00b1 0.715 mV\n", + "\n", + "Part (ii) : Inverting Amplifier :- \n", + "The closed-loop voltage gain = -10 \n", + "The input resistance = 470 \u03a9\n", + "The output resistance = 0.00412 \u03a9\n", + "The bandwidth = 90.91 kHz\n", + "The output offset voltage with feedback = \u00b1 0.715 mV\n" + ] + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.8 - Page 94" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "Rf= 500*10**3 # in \u03a9\n", + "R1= 5*10**3 #in \u03a9\n", + "Vin= 0.1 # input voltage in V\n", + "Af= -Rf/R1 # voltage gain\n", + "Rin= R1 # input resistance in \u03a9\n", + "Rin= Rin*10**-3 # in k\u03a9\n", + "Rout= 0 # in \u03a9\n", + "Vout= Af*Vin # output voltage in V\n", + "I_in= Vin/R1 # input current in A\n", + "I_in= I_in*10**3 # in mA\n", + "print \"The amplifier circuit voltage gain = %0.f\" %Af\n", + "print \"The amplifier circuit input resistance = %0.f k\u03a9\" %Rin\n", + "print \"The amplifier circuit output resistance %0.f \u03a9\" %Rout\n", + "print \"The output voltage = %0.f V\" %Vout\n", + "print \"The input current = %0.2f mA\" %I_in" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The amplifier circuit voltage gain = -100\n", + "The amplifier circuit input resistance = 5 k\u03a9\n", + "The amplifier circuit output resistance 0 \u03a9\n", + "The output voltage = -10 V\n", + "The input current = 0.02 mA\n" + ] + } + ], + "prompt_number": 16 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.9 - Page 94" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "Rf= 1*10**6 # in \u03a9\n", + "Rin= 1*10**6 # in \u03a9\n", + "Vout_by_Vin= -Rf/Rin # (since Vout= -Rf/Rin*Vin)\n", + "Av= Vout_by_Vin # voltage gain\n", + "print \"The voltage gain = %0.f\" %Av\n", + "# I_in= Iout (As it is a unity gain inverter)\n", + "Ain= 1 #input impedance (since I_in= Iout)\n", + "print \"The input impedance = %0.f\" %Ain\n", + "Ap= abs(Av*Ain) # power gain\n", + "print \"The power gain = %0.f\" %Ap" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The voltage gain = -1\n", + "The input impedance = 1\n", + "The power gain = 1\n" + ] + } + ], + "prompt_number": 17 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.10 - Page 95" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "Av= -30 # voltage gain\n", + "Rf= 1*10**6 # in \u03a9\n", + "#Since, Av= Vo/Vi=-Rf/R1, so\n", + "R1= -Rf/Av # in \u03a9\n", + "R1= R1*10**-3 # in k\u03a9\n", + "Rf= Rf*10**-6 # in M\u03a9\n", + "print \"The value of Rf = %0.f M\u03a9\" %Rf\n", + "print \"The value of R1 = %0.f k\u03a9\" %R1" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of Rf = 1 M\u03a9\n", + "The value of R1 = 33 k\u03a9\n" + ] + } + ], + "prompt_number": 19 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.11 - Page 95" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "Av= -8 # voltage gain\n", + "Vi= 1 # input voltage in V\n", + "I1= 15 #maximum current in \u00b5A\n", + "I1= I1*10**-6 # in A\n", + "R1= Vi/I1 # in \u03a9\n", + "R1= R1*10**-3 # in k\u03a9\n", + "print \"The value of R1 = %0.2f k\u03a9 (Standard value 68 k\u03a9)\" %R1\n", + "R1= 68 # in k\u03a9\n", + "Rf= -Av*R1 # in k\u03a9\n", + "print \"The value of Rf = %0.f k\u03a9\" %Rf\n", + "\n", + "# Note : The calculated value of Rf in the book is wrong [-(-8)*68 is not equal to 384], it will be 544 k\u03a9" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of R1 = 66.67 k\u03a9 (Standard value 68 k\u03a9)\n", + "The value of Rf = 544 k\u03a9\n" + ] + } + ], + "prompt_number": 20 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.14 - Page 98" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "# Given data\n", + "Rf= 20*10**3 # in \u03a9\n", + "R1= 10*10**3 # in \u03a9\n", + "\n", + "#Part (i) When switch S is off,\n", + "Aoff_non_inv= 1+Rf/R1 # non-inverting amplifier circuit gain\n", + "Aoff_inv= -Rf/R1 # inverting amplifier gain\n", + "Aoff= Aoff_non_inv+Aoff_inv # amplifier circuit gain\n", + "print \"Part (i) : When switch S is off, the gain of the amplifier circuit = %0.f\" %Aoff\n", + "\n", + "# Part (ii) When switch S is on,\n", + "Aon= -Rf/R1 # amplifier circuit gain\n", + "print \"Part (ii) : When switch S is on, the gain of the amplifer circuit = %0.f\" %Aon" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Part (i) : When switch S is off, the gain of the amplifier circuit = 1\n", + "Part (ii) : When switch S is on, the gain of the amplifer circuit = -2\n" + ] + } + ], + "prompt_number": 23 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.17 - Page 100" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "R1= 1*10**3 # in \u03a9\n", + "R2= 1*10**3 # in \u03a9\n", + "Rf= 10*10**3 # in \u03a9\n", + "R3= 10*10**3 # in \u03a9\n", + "Vd= 5 # in mV\n", + "Vcm= 2 # in mV\n", + "CMRR_dB= 90 # in dB\n", + "CMRR= 10**(CMRR_dB/20) \n", + "Ad= Rf/R1 # differential voltage gain\n", + "# Part (i)\n", + "Vout= Ad*Vd # output voltage in mV\n", + "print \"Part (i) : The output voltage = %0.f mV\" %Vout\n", + "# Part (ii)\n", + "Acm= Ad/CMRR # common mode gain\n", + "AcmVcm= Acm*Vcm # magnitude of the induced 60Hz noise at the output in mV\n", + "AcmVcm= AcmVcm*10**3 # in \u00b5V\n", + "print \"The magnitude of the induced 60Hz noise at the output = %0.3f \u00b5V\" %AcmVcm" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Part (i) : The output voltage = 50 mV\n", + "The magnitude of the induced 60Hz noise at the output = 0.632 \u00b5V\n" + ] + } + ], + "prompt_number": 26 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.18 - Page 101" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "R1= 540 # in \u03a9\n", + "R3= 540 # in \u03a9\n", + "R2= 5.4*10**3 # in \u03a9\n", + "Rf= 5.4*10**3 # in \u03a9\n", + "Vin1= -2.5 # in V\n", + "Vin2= -3.5 #in V\n", + "Rin= 2*10**6 #input impedance in \u03a9\n", + "A= 2*10**5 # open loop voltage gain\n", + "Ad= (1+Rf/R1) # voltage gain\n", + "print \"The voltage gain = %0.f\" %Ad\n", + "Vout=Ad*(Vin1-Vin2) # output voltage in V\n", + "print \"The output voltage = %0.f V\" %Vout\n", + "Rin_f1= Rin*(1+A*R1/(R1+Rf)) # in \u03a9\n", + "Rin_f2= Rin*(1+A*R2/(R1+Rf)) # in \u03a9\n", + "print \"The value of Rin_f1 = %0.3e \u03a9\" %Rin_f1\n", + "print \"The value of Rin_f2 = %0.3e \u03a9\" %Rin_f2" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The voltage gain = 11\n", + "The output voltage = 11 V\n", + "The value of Rin_f1 = 3.637e+10 \u03a9\n", + "The value of Rin_f2 = 3.636e+11 \u03a9\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.19 - Page 104" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "Vin= 100*10**-3 # in V\n", + "Vout= 4.25 # in V\n", + "R1= 100 # in \u03a9\n", + "# Formula Used : Vout= (1+2*Rf/Rf)*Vin\n", + "Rf= (Vout/Vin-1)*R1/2 # in \u03a9\n", + "Rf= Rf*10**-3 # in k\u03a9\n", + "print \"The value of R1 = %0.f \u03a9\" %R1\n", + "print \"The value of Rf = %0.1f k\u03a9 (Standard value 2.2 k\u03a9)\" %Rf" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of R1 = 100 \u03a9\n", + "The value of Rf = 2.1 k\u03a9 (Standard value 2.2 k\u03a9)\n" + ] + } + ], + "prompt_number": 34 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.20 - Page 105" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "R1= 3.3 # in k\u03a9\n", + "R2= 3.3 # in k\u03a9\n", + "R3= 1.2 # in k\u03a9\n", + "R4= 1.2 # in k\u03a9\n", + "Rf= 3.9 # in k\u03a9\n", + "R5= 3.9 # in k\u03a9\n", + "Rp= 2.5 # in k\u03a9\n", + "A= 2*10**5 # unit less\n", + "f0= 5 # in Hz\n", + "Rin= 2*10**6 # in \u03a9\n", + "Rout= 75 # in \u03a9\n", + "Ad= -(1+2*R1/Rp)*Rf/R3 # voltage gain\n", + "print \"The voltage gain = %0.2f\" %Ad\n", + "Rinf= Rin*(1+A*(R1+Rp)/(2*R1+Rp)) #input resistance in \u03a9\n", + "Rinf= Rinf*10**-9 # in G\u03a9\n", + "print \"The input resistance = %0.3f G\u03a9\" %Rinf\n", + "Routf= Rout/abs(1+A/Ad) # output resistance in \u03a9\n", + "print \"The output resistance = %0.6f \u03a9\" %Routf\n", + "f_f= A*f0/abs(Ad) # bandwidth in Hz\n", + "f_f= f_f*10**-3 # in kHz\n", + "print \"The bandwidth = %0.2f kHz\" %f_f" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The voltage gain = -11.83\n", + "The input resistance = 254.947 G\u03a9\n", + "The output resistance = 0.004437 \u03a9\n", + "The bandwidth = 84.53 kHz\n" + ] + } + ], + "prompt_number": 40 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Analog_Integrated_Circuits_by_J._B._Gupta/Chaper04.ipynb b/Analog_Integrated_Circuits_by_J._B._Gupta/Chaper04.ipynb new file mode 100644 index 00000000..df79509a --- /dev/null +++ b/Analog_Integrated_Circuits_by_J._B._Gupta/Chaper04.ipynb @@ -0,0 +1,523 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:82c8d5f860356c297d844f450b7b99e07d6600cdfdfdce8bdfd016a85610bc69" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter -4 Linear Applications of Op-Amps" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.1 - Page 111" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "Vout= '-(V1+10*V2+100*V3)' #given expression \n", + "Rf= 100 # in k\u03a9\n", + "# Vout= -Rf*(V1/R1+V2/R2+V3/R3)= -(Rf/R1*V1+Rf/R2*V2+Rf/R3*V3) (i)\n", + "# Compare equation(i) with given expression\n", + "R1= Rf/1 #in k\u03a9\n", + "R2= Rf/10 # in k\u03a9\n", + "R3= Rf/100 # in k\u03a9\n", + "print \"The value of Rf = %0.f k\u03a9\" %Rf\n", + "print \"The value of R1 = %0.f k\u03a9\" %R1\n", + "print \"The value of R2 = %0.f k\u03a9\" %R2\n", + "print \"The value of R3 = %0.f k\u03a9\" %R3" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of Rf = 100 k\u03a9\n", + "The value of R1 = 100 k\u03a9\n", + "The value of R2 = 10 k\u03a9\n", + "The value of R3 = 1 k\u03a9\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.2 - Page 112" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "# Given data\n", + "Rf= 12 # in k\u03a9\n", + "R1= 12 # in k\u03a9\n", + "R2= 2 # in k\u03a9\n", + "R3= 3 # in k\u03a9\n", + "V1= 9 # in V\n", + "V2= -3 # in V\n", + "V3= -1 # in V\n", + "Vout= -Rf*(V1/R1+V2/R2+V3/R3) # output voltage in V\n", + "print \"The output voltage = %0.f V\" %Vout" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The output voltage = 13 V\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.3 - Page 112" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "Vout= '(-V1+2*V2-3*V3)' #given expression \n", + "Rf= 6 # in k\u03a9\n", + "# Vout= -(Rf/R1*V1+Rf/R2*V2+Rf/R3*V3) (i)\n", + "# Compare equation(i) with given expression\n", + "R1= Rf/1 #in k\u03a9\n", + "R2= Rf/2 # in k\u03a9\n", + "R3= Rf/3 # in k\u03a9\n", + "print \"The value of Rf = %0.f k\u03a9\" %Rf\n", + "print \"The value of R1 = %0.f k\u03a9\" %R1\n", + "print \"The value of R2 = %0.f k\u03a9\" %R2\n", + "print \"The value of R3 = %0.f k\u03a9\" %R3" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of Rf = 6 k\u03a9\n", + "The value of R1 = 6 k\u03a9\n", + "The value of R2 = 3 k\u03a9\n", + "The value of R3 = 2 k\u03a9\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.4 - Page 112" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "Vout= '(-2*V1+3*V2+4*V3)' #given expression \n", + "R3= 10 # in k\u03a9\n", + "# Vout= -(Rf/R1*V1+Rf/R2*V2+Rf/R3*V3) (i)\n", + "# Compare equation(i) with given expression\n", + "Rf= 4*R3 #in k\u03a9\n", + "R2= Rf/3 # in k\u03a9\n", + "R1= Rf/2 # in k\u03a9\n", + "print \"The value of Rf = %0.f k\u03a9\" %Rf\n", + "print \"The value of R2 = %0.2f k\u03a9\" %R2\n", + "print \"The value of R1 = %0.f k\u03a9\" %R1" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of Rf = 40 k\u03a9\n", + "The value of R2 = 13.33 k\u03a9\n", + "The value of R1 = 20 k\u03a9\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.5 - Page 113" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "V1= 2 # in V\n", + "V2= -1 # in V\n", + "R=100 # in \u03a9 (assumed)\n", + "Vs1= V1*(R/2)/(R+R/2) # in V\n", + "Rf= 2*R # in \u03a9\n", + "Vo_1= Vs1*(1+Rf/R) # in V\n", + "Vs2= V2*(R/2)/(R+R/2) # in V\n", + "Vo_2= Vs2*(1+Rf/R) # in V\n", + "Vout= Vo_1+Vo_2 #output voltage in V\n", + "print \"The output voltage = %0.f V\" %Vout" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The output voltage = 1 V\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.7 - Page 118" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "Vin= 10 # in V\n", + "R= 2.2 # in k\u03a9\n", + "R= R*10**3 # in k\u03a9\n", + "Ad= 10**5 # differential voltage gain\n", + "C=1 # in \u00b5F\n", + "C= C*10**-6 # in F\n", + "T= 1 # in ms\n", + "T= T*10**-3 # in s\n", + "I= Vin/R # in mA\n", + "V= I*T/C # output voltage at the end of pulse in mV\n", + "print \"The output voltage at the end of the pulse = %0.3f V\" %V\n", + "RC_desh= R*C*Ad # closed-loop time constant in sec.\n", + "print \"The closed-loop time constant = %0.f seconds\" %RC_desh" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The output voltage at the end of the pulse = 4.545 V\n", + "The closed-loop time constant = 220 seconds\n" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.8 - Page 119" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "A_dB= 20 # peak gain in dB\n", + "A= 10**(A_dB/20) # peak gain\n", + "omega= 10000 # in rad/second\n", + "C= 0.01 # in \u00b5F\n", + "C= C*10**-6 # in F\n", + "Rf= 10 # in k\u03a9\n", + "# Vout/V1= Rf/R1= A\n", + "R1= Rf/A # in k\u03a9\n", + "print \"The value of Rf = %0.f k\u03a9\" %Rf\n", + "print \"The value of R1 = %0.f k\u03a9\" %R1" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of Rf = 10 k\u03a9\n", + "The value of R1 = 1 k\u03a9\n" + ] + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.9 - Page 119" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "%matplotlib inline\n", + "import numpy as np\n", + "from scipy.integrate import quad\n", + "from sympy import symbols\n", + "import matplotlib.pyplot as plt\n", + "from matplotlib.pylab import plot, show, ylim, xlim, text, subplot\n", + "a= symbols('a')\n", + "# Given data\n", + "R= 40 # in k\u03a9\n", + "R= R*10**3 # in \u03a9\n", + "C= 0.2 # in \u00b5F\n", + "C= C*10**-6 # in F\n", + "Vin= 5 # in V\n", + "V1= 3 # in V\n", + "t= 50 # in ms\n", + "Vout= 3 # in V\n", + "# Evaluation the integration\n", + "def integrand(x):\n", + " return (Vin-V1)\n", + "a=1\n", + "ans, err = quad(integrand, 0, 50)\n", + "# Output voltage when swith is open\n", + "vout= -1/(R*C)*ans*10**-3+Vout #in V\n", + "plt.plot([0,t],[Vout,vout]) \n", + "plt.title('Output voltage') \n", + "plt.xlabel('Time in milliseconds')\n", + "plt.ylabel('Output voltage in volts')\n", + "plt.show()\n", + "print \"Plot for output voltage shown in figure\" " + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "display_data", + "png": "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\n", + "text": [ + "<matplotlib.figure.Figure at 0x7f46831f7110>" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Plot for output voltage shown in figure\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.10 - Page 120" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from scipy.integrate import quad\n", + "import numpy as np\n", + "# Given data\n", + "R= 500 # in k\u03a9\n", + "R= R*10**3 # in \u03a9\n", + "C= 10 # in \u00b5F\n", + "C= C*10**-6 # in F\n", + "vout= 12 # in V\n", + "v= -0.5 # in V\n", + "# given output equation : vout= -1/RC * integrate[v(t) * dt + A] \n", + "# Evaluation the integration\n", + "def integrand(t):\n", + " return -t\n", + "ans, err = quad(integrand, 0, 1)\n", + "vout_by_t= -1/(R*C)*ans #in V/sec\n", + "# Time required for saturation of output voltage\n", + "t= vout/vout_by_t # in sec\n", + "print \"The time duration required for saturation of output voltage = %0.f seconds\" %t" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The time duration required for saturation of output voltage = 120 seconds\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.12 - Page 124" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "%matplotlib inline\n", + "from sympy import symbols, simplify, sin\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "# Given data\n", + "fa= 1 # in kHz\n", + "fa=fa*10**3 # in Hz\n", + "Vp=1.5 # in volt\n", + "f= 200 # in Hz\n", + "C=0.1 # in micro F\n", + "C=C*10**-6 # in F\n", + "R= 1/(2*np.pi*fa*C) # in ohm\n", + "R=R*10**-3 # in k ohm\n", + "R=np.floor(R*10)/10 # in k ohm\n", + "fb= 20*fa # in Hz\n", + "R_desh= 1/(2*np.pi*fb*C) # in ohm\n", + "# Let\n", + "R_desh= 82 # in ohm\n", + "R_OM= R # in k ohm\n", + "print \"Value of R_OM = %0.1f k ohm\" %R_OM\n", + "CR= C*R \n", + "# Vin= Vp*sin(omega*t)= 1.5*sin(400*t)\n", + "# v_out= -CR*diff(v_in) = -0.2827 Cos(400*pi*t)# in micro volt\n", + "print \"Output Voltage = -0.2827 Cos(400*pi*t)\" \n", + "t = np.arange(0, .015, 1.0/44100)\n", + "v_out=-0.2827*np.sin(400*np.pi*t+np.pi/2)# in micro volt\n", + "plot(t,v_out) \n", + "plt.title('Output Voltage Waveform')\n", + "plt.xlabel('Time in ms')\n", + "plt.ylabel('Vout in Volts') \n", + "print \"Output Voltage waveform is shown in figure.\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Value of R_OM = 1.5 k ohm\n", + "Output Voltage = -0.2827 Cos(400*pi*t)\n", + "Output Voltage waveform is shown in figure." + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "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\n", + "text": [ + "<matplotlib.figure.Figure at 0x7fbcffdbf150>" + ] + } + ], + "prompt_number": 24 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.15 - Page 130" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "R1= 50 # in k\u03a9\n", + "R3=15 # in k\u03a9\n", + "R4=R3 # in k\u03a9\n", + "# For minimum differential voltage gain,\n", + "Ad_min= 5 # and\n", + "Ad= Ad_min \n", + "# From Ad= 1+2*R2/R1\n", + "R2= (Ad-1)*R1/2 # in k\u03a9\n", + "# For maximum differential voltage gain,\n", + "Ad_max= 200 # and\n", + "Ad= Ad_max \n", + "# From Ad= 1+2*R2/R1\n", + "R1_min= round(2*R2/(Ad-1)) # in k\u03a9\n", + "print \"The value of R1 = %0.f - 50 k\u03a9 potentiometer\" %R1_min\n", + "print \"The value of R2 = %0.f k\u03a9\" %R2\n", + "print \"The value of R3 and R4 = %0.f k\u03a9 each\" %R3" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of R1 = 1 - 50 k\u03a9 potentiometer\n", + "The value of R2 = 100 k\u03a9\n", + "The value of R3 and R4 = 15 k\u03a9 each\n" + ] + } + ], + "prompt_number": 23 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Analog_Integrated_Circuits_by_J._B._Gupta/Chaper05.ipynb b/Analog_Integrated_Circuits_by_J._B._Gupta/Chaper05.ipynb new file mode 100644 index 00000000..3dccad74 --- /dev/null +++ b/Analog_Integrated_Circuits_by_J._B._Gupta/Chaper05.ipynb @@ -0,0 +1,440 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:7f84289e42d01b19d3ca56822b4d2fb25574e2434ae2096a05b0c50827f2c4a4" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter -5 Waveform Generators" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.1 - Page 143" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "C= 0.01 # in \u00b5F\n", + "C=C*10**-6 # in F\n", + "R_A= 2 # in k\u03a9\n", + "R_A=R_A*10**3 # in \u03a9\n", + "R_B= 100 # in k\u03a9\n", + "R_B=R_B*10**3 # in \u03a9\n", + "T_HIGH= 0.693*(R_A+R_B)*C #charging period in second\n", + "T_LOW= 0.693*R_B*C # discharging period in second\n", + "T= T_HIGH+T_LOW # overall period of oscillations in second\n", + "f= 1/T # frequency of oscillations in Hz\n", + "D= T_HIGH/T*100 # duty cycle in %\n", + "print \"The frequency of oscillations = %0.1f Hz\" %f\n", + "print \"Duty cycle = %0.1f %%\" %D" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The frequency of oscillations = 714.4 Hz\n", + "Duty cycle = 50.5 %\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.2 - Page 143" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "C= 1 # in \u00b5F\n", + "C=C*10**-6 # in F\n", + "R_A= 4.7 # in k\u03a9\n", + "R_A=R_A*10**3 # in \u03a9\n", + "R_B= 1 # in k\u03a9\n", + "R_B=R_B*10**3 # in \u03a9\n", + "T_on= 0.693*(R_A+R_B)*C #positive pulse width in second\n", + "T_on= T_on*10**3 # in ms\n", + "T_off= 0.693*R_B*C # pulse width in second\n", + "T_off= T_off*10**3 # in ms\n", + "f= 1.4/((R_A+2*R_B)*C) # free running frequency in Hz\n", + "D= round((R_A+R_B)/(R_A+2*R_B)*100) # in %\n", + "print \"The positive pulse width = %0.2f ms\" %T_on\n", + "print \"The negative pulse width = %0.3f ms\" %T_off\n", + "print \"The frequency of oscillations = %0.1f Hz\" %f\n", + "print \"Duty cycle = %0.f %%\" %D" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The positive pulse width = 3.95 ms\n", + "The negative pulse width = 0.693 ms\n", + "The frequency of oscillations = 209.0 Hz\n", + "Duty cycle = 85 %\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.3 - Page 144" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "C= 0.01 # in \u00b5F\n", + "C= C*10**-6 # in F\n", + "f= 1 # in kHz\n", + "f= f*10**3 # in Hz\n", + "# For 50% duty cycle, Ton= Toff = T/2 and R_A= R_B\n", + "# From equation, f= 1.44/((R_A+R_B)*C)= 1.44/(2*R_A*C)\n", + "R_A= 1.44/(2*f*C) # in \u03a9\n", + "R_A= R_A*10**-3 # in k\u03a9\n", + "R_B= R_A # in k\u03a9\n", + "print \"The value of R_A and R_B = %0.f k\u03a9 (Standard value 68 k\u03a9)\" %R_A\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of R_A and R_B = 72 k\u03a9 (Standard value 68 k\u03a9)\n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.4 - Page 144" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "f= 700 # in Hz\n", + "C= 0.01 # in \u00b5F (assumed)\n", + "C= C*10**-6 # in F\n", + "# For 50% duty cycle, Ton= Toff = T/2 and R_A= R_B\n", + "# From equation, f= 1.44/((R_A+R_B)*C)= 1.44/(2*R_A*C)\n", + "R_A= 1.44/(2*f*C) # in \u03a9\n", + "R_A= R_A*10**-3 # in k\u03a9\n", + "R_B= R_A # in k\u03a9\n", + "C= C*10**6 # in \u00b5F\n", + "print \"The value of R_A and R_B = %0.f k\u03a9 (Standard value 100 k\u03a9)\" %R_A\n", + "print \"The value of C = %0.2f \u00b5F\" %C" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of R_A and R_B = 103 k\u03a9 (Standard value 100 k\u03a9)\n", + "The value of C = 0.01 \u00b5F\n" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.5 - Page 144" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "f= 800 # in Hz\n", + "C= 0.01 # in \u00b5F (assumed)\n", + "C= C*10**-6 # in F\n", + "D= 60 # in duty cycle in %\n", + "# D= (R_A+R_B)/(R_A+2*R_B)*100= 60 or\n", + "# R_B= 2*R_A\n", + "R_A= 1.44/(f*5*C) # in \u03a9 (From f=1.44/((R_A+2*R_B)*C))\n", + "R_A= R_A*10**-3 #in k\u03a9\n", + "R_B= 2*R_A # in k\u03a9\n", + "C= C*10**6 #in F\n", + "print \"The value of R_A = %0.f k\u03a9\" %R_A\n", + "print \"The value of R_B = %0.f k\u03a9\" %R_B\n", + "print \"The value of C = %0.2f \u00b5F\" %C" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of R_A = 36 k\u03a9\n", + "The value of R_B = 72 k\u03a9\n", + "The value of C = 0.01 \u00b5F\n" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.6 - Page 148" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from numpy import pi\n", + "import math\n", + "# Given data\n", + "Rs= 5*10**3 #series resistance in \u03a9\n", + "Ls= 0.8 # seried inductance in H\n", + "Cs= 0.08*10**-12 #series capacitance in F\n", + "Cp= 1.0*10**-12 # parallel capacitance in F\n", + "fs= 1/(2*pi*math.sqrt(Ls*Cs)) # series resonant frequency in Hz\n", + "fs= fs*10**-3 # in kHz\n", + "fp= 1/(2*pi)*math.sqrt((1+Cs/Cp)/(Ls*Cs)) # parallel resonant frequency in Hz\n", + "fp= fp*10**-3 # in kHz\n", + "print \"The series resonant frequency = %0.f kHz\" %fs\n", + "print \"The parallel resonant frequency = %0.f kHz\" %fp" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The series resonant frequency = 629 kHz\n", + "The parallel resonant frequency = 654 kHz\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.7 - Page 148" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "C1= 1000*10**-12 # in F\n", + "C2= 100*10**-12 # in F\n", + "f= 1*10**6 # in Hz\n", + "R1= 1*10**6 # in \u03a9 (assume)\n", + "R2= 10*10**3 # in \u03a9 (assume)\n", + "Rs= 800 # in \u03a9\n", + "VDD= 5 # in V\n", + "C_T= C1*C2/(C1+C2) #total capacitance in F\n", + "# At resonance, X_L= X_CT or 2*pi*f*L= 1/(2*pi*f*C_T), So\n", + "L= 1/((2*pi*f)**2*C_T) # in H\n", + "L= L*10**3 # in mH\n", + "print \"The value of inductance = %0.3f mH\" %L\n", + "i_p= VDD/(R1+R2+Rs) #current through crystal in A\n", + "# Power dissipated in the crystal,\n", + "P_D= (0.707*i_p)**2*Rs # in W\n", + "P_D= P_D*10**9 #in nW\n", + "print \"The power dissipated in the crystal = %0.1f nW\" %P_D" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of inductance = 0.279 mH\n", + "The power dissipated in the crystal = 9.8 nW\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.8 - Page 153" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "# Given data\n", + "R= 12*10**3 # in \u03a9\n", + "R1= 120*10**3 # in \u03a9\n", + "Rf= 1*10**6 # in \u03a9\n", + "C= 0.1*10**-6 # in F\n", + "Vsupply= 12 # in V\n", + "Vsat= 10 #in V\n", + "#Part (i) : Signal frequency,\n", + "f= Rf/(4*R1*R*C) # in Hz\n", + "f= f*10**-3 # in kHz\n", + "print \"Part (i) : The signal frequency = %0.3f kHz\" %f\n", + "# Part (ii) : Amplitude of triangular wave,\n", + "Vpp= 2*R1/Rf*Vsat # Vp-p\n", + "print \"Part (ii) : Amplitude of the triangular wave = %0.1f Vp-p\" %Vpp\n", + "# Amplitude of square wave,\n", + "Vpp= Vsat-(-Vsat) #Vp-p\n", + "print \"Amplitude of the square wave = %0.f Vp-p\" %Vpp" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Part (i) : The signal frequency = 1.736 kHz\n", + "Part (ii) : Amplitude of the triangular wave = 2.4 Vp-p\n", + "Amplitude of the square wave = 20 Vp-p\n" + ] + } + ], + "prompt_number": 18 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.10 - Page 160" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from numpy import pi\n", + "from __future__ import division\n", + "# Given data\n", + "I_Bmax= 500 # in nA\n", + "I_Bmax= I_Bmax*10**-9 # in A\n", + "VCC= 10 # in V\n", + "f= 10*10**3 # in Hz\n", + "I1= 500*10**-6 # current through R1 in A (assume)\n", + "Vout= (VCC-1) #output voltage in V\n", + "# Rf+R1= Vout/I1 and Rf= 2*R1, so\n", + "R1= Vout/(3*I1) # in \u03a9\n", + "R1= R1*10**-3 # in k\u03a9\n", + "print \"The value of R1 = %0.1f k\u03a9 (standard value 5.6 k\u03a9)\" %R1\n", + "R1= 5.6 # in k\u03a9 (standard value)\n", + "Rf= 2*R1 # in k\u03a9\n", + "print \"The value of Rf = %0.1f k\u03a9 (standard value 12 k\u03a9)\" %Rf\n", + "R= R1 # in k\u03a9\n", + "R= R*10**3 # in \u03a9\n", + "C= 1/(2*pi*f*R) # in F\n", + "C= C*10**12 # in pF\n", + "print \"The value of C = %0.f pF (Standard capacitor 2700 pF)\" %C" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of R1 = 6.0 k\u03a9 (standard value 5.6 k\u03a9)\n", + "The value of Rf = 11.2 k\u03a9 (standard value 12 k\u03a9)\n", + "The value of C = 2842 pF (Standard capacitor 2700 pF)\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.11 - Page 161" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "R= 1*10**3 # in \u03a9\n", + "C= 4.7*10**-6 # in F\n", + "omega= 1/(R*C) # radians/second\n", + "f= omega/(2*pi) # in Hz\n", + "print \"The frequency of oscillation = %0.2f Hz\" %f" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The frequency of oscillation = 33.86 Hz\n" + ] + } + ], + "prompt_number": 6 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Analog_Integrated_Circuits_by_J._B._Gupta/Chaper06.ipynb b/Analog_Integrated_Circuits_by_J._B._Gupta/Chaper06.ipynb new file mode 100644 index 00000000..9e3c7e2e --- /dev/null +++ b/Analog_Integrated_Circuits_by_J._B._Gupta/Chaper06.ipynb @@ -0,0 +1,107 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:35cefa1a4ef186a1d32cec5eab7cbcc5a59aadb0b75b7fb4053796fe08e1ae51" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter -6 Digitally Controlled Frequency Synthesizers" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.1 - Page 180" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from numpy import pi\n", + "import math\n", + "from fractions import Fraction \n", + "# Given data\n", + "R1= 15*10**3 # in \u03a9\n", + "C1= 0.01*10**-6 # in F\n", + "C2= 10*10**-6 # in F\n", + "R2= 3.6*10**3 # in \u03a9\n", + "Vpos= 12 # in V\n", + "Vneg= -12 # in V\n", + "f_out= 1.2/(4*R1*C1) # free running frequency in Hz\n", + "f_out= f_out*10**-3 # in kHz\n", + "print \"The free running frequency = %0.f kHz\" %f_out \n", + "f_L= 8*f_out/(Vpos-(Vneg)) #Lock-range in kHz\n", + "print \"Lock-range of the circuit = \u00b1 \", Fraction(f_L).limit_denominator(100), \"kHz\" \n", + "f_L= f_L*10**3 # in Hz\n", + "f_C= math.sqrt(f_L/(2*pi*R2*C2)) # Hz\n", + "print \"Capture-range of the circuit = \u00b1 %0.2f Hz\" %f_C" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The free running frequency = 2 kHz\n", + "Lock-range of the circuit = \u00b1 2/3 kHz\n", + "Capture-range of the circuit = \u00b1 54.29 Hz\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.2 - Page 185" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "f_out_max= 200 # in kHz\n", + "f_lowest= 1 # in Hz\n", + "# Frequency of reference oscillator,\n", + "f_ref_os= 2.2*f_out_max # in kHz\n", + "print \"The frequency of reference oscillator = %0.f kHz\" %f_ref_os\n", + "# Formula used : f_lowest= f_ref_os/2**n\n", + "n= round(math.log(f_ref_os*10**3/f_lowest, 10)/math.log(2,10))\n", + "print a\n", + "print \"The number of bits required = %0.f\" %n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The frequency of reference oscillator = 440 kHz\n", + "19.0\n", + "The number of bits required = 19\n" + ] + } + ], + "prompt_number": 26 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Analog_Integrated_Circuits_by_J._B._Gupta/Chaper07.ipynb b/Analog_Integrated_Circuits_by_J._B._Gupta/Chaper07.ipynb new file mode 100644 index 00000000..5d533560 --- /dev/null +++ b/Analog_Integrated_Circuits_by_J._B._Gupta/Chaper07.ipynb @@ -0,0 +1,674 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:f8c6689b27d28f641fc8e24d065a4f69d8ad2a49bb0688697280bb451473eab1" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter-7 Active Filters" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.1 - Page 204" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from numpy import pi\n", + "from __future__ import division\n", + "# Given data\n", + "f_H= 2*10**3 #cut-off frequency in Hz\n", + "C= 0.01*10**-6 # in F\n", + "passband_gain= 2.5 \n", + "R= 1/(2*pi*f_H*C) # in \u03a9\n", + "R= 8.2 # in k\u03a9 (standard value)\n", + "# 1+Rf/R1= passband_gain or Rf should be equal to 1.5*R1 since Rf||R1= R\n", + "R1= passband_gain/1.5*R # in k\u03a9\n", + "print \"The value of R1 = %0.2f k\u03a9 (Standard value 15 k\u03a9)\" %R1 \n", + "Rf= int(1.5*R1) # in k\u03a9\n", + "print \"The value of Rf = %0.f k\u03a9\" % Rf" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of R1 = 13.67 k\u03a9 (Standard value 15 k\u03a9)\n", + "The value of Rf = 20 k\u03a9\n" + ] + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.2 - Page 207" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "f_H= 2*10**3 #cut-off frequency in Hz\n", + "C= 0.033*10**-6 # in F\n", + "R= 1/(2*pi*f_H*C) # in \u03a9\n", + "# 2*R= Rf*R1/(Rf+R1)= 0.586*R1**2/(1.586*R1) since Rf= 0.586*R1\n", + "R1= 2*R*1.586/0.586 # in \u03a9\n", + "R1= round(R1*10**-3) # in k\u03a9\n", + "print \"The value of R1 = %0.f k\u03a9 (Standard value 15 kohm)\" %R1\n", + "R1= 15 # in k\u03a9\n", + "Rf= R1*0.586 # in k\u03a9\n", + "#Rf= floor(1.5*R1) # in k\u03a9\n", + "print \"The value of Rf = %0.2f k\u03a9\" %Rf\n", + "print \"(The value of Rf may be taken as a pot of 10 k\u03a9)\" " + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of R1 = 13 k\u03a9 (Standard value 15 kohm)\n", + "The value of Rf = 8.79 k\u03a9\n", + "(The value of Rf may be taken as a pot of 10 k\u03a9)\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.3 - Page 207" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "f_H= 1*10**3 #cut-off frequency in Hz\n", + "C= 0.0047*10**-6 # in F\n", + "R= 1/(2*pi*f_H*C) # in \u03a9\n", + "R= (R*10**-3) # in k\u03a9\n", + "R1= 30 # in k\u03a9 (assume)\n", + "Rf= 0.586*R1 # in k\u03a9\n", + "C= C*10**6 # in \u00b5F\n", + "print \"The value of R'= R = %0.2f k\u03a9 (standard value 33 k\u03a9)\" %R\n", + "print \"The value of C'= C = %0.4f \u00b5F \" %C\n", + "print \"The value of R1= %0.2f k\u03a9 \" %R1 \n", + "print \"The value of Rf= %0.2f k\u03a9 (standard value 20 k\u03a9 pot)\" %Rf " + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of R'= R = 33.86 k\u03a9 (standard value 33 k\u03a9)\n", + "The value of C'= C = 0.0047 \u00b5F \n", + "The value of R1= 30.00 k\u03a9 \n", + "The value of Rf= 17.58 k\u03a9 (standard value 20 k\u03a9 pot)\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.4 - Page 212" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "# Given data\n", + "fc= 1*10**3 # in Hz\n", + "alpha= 1.414 \n", + "C= 0.1*10**-6 # in F (assume)\n", + "C_desh= C*alpha**2/4 # in F\n", + "C_desh= C_desh*10**6 # in \u00b5F\n", + "print \"The value of C' = %0.2f \u00b5F\" %C_desh\n", + "C_desh= C_desh*10**-6 # in F\n", + "R_desh= 1/(2*pi*fc*math.sqrt(C*C_desh)) # in \u03a9\n", + "R_desh= R_desh*10**-3 # in k\u03a9\n", + "print \"The value of R' = %0.2f k\u03a9 (standard value 2.2 k\u03a9)\"%R_desh" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of C' = 0.05 \u00b5F\n", + "The value of R' = 2.25 k\u03a9 (standard value 2.2 k\u03a9)\n" + ] + } + ], + "prompt_number": 17 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.5 - Page 213" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "alpha= 1.414 # passband\n", + "C= 0.01*10**-6 # in F (assume)\n", + "fc= 1*10**3 # in Hz\n", + "dc_gain= 6 \n", + "R= 1/(2*pi*C*fc) # in \u03a9\n", + "R= R*10**-3 # in k\u03a9\n", + "print \"The value of R = %0.1f k\u03a9 (standard value 15 k\u03a9)\" %R\n", + "R= 15 # in k\u03a9\n", + "Af= 3-alpha # and Af= 1+Rf/R1 or\n", + "# Rf= (Af-1)*R1 (i)\n", + "# 2*R= Rf || R1, hence from (i)\n", + "R1= 2*R*Af/(Af-1) # in k\u03a9\n", + "print \"The value of R1 = %0.1f k\u03a9 (standard value 82 k\u03a9)\" %R1\n", + "R1= 82 # in k\u03a9\n", + "Rf= (Af-1)*R1 # in k\u03a9\n", + "print \"The value of Rf = %0.f k\u03a9 (standard value 47 k\u03a9)\" %Rf\n", + "Aamp= dc_gain/Af \n", + "print \"The value of Aamp = %0.2f\" %Aamp" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of R = 15.9 k\u03a9 (standard value 15 k\u03a9)\n", + "The value of R1 = 81.2 k\u03a9 (standard value 82 k\u03a9)\n", + "The value of Rf = 48 k\u03a9 (standard value 47 k\u03a9)\n", + "The value of Aamp = 3.78\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.7 - Page 221" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "R= 2.1*10**3 # in k\u03a9\n", + "C= 0.05*10**-6 # in F\n", + "R1= 20*10**3 # in \u03a9\n", + "Rf= 60*10**3 # in \u03a9\n", + "# Low cut-off frequency,\n", + "f_L= 1/(2*pi*R*C) # in Hz\n", + "f_L= f_L*10**-3 # in kHz\n", + "print \"The cut-off frequency = %0.3f kHz\" %f_L" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The cut-off frequency = 1.516 kHz\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.8 - Page 225" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "from __future__ import division\n", + "# Given data\n", + "R1= 2*10**3 # in \u03a9\n", + "R2= 2/3*10**3 # in \u03a9\n", + "R3= 200*10**3 # in \u03a9\n", + "C= 0.1*10**-6 # in F\n", + "Af= R3/(2*R1) # gain\n", + "print \"The value of Af = %0.f\" %Af\n", + "# R1= Q/(2*pi*f_C*C*Af) (i)\n", + "# R2= Q/(2*pi*f_C*C*(2*Q**2-Af)) (ii)\n", + "# R3= Q/(pi*f_C*C) (iii)\n", + "Q= math.sqrt((R3/(2*R2)+Af)/2) # from (ii) and (iii)\n", + "print \"The value of Q = %0.f\" %Q\n", + "f_C= Q/(R3*pi*C) # in Hz (from (iii))\n", + "print \"The value of f_C = %0.f Hz\" %f_C\n", + "omega_0= 2*pi*f_C # in radians/second\n", + "print \"The value of omega_0 = %0.f radians/seconds\" %omega_0" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of Af = 50\n", + "The value of Q = 10\n", + "The value of f_C = 159 Hz\n", + "The value of omega_0 = 1000 radians/seconds\n" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.10 - Page 227" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "f_L= 2*10**3 # in Hz\n", + "f_H= 2.5*10**3 # in Hz\n", + "Af= -5 \n", + "f_C= math.sqrt(f_L*f_H) # centre frequency in Hz\n", + "del_f= f_H-f_L #bandwidth in Hz\n", + "Q= f_C/del_f # selectivity\n", + "# Assume C1= C2= C= 0.01\u00b5F\n", + "C= 0.01*10**-6 # in F\n", + "R3= 1/(pi*del_f*C) # in \u03a9\n", + "R3= R3*10**-3 # in k\u03a9\n", + "print \"The value of R3 = %0.2f k\u03a9 (standard value 64 k\u03a9)\" %R3\n", + "R3= 64 # in k\u03a9\n", + "R3= R3*10**3 # in \u03a9\n", + "R1= -R3/(2*Af) #in \u03a9\n", + "R2= R1/(4*pi**2*f_C**2*R1*R3*C**2-.1)\n", + "R1= R1*10**-3 # in k\u03a9\n", + "C=C*10**6 # in \u00b5F\n", + "print \"The value of R1 = %0.1f k\u03a9 \" %R1\n", + "print \"The value of R2 = %0.f k\u03a9 (standard value 800\u03a9)\" %R2\n", + "print \"The value of C = %0.2f \u00b5F \" %C" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of R3 = 63.66 k\u03a9 (standard value 64 k\u03a9)\n", + "The value of R1 = 6.4 k\u03a9 \n", + "The value of R2 = 801 k\u03a9 (standard value 800\u03a9)\n", + "The value of C = 0.01 \u00b5F \n" + ] + } + ], + "prompt_number": 22 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.11 - Page 228 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "f_C= 1*10**3 #centre frequency in Hz\n", + "f_C_desh= 2*10**3 #new centre frequency in Hz\n", + "Q= 5 # selectivity\n", + "Af= -8 \n", + "C= 0.01*10**-6 # in F (assume)\n", + "R3= Q/(pi*f_C*C) #in \u03a9\n", + "R3= R3*10**-3 # in k\u03a9\n", + "print \"The value of R3 = %0.1f k\u03a9 (160 k\u03a9 (approx))\" %R3\n", + "R1= round(-R3/(2*Af)) # in k\u03a9\n", + "print \"The value of R1 = %0.f k\u03a9\" %R1\n", + "R2= R1*10**3/(4*pi**2*f_C**2*R1*10**3*R3*10**3*C**2-1) # in \u03a9\n", + "R2= R2*10**-3 # in k\u03a9\n", + "print \"The value of R2 = %0.2f k\u03a9 (2 k\u03a9 (approx))\" %R2\n", + "R2= 2 # in k\u03a9 (approx)\n", + "R2_desh= R2*(f_C/f_C_desh)**2 # in k\u03a9\n", + "R2_desh= R2_desh*10**3 # in \u03a9\n", + "print \"The value of R2' = %0.f \u03a9\" %R2_desh" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of R3 = 159.2 k\u03a9 (160 k\u03a9 (approx))\n", + "The value of R1 = 10 k\u03a9\n", + "The value of R2 = 1.89 k\u03a9 (2 k\u03a9 (approx))\n", + "The value of R2' = 500 \u03a9\n" + ] + } + ], + "prompt_number": 23 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.12 - Page 229" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "R= 10*10**3 # in \u03a9\n", + "C1= 0.1*10**-6 # in F \n", + "C2= 0.0025*10**-6 # in F \n", + "f_H= 1/(2*pi*R*C2) #higher cut-off frequency in Hz\n", + "f_H= f_H*10**-3 # in kHz\n", + "f_L= 1/(2*pi*R*C1) #lower cut-off frequency in Hz\n", + "BW= f_H-f_L*10**-3 # bandwidth in kHz\n", + "print \"The higher cut-off frequency = %0.3f kHz\" %f_H\n", + "print \"The lower cut-off frequency = %0.2f Hz\" %f_L\n", + "print \"The bandwidth = %0.1f kHz\" %BW" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The higher cut-off frequency = 6.366 kHz\n", + "The lower cut-off frequency = 159.15 Hz\n", + "The bandwidth = 6.2 kHz\n" + ] + } + ], + "prompt_number": 24 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.13 - Page 230" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "f_L= 200 # in Hz\n", + "f_H= 1*10**3 # in Hz\n", + "alpha=4 # passband gain\n", + "C_desh= 0.01*10**-6 # in F (assume)\n", + "R_desh= 1/(2*pi*f_H*C_desh) # in \u03a9\n", + "R_desh= R_desh*10**-3 # in k\u03a9\n", + "print \"The value of R' = %0.1f k\u03a9 (Standard value 20 k\u03a9)\" %R_desh\n", + "R_desh= 20 # in k\u03a9 (standard value)\n", + "# First Order High-Pass Filter\n", + "C= 0.05*10**-6 # in F (assume)\n", + "R= 1/(2*pi*f_L*C) # in \u03a9\n", + "R= R*10**-3 # in k\u03a9\n", + "R1= 10 # in k\u03a9\n", + "Rf= R1 # in k\u03a9\n", + "C_desh= C_desh*10**6 # in \u00b5F\n", + "C= C*10**6 # in \u00b5F\n", + "print \"The value of R = %0.1f k\u03a9 (Standard value 20 k\u03a9)\" %R\n", + "R= 20 # in k\u03a9 (standard value)\n", + "print \"The value of R1 and Rf = %0.f k\u03a9\" %R1\n", + "print \"The value of C' = %0.2f \u00b5F\" %C_desh\n", + "print \"The value of C = %0.2f \u00b5F\" %C" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of R' = 15.9 k\u03a9 (Standard value 20 k\u03a9)\n", + "The value of R = 15.9 k\u03a9 (Standard value 20 k\u03a9)\n", + "The value of R1 and Rf = 10 k\u03a9\n", + "The value of C' = 0.01 \u00b5F\n", + "The value of C = 0.05 \u00b5F\n" + ] + } + ], + "prompt_number": 25 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.14 - Page 231" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "f_H= 200 # in Hz\n", + "f_L= 2*10**3 # in Hz\n", + "C= 0.05*10**-6 # in F\n", + "# For low-pass filter,\n", + "R_desh= 1/(2*pi*f_H*C) # in \u03a9\n", + "R_desh= R_desh*10**-3 # in k\u03a9\n", + "print \"The value of R' = %0.1f k\u03a9 (standard value 20 k\u03a9)\" %R_desh\n", + "# For high-pass filter,\n", + "R= 1/(2*pi*f_L*C) # in \u03a9\n", + "R= R*10**-3 # in k\u03a9\n", + "print \"The value of R = %0.2f k\u03a9 (standard value 2 k\u03a9)\" %R" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of R' = 15.9 k\u03a9 (standard value 20 k\u03a9)\n", + "The value of R = 1.59 k\u03a9 (standard value 2 k\u03a9)\n" + ] + } + ], + "prompt_number": 28 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.15 - Page 232" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from numpy import pi\n", + "# Given data\n", + "C= 0.068*10**-6 # in F\n", + "f_N= 50 # in Hz\n", + "R= 1/(2*pi*f_N*C) # in \u03a9\n", + "R= R*10**-3 # in k\u03a9\n", + "print \"The value of R = %0.1f k\u03a9 (standard value 50 k\u03a9)\" %R" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of R = 46.8 k\u03a9 (standard value 50 k\u03a9)\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.16 - Page 233" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "# Given data\n", + "R= 15*10**3 # in \u03a9\n", + "C= 0.01*10**-6 # in F\n", + "f= 2*10**3 # in Hz\n", + "PhaseShift= -2*(math.atan(2*pi*f*R*C))*180/pi # in \u00b0\n", + "print \"The phase shift = %0.f\u00b0\" %PhaseShift\n", + "print \"i.e. %0.f\u00b0 (lagging)\" %abs(PhaseShift)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The phase shift = -124\u00b0\n", + "i.e. 124\u00b0 (lagging)\n" + ] + } + ], + "prompt_number": 45 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.18 - Page 240" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "R_A= 2.2*10**3 # in \u03a9\n", + "R_B= 1.2*10**3 # in \u03a9\n", + "Rf= 4.7*10**3 # in \u03a9\n", + "C= 0.01*10**-6 # in F\n", + "k_lp= 1.238 \n", + "k_hp= 1/k_lp \n", + "# Part (i)\n", + "alpha= 3*R_B/(R_A+R_B) \n", + "print \"Part (i) : The value of alpha = %0.3f\" %alpha \n", + "print \"Given filter is 1db peak Chebyshev\" \n", + "\n", + "# Part (ii)\n", + "f_0= 1/(2*pi*Rf*C) #critical frequency in Hz\n", + "f_0= f_0*10**-3 # in kHz\n", + "f_low_pass= f_0*k_lp # in kHz\n", + "print \"\\nPart (ii) : The low-pass frequency = %0.3f kHz\" %f_low_pass\n", + "f_high_pass= f_0*k_hp # in kHz\n", + "print \"The high-pass frequency = %0.3f kHz\" %f_high_pass\n", + "\n", + "# Part (iii)\n", + "fc= f_0 # bandpass centre frequency in kHz\n", + "print \"Part (iii) : The bandpass centre frequency = %0.3f kHz\" %fc\n", + "\n", + "# Part (iv)\n", + "# Formula used : delta_f= fc/Q= fc/(1/alpha)\n", + "delta_f= fc/(1/alpha) # in kHz\n", + "print \"Part (iv) : The bandpass width = %0.3f kHz\" %delta_f\n", + "\n", + "# Part (v)\n", + "A0= 1/alpha # bandpass gain at centre frequency\n", + "print \"Part (v) : The bandpass gain at centre frequency = %0.4f\" %A0" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Part (i) : The value of alpha = 1.059\n", + "Given filter is 1db peak Chebyshev\n", + "\n", + "Part (ii) : The low-pass frequency = 4.192 kHz\n", + "The high-pass frequency = 2.735 kHz\n", + "Part (iii) : The bandpass centre frequency = 3.386 kHz\n", + "Part (iv) : The bandpass width = 3.585 kHz\n", + "Part (v) : The bandpass gain at centre frequency = 0.9444\n" + ] + } + ], + "prompt_number": 47 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Analog_Integrated_Circuits_by_J._B._Gupta/Chaper08.ipynb b/Analog_Integrated_Circuits_by_J._B._Gupta/Chaper08.ipynb new file mode 100644 index 00000000..f81cf886 --- /dev/null +++ b/Analog_Integrated_Circuits_by_J._B._Gupta/Chaper08.ipynb @@ -0,0 +1,175 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:78d18a14b78f673f5bd74601b5a29612b95caf61b293886366daec703c0960a4" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter-8 Non-Linear Circuits" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.2 - Page 258" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from numpy import pi\n", + "# Given data \n", + "R1= 5 # in k\u03a9\n", + "R2= 10.0 # in k\u03a9\n", + "V_peak= R1*R2/(R1+R2) # in V\n", + "Vav= V_peak/pi # in V\n", + "print \"Peak value of V1 = %0.2f V\" %V_peak\n", + "print \"Average value of Vo = %0.2f V\" %Vav" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Peak value of V1 = 3.33 V\n", + "Average value of Vo = 1.06 V\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.7 - Page 268" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "from __future__ import division\n", + "from math import exp\n", + "# Given data \n", + "t= 0 \n", + "Vc= 0 # in volts\n", + "Vo= 5 # in volts\n", + "R= 10 # in 2 \u03a9 (assume)\n", + "RC= 1 # (assume)\n", + "R3= 2*R # in \u03a9\n", + "R2= 3*R # in \u03a9\n", + "# From equation : T= 2*Rf*C*log[1+2*R3/R2]\n", + "T= 2*RC*math.log(1+2*R3/R2) \n", + "Vc_t= 2 # in volts\n", + "t= T/2 \n", + "#Voltage across capacitor,\n", + "# Vc_t= Vco*[1-%e**(-t/ReqC)]= 1/5*(VR+4*Vo)*[1-%e**(-t/4*RC/5)]\n", + "VR= Vc_t*5/(1-exp((-t/(4*RC/5))))-4*Vo \n", + "print \"The value of VR = %0.2f volts\" %VR" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of VR = -4.69 volts\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.9 - Page 270" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "# Given data\n", + "# Part (c)\n", + "R1= 150 # in \u03a9\n", + "R2= 68*10**3 # in \u03a9\n", + "Vin= 50*10**-3 # in V\n", + "Vsat= 14 # in V\n", + "Vpositive= Vsat*(R1/(R1+R2)) # in V\n", + "V_UT= Vpositive # in V\n", + "Vpositive= -Vsat*(R1/(R1+R2)) # in V\n", + "V_LT= Vpositive # in V\n", + "print \"The value of V_UT = %0.4f V\" %V_UT\n", + "print \"The value of V_LT = %0.4f V\" %V_LT" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of V_UT = 0.0308 V\n", + "The value of V_LT = -0.0308 V\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.10 - Page 271" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data \n", + "V_UT= 5 # in V\n", + "V_LT= -5 # in V\n", + "# Hysteresis voltage,\n", + "Vhy= V_UT-V_LT # in V\n", + "print \"The hysteresis voltage = %0.f V\" %Vhy" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The hysteresis voltage = 10 V\n" + ] + } + ], + "prompt_number": 4 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Analog_Integrated_Circuits_by_J._B._Gupta/Chaper10.ipynb b/Analog_Integrated_Circuits_by_J._B._Gupta/Chaper10.ipynb new file mode 100644 index 00000000..863e14a7 --- /dev/null +++ b/Analog_Integrated_Circuits_by_J._B._Gupta/Chaper10.ipynb @@ -0,0 +1,234 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:a04a4d0f176c83000d5d4a57477bbe1da1eb7a2da88e100d507445cc1d387f19" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter-10 Voltage Regulators" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 10.1 - Page 311" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "#Given data\n", + "Idc= 300 # in mA\n", + "C= 200 # in \u00b5F\n", + "Vmax= 24 # in V\n", + "Vrms= 2.4*Idc/C #in V\n", + "Vr_peak= math.sqrt(3)*Vrms # in V\n", + "Vdc= Vmax-Vr_peak # in V\n", + "print \"The minimum input voltage = %0.2f V\" %Vdc" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The minimum input voltage = 17.76 V\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 10.2 - Page 311" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Given data\n", + "VR= 12 # in V\n", + "IL= 0.5 # in A\n", + "RL= 25 # in \u03a9\n", + "# Resistanc required,\n", + "R= VR/IL # in \u03a9\n", + "VL= IL*RL # in V\n", + "Vout= VR+VL #output voltage in V\n", + "Vin= Vout+2 # input voltage in V\n", + "print \"The input voltage = %0.1f V\" %Vin" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The input voltage = 26.5 V\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 10.3 - Page 311" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Given data\n", + "R1= 240 # in \u03a9\n", + "R2= 1.2*10**3 # in \u03a9\n", + "# Regulated output voltage in the circuit,\n", + "Vout= 1.25*(1+R2/R1) # in V\n", + "print \"The regulated output voltage = %0.1f V\" %Vout" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The regulated output voltage = 7.5 V\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 10.4 - Page 311" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Given data\n", + "V_REG= 15 # in V\n", + "I_Q= 10*10**-3 # in A\n", + "R1= 40 # in \u03a9\n", + "# When potentiometer R2=0 \u03a9 (minimum)\n", + "R2= 0 # in \u03a9\n", + "Vout= (1+R2/R1)*V_REG+I_Q*R2 \n", + "print \"The minimum output voltage = %0.f V\" %Vout\n", + "# When potentiometer R2=200 \u03a9 (maximum)\n", + "R2= 200 # in \u03a9\n", + "Vout= (1+R2/R1)*V_REG+I_Q*R2 \n", + "print \"The maximum output voltage = %0.f V\" %Vout" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The minimum output voltage = 15 V\n", + "The maximum output voltage = 92 V\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 10.5 - Page 324 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Given data \n", + "V_REF= 1.25 # in V\n", + "R1= 2.5*10**3 # in \u03a9\n", + "R2= 1*10**3 # in \u03a9\n", + "I= V_REF/R2 # in A\n", + "# The output voltage,\n", + "Vout= I*(R1+R2) # in V\n", + "print \"The regulated output voltage = %0.3f V\" %Vout" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The regulated output voltage = 4.375 V\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 10.6 - Page 324" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Given data\n", + "V_REF= 1.25 # in V\n", + "R1= 3*10**3 # in \u03a9\n", + "R2= 1*10**3 # in \u03a9\n", + "Vin= 20 # in V\n", + "Vout= V_REF*(R1+R2)/R2 # output voltage in volts\n", + "# Duty cycle,\n", + "D= Vout/Vin*100 # in %\n", + "print \"The duty cycle = %0.f %%\" %D" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The duty cycle = 25 %\n" + ] + } + ], + "prompt_number": 9 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Analog_Integrated_Circuits_by_J._B._Gupta/screenshots/snap2.png b/Analog_Integrated_Circuits_by_J._B._Gupta/screenshots/snap2.png Binary files differnew file mode 100644 index 00000000..c7893e00 --- /dev/null +++ b/Analog_Integrated_Circuits_by_J._B._Gupta/screenshots/snap2.png diff --git a/Analog_Integrated_Circuits_by_J._B._Gupta/screenshots/snap4.png b/Analog_Integrated_Circuits_by_J._B._Gupta/screenshots/snap4.png Binary files differnew file mode 100644 index 00000000..101a5c15 --- /dev/null +++ b/Analog_Integrated_Circuits_by_J._B._Gupta/screenshots/snap4.png diff --git a/Analog_Integrated_Circuits_by_J._B._Gupta/screenshots/snap4_2.png b/Analog_Integrated_Circuits_by_J._B._Gupta/screenshots/snap4_2.png Binary files differnew file mode 100644 index 00000000..03b1cdb0 --- /dev/null +++ b/Analog_Integrated_Circuits_by_J._B._Gupta/screenshots/snap4_2.png |