summaryrefslogtreecommitdiff
path: root/Linear_Integrated_Circuits_by_J._B._Gupta
diff options
context:
space:
mode:
Diffstat (limited to 'Linear_Integrated_Circuits_by_J._B._Gupta')
-rw-r--r--Linear_Integrated_Circuits_by_J._B._Gupta/chapter01.ipynb1109
-rw-r--r--Linear_Integrated_Circuits_by_J._B._Gupta/chapter02.ipynb432
-rw-r--r--Linear_Integrated_Circuits_by_J._B._Gupta/chapter03.ipynb786
-rw-r--r--Linear_Integrated_Circuits_by_J._B._Gupta/chapter04.ipynb227
-rw-r--r--Linear_Integrated_Circuits_by_J._B._Gupta/chapter05.ipynb498
-rw-r--r--Linear_Integrated_Circuits_by_J._B._Gupta/chapter06.ipynb618
-rw-r--r--Linear_Integrated_Circuits_by_J._B._Gupta/chapter07.ipynb444
-rw-r--r--Linear_Integrated_Circuits_by_J._B._Gupta/chapter08.ipynb654
-rw-r--r--Linear_Integrated_Circuits_by_J._B._Gupta/chapter09.ipynb348
-rw-r--r--Linear_Integrated_Circuits_by_J._B._Gupta/chapter10.ipynb71
-rw-r--r--Linear_Integrated_Circuits_by_J._B._Gupta/chapter11.ipynb247
-rw-r--r--Linear_Integrated_Circuits_by_J._B._Gupta/screenshots/Closed_Loop_Gain.pngbin0 -> 65497 bytes
-rw-r--r--Linear_Integrated_Circuits_by_J._B._Gupta/screenshots/per_error.pngbin0 -> 65471 bytes
-rw-r--r--Linear_Integrated_Circuits_by_J._B._Gupta/screenshots/waveform.pngbin0 -> 42639 bytes
14 files changed, 5434 insertions, 0 deletions
diff --git a/Linear_Integrated_Circuits_by_J._B._Gupta/chapter01.ipynb b/Linear_Integrated_Circuits_by_J._B._Gupta/chapter01.ipynb
new file mode 100644
index 00000000..50e40e46
--- /dev/null
+++ b/Linear_Integrated_Circuits_by_J._B._Gupta/chapter01.ipynb
@@ -0,0 +1,1109 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter- 1 : Differential And Cascode Amplifiers\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 1.1 - Page No 12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "V_CC= 10 # in volt\n",
+ "V_EE= V_CC \n",
+ "V_BE= 0.715 # in volt\n",
+ "R_c1= 2.7 # in k ohm\n",
+ "R_c1= R_c1*10**3 # in ohm\n",
+ "R_c2= R_c1 # in ohm\n",
+ "R_E=3.9 # in k ohm\n",
+ "R_E= R_E*10**3 # in ohm\n",
+ "Bita_ac= 100 \n",
+ "Bita_dc= Bita_ac \n",
+ "I_E= (V_EE-V_BE)/(2*R_E) # in amp\n",
+ "I_C= I_E # in amp\n",
+ "V_C= V_CC-I_C*R_c1 # in volt\n",
+ "V_E= 0-V_BE # in volt\n",
+ "V_CE= V_C-V_E # in volt\n",
+ "re_desh= 25*10**-3/I_E \n",
+ "A_d= R_c1/re_desh \n",
+ "print \"Operating current = %0.2f mA\" %(I_C*10**3)\n",
+ "print \"Operating voltage = %0.1f V\" %V_CE\n",
+ "print \"Voltage gain = %0.1f\" %A_d"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Operating current = 1.19 mA\n",
+ "Operating voltage = 7.5 V\n",
+ "Voltage gain = 128.6\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 1.2 - Page No 12\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "V_CC= 10 # in volt\n",
+ "V_EE= 10 # in volt\n",
+ "V_BE=0.7# in volt\n",
+ "I_C=0.5 # in mA\n",
+ "I_C=I_C*10**-3 # in amp\n",
+ "R_C= 10 # in k ohm\n",
+ "R_C= R_C*10**3 # in ohm\n",
+ "R_E= 9.3 # in k ohm\n",
+ "R_E= R_E*10**3 # in ohm\n",
+ "I_E= (V_EE-V_BE)/(2*R_E) # in amp\n",
+ "I_CQ= I_E # in amp\n",
+ "print \"Quiescent collector current = %0.1f mA\" %(I_CQ*10**3)\n",
+ "V_CEQ= V_CC+V_BE-I_C*R_C # in volt\n",
+ "print \"Quiescent collector emitter voltage = %0.1f V\" %V_CEQ"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Quiescent collector current = 0.5 mA\n",
+ "Quiescent collector emitter voltage = 5.7 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 1.3 - Page No 13\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "# Given data\n",
+ "V_CC= 12 # in volt\n",
+ "V_EE= 12 # in volt\n",
+ "V_BE= 0.7 # in volt\n",
+ "R_C= 10 # in k ohm\n",
+ "R_C= R_C*10**3 # in ohm\n",
+ "R_E= 10 # in k ohm\n",
+ "R_E= R_E*10**3 # in ohm\n",
+ "R_B= 20 # in k ohm\n",
+ "R_B= R_B*10**3 # in ohm\n",
+ "Bita_dc= 75 \n",
+ "# Part (i)\n",
+ "#Ignoring V_BE\n",
+ "I_T= V_EE/R_E#in amp \n",
+ "I_E= I_T/2 # in amp\n",
+ "I_C=I_E \n",
+ "V_out= V_CC-I_C*R_C# in volt\n",
+ "print \"Part : a\"\n",
+ "print \"Output Voltage = %0.f volt (Ignoring V_BE)\" %V_out\n",
+ "#Considering V_BE\n",
+ "I_T= (V_EE-V_BE)/R_E#in amp \n",
+ "I_E= I_T/2 # in amp\n",
+ "I_C=I_E \n",
+ "V_out= V_CC-I_C*R_C# in volt\n",
+ "print \"Output Voltage = %0.2f volt (Condidering V_BE)\" %V_out\n",
+ "I_T= (V_EE-V_BE)/(R_E+R_B/(2*Bita_dc)) # in amp\n",
+ "I_E= I_T/2 # in amp\n",
+ "I_C=I_E \n",
+ "V_out= V_CC-I_C*R_C# in volt\n",
+ "print \"Output Voltage = %0.3f volt (With Bita_dc)\" %V_out\n",
+ "\n",
+ "# Part(ii)\n",
+ "I_C= 0.6 # in mA\n",
+ "I_C=I_C*10**-3 \n",
+ "I_B= I_C/Bita_dc # in amp\n",
+ "print \"\\nPart : b\"\n",
+ "print \"Base current = %0.f micro amphere\" %(I_B*10**6)\n",
+ "V_B= -I_B*R_B # in volt\n",
+ "print \"Base Voltage = %0.2f V\" %V_B\n",
+ "\n",
+ "# Part (iii)\n",
+ "Bita_dc= 60 \n",
+ "I_B1= I_C/Bita_dc # in amp\n",
+ "print \"\\nPart : c\"\n",
+ "print \"Base current for transistor Q1 = %0.f micro amphere\" %(I_B1*10**6)\n",
+ "V_B1= -I_B1*R_B # in volt\n",
+ "print \"Base Voltage for transistor Q1 = %0.1f V\" %V_B1\n",
+ "Bita_dc= 80 \n",
+ "I_B2= I_C/Bita_dc # in amp\n",
+ "print \"Base current for transistor Q2 = %0.1f micro amphere\" %(I_B2*10**6)\n",
+ "V_B2= -I_B2*R_B # in volt\n",
+ "print \"Base Voltage for transistor Q2 = %0.2f V\" %V_B2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part : a\n",
+ "Output Voltage = 6 volt (Ignoring V_BE)\n",
+ "Output Voltage = 6.35 volt (Condidering V_BE)\n",
+ "Output Voltage = 6.424 volt (With Bita_dc)\n",
+ "\n",
+ "Part : b\n",
+ "Base current = 8 micro amphere\n",
+ "Base Voltage = -0.16 V\n",
+ "\n",
+ "Part : c\n",
+ "Base current for transistor Q1 = 10 micro amphere\n",
+ "Base Voltage for transistor Q1 = -0.2 V\n",
+ "Base current for transistor Q2 = 7.5 micro amphere\n",
+ "Base Voltage for transistor Q2 = -0.15 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 1.4 - Page No 14\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "V_CC= 10 # in volt\n",
+ "V_EE= 10 # in volt\n",
+ "V_BE= 0.7 # in volt\n",
+ "R_C= 2.2 # in k ohm\n",
+ "R_C= R_C*10**3 # in ohm\n",
+ "R_E= 4.7 # in k ohm\n",
+ "R_E= R_E*10**3 # in ohm\n",
+ "Ri_1= 50 # in ohm\n",
+ "Ri_2= Ri_1 # in ohm\n",
+ "Bita_dc= 100 \n",
+ "Bita_ac = Bita_dc \n",
+ "# Part (a)\n",
+ "I_CQ = (V_EE-V_BE)/(2*R_E+Ri_1/Bita_dc) # in amp\n",
+ "I_E= I_CQ # in amp\n",
+ "print \"Part : a\"\n",
+ "print \"Value of I_CQ = %0.4f mA\" %(I_CQ*10**3)\n",
+ "V_CEQ= V_CC + V_BE - I_CQ*R_C # in volt\n",
+ "print \"Value of V_CEQ = %0.4f volt\" %V_CEQ\n",
+ "\n",
+ "# Part(b)\n",
+ "re_desh= (26*10**-3)/I_E # in ohm\n",
+ "# A_d= V_out/V_ind = R_C/re_desh\n",
+ "A_d = R_C/re_desh \n",
+ "print \"\\nPart : b\"\n",
+ "print \"Voltage gain = %0.2f \" %A_d\n",
+ "\n",
+ "# Part(c)\n",
+ "# R_in1= R_in2= 2*Bita_ac*re_desh\n",
+ "R_in1= 2*Bita_ac*re_desh # in ohm\n",
+ "print \"\\nPart : c\"\n",
+ "print \"Input resistance = %0.3f k ohm\" %(R_in1*10**-3)\n",
+ "\n",
+ "# Part(d)\n",
+ "# R_out1= R_out2= R_C\n",
+ "R_out1= R_C # in ohm\n",
+ "print \"\\nPart : d\"\n",
+ "print \"Output resistance = %0.1f k ohm\" %(R_out1*10**-3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part : a\n",
+ "Value of I_CQ = 0.9893 mA\n",
+ "Value of V_CEQ = 8.5235 volt\n",
+ "\n",
+ "Part : b\n",
+ "Voltage gain = 83.71 \n",
+ "\n",
+ "Part : c\n",
+ "Input resistance = 5.256 k ohm\n",
+ "\n",
+ "Part : d\n",
+ "Output resistance = 2.2 k ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 1.5 - Page No 14\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "V_CC= 15 # in volt\n",
+ "V_EE= 15 # in volt\n",
+ "V_BE= 0.7 # in volt\n",
+ "R_C= 1 # in M ohm\n",
+ "R_C= R_C*10**6 # in ohm\n",
+ "R_E= R_C # in ohm\n",
+ "\n",
+ "Bita_ac= 100 \n",
+ "I_E = (V_EE-V_BE)/(2*R_E) # in amp\n",
+ "re_desh= (26*10**-3)/I_E # in ohm\n",
+ "A_d = R_C/re_desh \n",
+ "print \"Voltage gain = %0.f \" %A_d\n",
+ "Z_in= 2*Bita_ac*re_desh # in ohm\n",
+ "print \"Input impedence = %0.4f M ohm\" %(Z_in*10**-6)\n",
+ "Z_out= R_C # in ohm\n",
+ "print \"Output impedence = %0.f M ohm\" %(Z_out*10**-6)\n",
+ "A_cm= R_C/(2*R_E+re_desh) \n",
+ "CMRR= A_d/A_cm \n",
+ "print \"Common-mode rejection ratio = %0.f\" %CMRR\n",
+ "I_C=I_E \n",
+ "V_out= V_CC-I_C*R_C # in volt\n",
+ "print \"Total output voltage at the quiescent value = %0.2f volt\" %V_out\n",
+ "# when v_in = 1\n",
+ "v_in= 1 # in mV\n",
+ "v_in= v_in*10**-3 # in volt\n",
+ "v_out= A_d*v_in \n",
+ "print \"The ac output voltage = %0.3f volt\" %v_out\n",
+ "\n",
+ "# Note : Answer of CMRR in the book is wrong due to wrong calculation of A_cm"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage gain = 275 \n",
+ "Input impedence = 0.7273 M ohm\n",
+ "Output impedence = 1 M ohm\n",
+ "Common-mode rejection ratio = 551\n",
+ "Total output voltage at the quiescent value = 7.85 volt\n",
+ "The ac output voltage = 0.275 volt\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 1.6 - Page No 17\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "V_EE= 5 # in volt\n",
+ "R_C= 2 # in k ohm\n",
+ "R_C= R_C*10**3 # in ohm\n",
+ "R_E= 4.3 # in k ohm\n",
+ "R_E= R_E*10**3 # in ohm\n",
+ "V_BE=0.7 # in volt (Assuming)\n",
+ "V_T= 26*10**-3 # in volt\n",
+ "I_E = (V_EE-V_BE)/(2*R_E) # in amp\n",
+ "re_desh= V_T/I_E # in ohm\n",
+ "A_d = R_C/(2*re_desh) \n",
+ "print \"Voltage gain = %0.2f \" %A_d"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage gain = 19.23 \n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 1.7 - Page No 17\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "V_EE= 5 # in volt\n",
+ "R_C= 2 # in k ohm\n",
+ "R_C= R_C*10**3 # in ohm\n",
+ "R_E= 4.3 # in k ohm\n",
+ "R_E= R_E*10**3 # in ohm\n",
+ "V_BE=0.7 # in volt (Assuming)\n",
+ "V_T= 26*10**-3 # in volt\n",
+ "I_E = (V_EE-V_BE)/(2*R_E) # in amp\n",
+ "re_desh= V_T/I_E # in ohm\n",
+ "A_d = R_C/(2*re_desh) \n",
+ "A_cm= R_C/(2*R_E+re_desh) \n",
+ "print \"Common mode gain= %0.4f\" %A_cm \n",
+ "CMRR= A_d/A_cm \n",
+ "print \"Common mode rejection ratio = %0.1f\" %CMRR"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Common mode gain= 0.2312\n",
+ "Common mode rejection ratio = 83.2\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 1.8 - Page No 20\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "V_CC= 9 # in volt\n",
+ "V_EE= 9 # in volt\n",
+ "V_BE= 0.7 # in volt (Assuming value)\n",
+ "R_C= 47 # in k ohm\n",
+ "R_C= R_C*10**3 # in ohm\n",
+ "R_E= 43 # in k ohm\n",
+ "R_E= R_E*10**3 # in ohm\n",
+ "Ri_1= 20 # in ohm\n",
+ "Ri_2= Ri_1 # in ohm\n",
+ "v_in1= 2.5 # in mv\n",
+ "v_in1=v_in1*10**-3 # in volt\n",
+ "Bita_1= 75 \n",
+ "Bita_2= Bita_1 \n",
+ "I_CQ = (V_EE-V_BE)/(2*R_E+Ri_1/Bita_1) # in amp\n",
+ "I_E= I_CQ # in amp\n",
+ "V_CEQ= V_CC + V_BE - I_CQ*R_C # in volt\n",
+ "re_desh= (26*10**-3)/I_E # in ohm\n",
+ "A_d = R_C/re_desh \n",
+ "v_out= A_d*v_in1 # in volt\n",
+ "print \"Output voltage = %0.3f volt\" %v_out"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Output voltage = 0.436 volt\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 1.9 - Page No 20\n",
+ " "
+ ]
+ },
+ {
+ "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": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 1.10 - Page No 23\n",
+ " "
+ ]
+ },
+ {
+ "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": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 1.11 - Page No 25\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "R_E_desh= 200 # in ohm\n",
+ "V_CC= 10 # in volt\n",
+ "V_EE= 10 # in volt\n",
+ "V_BE= 0.7 # in volt\n",
+ "R_C= 2.2 # in k ohm\n",
+ "R_C= R_C*10**3 # in ohm\n",
+ "R_E= 4.7 # in k ohm\n",
+ "R_E= R_E*10**3 # in ohm\n",
+ "Ri_1= 50 # in ohm\n",
+ "Ri_2= Ri_1 # in ohm\n",
+ "Bita_dc= 100 \n",
+ "Bita_ac = Bita_dc \n",
+ "I_CQ = (V_EE-V_BE)/(2*R_E+ R_E_desh+Ri_1/Bita_dc) # in amp\n",
+ "I_E= I_CQ # in amp\n",
+ "print \"Value of I_CQ = %0.4f mA\" %(I_CQ*10**3)\n",
+ "V_CEQ= V_CC + V_BE - I_CQ*R_C # in volt\n",
+ "print \"Value of V_CEQ = %0.3f volt\" %V_CEQ\n",
+ "re_desh= (26*10**-3)/I_E # in ohm\n",
+ "A_d = R_C/(re_desh+R_E_desh) \n",
+ "print \"Voltage gain= %0.2f\" %A_d\n",
+ "R_in1= 2*Bita_ac*(re_desh+R_E_desh) # in ohm\n",
+ "print \"Input resistance = %0.3f k ohm\" %(R_in1*10**-3)\n",
+ "R_out1= R_C # in ohm\n",
+ "print \"Output resistance = %0.1f k ohm\" %(R_out1*10**-3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of I_CQ = 0.9687 mA\n",
+ "Value of V_CEQ = 8.569 volt\n",
+ "Voltage gain= 9.70\n",
+ "Input resistance = 45.368 k ohm\n",
+ "Output resistance = 2.2 k ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 1.12 - Page No 29\n",
+ " "
+ ]
+ },
+ {
+ "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": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 1.13 - Page No 30\n",
+ " "
+ ]
+ },
+ {
+ "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": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 1.14 - Page No 34\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "V_CC=12 # in volt\n",
+ "V_BE=0.7 # in volt\n",
+ "R1= 25 # in k ohm\n",
+ "R1=R1*10**3 # in ohm\n",
+ "# I=I_REF= (V_CC-V_BE)/R1\n",
+ "I= (V_CC-V_BE)/R1 # in amp\n",
+ "print \"Mirrored current = %0.3f mA\" %(I*10**3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mirrored current = 0.452 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 1.15 - Page No 34\n",
+ " "
+ ]
+ },
+ {
+ "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": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 1.16 - Page No 34\n",
+ " "
+ ]
+ },
+ {
+ "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": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 1.17 - Page No 35\n",
+ " "
+ ]
+ },
+ {
+ "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": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 1.18 - Page No 35\n",
+ " "
+ ]
+ },
+ {
+ "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": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 1.19 - Page No 36\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "V_BE=0.715 # in volt\n",
+ "V_CC=9 # in volt\n",
+ "Bita_dc=100 \n",
+ "Bita_ac= Bita_dc \n",
+ "V_EE= 10 # in volt\n",
+ "R=5.6 # in k ohm\n",
+ "R= R*10**3 # in ohm\n",
+ "I_REF= (V_EE-V_BE)/R # in amp\n",
+ "# From 2*I_B + I_C1 -I_REF =0\n",
+ "I_C1= I_REF*Bita_dc/(2+Bita_dc) # in amp\n",
+ "# By symmetry\n",
+ "I_C2= I_C1 \n",
+ "I_C3= I_C2 \n",
+ "I=3*I_C1 # current through R_C in amp\n",
+ "print \"Current through R_C = %0.2f mA\" %(I*10**3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current through R_C = 4.88 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 1.20 - Page No 36\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "V_BE=0.7 # in volt\n",
+ "V_CC=5 # in volt\n",
+ "V_EE=-5 # in volt\n",
+ "Bita=100 \n",
+ "R=18.6 # in k ohm\n",
+ "R= R*10**3 # in ohm\n",
+ "I2= (V_CC-V_BE-V_EE)/R # in amp\n",
+ "I_C3=I2 \n",
+ "I_E= I_C3/2 # in amp\n",
+ "re_desh= (26*10**-3)/I_E # in ohm\n",
+ "re1_desh=re_desh \n",
+ "re2_desh=re1_desh \n",
+ "R_in1= 2*Bita*re_desh # in ohm\n",
+ "R_in2= R_in1\n",
+ "print \"Differential input resistance = %0.1f k ohm\" %(R_in1*10**-3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Differential input resistance = 20.8 k ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 1.21 - Page No 44\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "V_BE=0.7 # in volt\n",
+ "V_CC=18 # in volt\n",
+ "R_E=1.1 # in k ohm\n",
+ "R_C=1.8 # in k ohm\n",
+ "R_C=R_C*10**3 # in ohm\n",
+ "R1=4.7 # in k ohm\n",
+ "R2=5.6 # in k ohm\n",
+ "R3=6.8 # in k ohm\n",
+ "I_E1= (V_CC*R1/(R1+R2+R3)-V_BE)/R_E # in mA\n",
+ "re_desh= 26/I_E1 # in ohm\n",
+ "re2_desh=re_desh\n",
+ "Av= -R_C/re2_desh \n",
+ "print \"Voltage gain of the cascode amplifier = %0.1f\" %Av\n",
+ "\n",
+ "\n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage gain of the cascode amplifier = -267.3\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Linear_Integrated_Circuits_by_J._B._Gupta/chapter02.ipynb b/Linear_Integrated_Circuits_by_J._B._Gupta/chapter02.ipynb
new file mode 100644
index 00000000..fe244fef
--- /dev/null
+++ b/Linear_Integrated_Circuits_by_J._B._Gupta/chapter02.ipynb
@@ -0,0 +1,432 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter- 2 : Introduction To Operational Amplifiers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 2.2 - Page No 70"
+ ]
+ },
+ {
+ "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 No 71"
+ ]
+ },
+ {
+ "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 No 74"
+ ]
+ },
+ {
+ "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": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 2.7 - Page No 74"
+ ]
+ },
+ {
+ "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 No 74"
+ ]
+ },
+ {
+ "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 No 74"
+ ]
+ },
+ {
+ "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 No 76"
+ ]
+ },
+ {
+ "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 83"
+ ]
+ },
+ {
+ "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 No 83"
+ ]
+ },
+ {
+ "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 No 83"
+ ]
+ },
+ {
+ "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": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 2.14 - Page No 84"
+ ]
+ },
+ {
+ "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/Linear_Integrated_Circuits_by_J._B._Gupta/chapter03.ipynb b/Linear_Integrated_Circuits_by_J._B._Gupta/chapter03.ipynb
new file mode 100644
index 00000000..06ace2b9
--- /dev/null
+++ b/Linear_Integrated_Circuits_by_J._B._Gupta/chapter03.ipynb
@@ -0,0 +1,786 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter-3 : Negative Feedback In Op-Amps"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 3.1 - Page No 104"
+ ]
+ },
+ {
+ "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 No 104"
+ ]
+ },
+ {
+ "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": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 3.3 - Page No 105"
+ ]
+ },
+ {
+ "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": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 3.4 - Page No 105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "R1=1 # in k ohm\n",
+ "R1=R1*10**3 # in ohm\n",
+ "R_f=10 # in k ohm\n",
+ "R_f=R_f*10**3 # in ohm\n",
+ "A=200000 \n",
+ "OutputVoltageSwing= 13 # in volt\n",
+ "SupplyVoltage=15 # in volt\n",
+ "Ri= 2 # in M ohm\n",
+ "Ri=Ri*10**6 # in ohm\n",
+ "Ro= 75 # in ohm\n",
+ "fo= 5 # in Hz\n",
+ "B= R1/(R1+R_f) \n",
+ "AB = A*B \n",
+ "R_outf= Ro/(1+A*B) # in ohm\n",
+ "R_outf= R_outf*10**3 # in m ohm\n",
+ "print \"Output Resistance = %0.3f m ohm\" %R_outf\n",
+ "V_ooT= OutputVoltageSwing/(1+A*B) # in volt\n",
+ "V_ooT= V_ooT*10**3 # in mV\n",
+ "print \"Output offset voltage = \u00b1 %0.3f mV\" %V_ooT\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Output Resistance = 4.125 m ohm\n",
+ "Output offset voltage = \u00b1 0.715 mV\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 3.5 - Page No 105"
+ ]
+ },
+ {
+ "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": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6 - Page No 109"
+ ]
+ },
+ {
+ "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": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 3.7 - Page No 109"
+ ]
+ },
+ {
+ "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": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 3.8 - Page No 109"
+ ]
+ },
+ {
+ "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.9 - Page No 110"
+ ]
+ },
+ {
+ "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.10 - Page No 110"
+ ]
+ },
+ {
+ "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.11 - Page No 111"
+ ]
+ },
+ {
+ "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.12 - Page No 111"
+ ]
+ },
+ {
+ "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"
+ ],
+ "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.15 - Page No 114"
+ ]
+ },
+ {
+ "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": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 3.18 - Page No 116"
+ ]
+ },
+ {
+ "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": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 3.19 - Page No 117"
+ ]
+ },
+ {
+ "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": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 3.20 - Page No 120"
+ ]
+ },
+ {
+ "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": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 3.21- Page No 121"
+ ]
+ },
+ {
+ "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": 25
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Linear_Integrated_Circuits_by_J._B._Gupta/chapter04.ipynb b/Linear_Integrated_Circuits_by_J._B._Gupta/chapter04.ipynb
new file mode 100644
index 00000000..75a2b6a6
--- /dev/null
+++ b/Linear_Integrated_Circuits_by_J._B._Gupta/chapter04.ipynb
@@ -0,0 +1,227 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter-4 : Frequency Response Of An Op-Amp"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 4.1 - Page No 134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "Vin= 0.5 # in V\n",
+ "Av= 10 \n",
+ "I_B_max= 1.5 # in micro amp\n",
+ "I_B_max=I_B_max*10**-6 # in A\n",
+ "# Let\n",
+ "I1=100*I_B_max # in A\n",
+ "R1= Vin/I1 # in ohm\n",
+ "Rf= Av*R1 # in ohm\n",
+ "# R2= R1 || Rf = R1 (approx.)\n",
+ "R2= R1 # in ohm\n",
+ "print \"Value of I1 = %0.f micro amp\" %(I1*10**6)\n",
+ "print \"Value of R1 = %0.1f kohm\" %(R1*10**-3)\n",
+ "print \"Value of R2 = %0.1f kohm\" %(R2*10**-3)\n",
+ "print \"Value of Rf = %0.f kohm\" %(Rf*10**-3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of I1 = 150 micro amp\n",
+ "Value of R1 = 3.3 kohm\n",
+ "Value of R2 = 3.3 kohm\n",
+ "Value of Rf = 33 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 4.2 - Page No 134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log10\n",
+ "# Given data\n",
+ "Vin= 50 # in mV\n",
+ "Vin = Vin*10**-3 # in V\n",
+ "I_B_max= 200 # in nA\n",
+ "I_B_max=I_B_max*10**-9 # in A\n",
+ "I1=100*I_B_max # in A(assumed)\n",
+ "Av=100 \n",
+ "R1= Vin/I1 # in \u03a9\n",
+ "print \"The value of R1 = %0.1f k\u03a9 (Standard value 2.2 k\u03a9)\" %(R1*10**-3)\n",
+ "R1= 2.2 # kohm (standard value)\n",
+ "Rf= Av*R1 # in kohm\n",
+ "print \"The value of Rf = %0.f k\u03a9\" %Rf\n",
+ "# R2 = R1 || Rf = R1 (approx)\n",
+ "R2= R1 # in kohm\n",
+ "print \"The value of R2 = %0.1f k\u03a9\" %R2\n",
+ "Av= 20*log10(Av) # in dB\n",
+ "C1= 100 # in pF\n",
+ "R1= 1.5 # in k\u03a9\n",
+ "C2= 3 # in pF\n",
+ "print \"Voltage gain = %0.f dB\" %Av\n",
+ "print \"Value of C1 = %0.f pF\" %C1\n",
+ "print \"Value of C2 = %0.f pF\" %C2\n",
+ "print \"Value of R1 = %0.1f k\u03a9\" %R1"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R1 = 2.5 k\u03a9 (Standard value 2.2 k\u03a9)\n",
+ "The value of Rf = 220 k\u03a9\n",
+ "The value of R2 = 2.2 k\u03a9\n",
+ "Voltage gain = 40 dB\n",
+ "Value of C1 = 100 pF\n",
+ "Value of C2 = 3 pF\n",
+ "Value of R1 = 1.5 k\u03a9\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 4.3 - Page No 136\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "A_VD= 200 # in V/mV\n",
+ "A_VD=A_VD*10**3 # in V/V\n",
+ "B1=1 # in MHz\n",
+ "B1=B1*10**6 # in Hz\n",
+ "f1=B1 \n",
+ "f0= f1/A_VD # in Hz\n",
+ "print \"Cut-off frequency = %0.f Hz\" %f0"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Cut-off frequency = 5 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 4.4 - Page No 143\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# Given data\n",
+ "Vin= 15 # in volt\n",
+ "SR= 0.8 # in V/micro sec\n",
+ "SR=SR*10**6 # in V/sec\n",
+ "omega= SR/Vin \n",
+ "f= omega/(2*pi) # in Hz\n",
+ "print \"Full power bandwidth = %0.1f kHz\" %(f*10**-3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Full power bandwidth = 8.5 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 4.5 - Page No 143\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "SR= 2 # in V/micro sec\n",
+ "del_v_in= 0.5 # in volt\n",
+ "del_t=10 #in micro sec\n",
+ "del_v_inBYdel_t= del_v_in/del_t # in V/micro sec\n",
+ "# v_out= A_CL*v_in\n",
+ "A_CL= SR/del_v_inBYdel_t \n",
+ "print \"Closed-loop gain = %0.f \" %A_CL"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Closed-loop gain = 40 \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Linear_Integrated_Circuits_by_J._B._Gupta/chapter05.ipynb b/Linear_Integrated_Circuits_by_J._B._Gupta/chapter05.ipynb
new file mode 100644
index 00000000..6aae196e
--- /dev/null
+++ b/Linear_Integrated_Circuits_by_J._B._Gupta/chapter05.ipynb
@@ -0,0 +1,498 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter-5 : General Applications Of Op-Amps"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.1 - Page 156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "import math\n",
+ "# Given data\n",
+ "fo= 15 # in kHz\n",
+ "fo= fo*10**3 # in Hz\n",
+ "C=0.01 # in micro F\n",
+ "C=C*10**-6 # in F\n",
+ "L= 1/(4*pi**2*fo**2*C) # in H\n",
+ "L=math.ceil(L*10**3) # in mH\n",
+ "# Let L be of 12 mH and internal resistance 30 ohm\n",
+ "R=30 # internal resistance in ohm\n",
+ "XL= 2*pi*L*10**-3*fo \n",
+ "Q= XL/R \n",
+ "R_P= Q**2*R # in ohm\n",
+ "# If\n",
+ "R1=100 # in ohm\n",
+ "# Formula L= R_f*R_P/(R1*(R_f+R_P)) \n",
+ "R_f= R1*L*R_P/(R_P-R1*L) # in ohm\n",
+ "R_f=R_f*10**3 # in kohm\n",
+ "R_f= 1.2 # in k ohm (Standard value)\n",
+ "print \"The values of component chosen are:-\" \n",
+ "print \"Value of L = %0.f mH\" %L\n",
+ "print \"Value of C = %0.2f micro F\" %(C*10**6)\n",
+ "print \"Value of R_f = %0.1f k ohm\" %R_f\n",
+ "print \"Value of R1 = %0.f ohm\" %R1"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The values of component chosen are:-\n",
+ "Value of L = 12 mH\n",
+ "Value of C = 0.01 micro F\n",
+ "Value of R_f = 1.2 k ohm\n",
+ "Value of R1 = 100 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.2 - Page 159"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "# Given data\n",
+ "Rf= 12 # in k ohm\n",
+ "Rs1= 12 # in k ohm\n",
+ "Rs2= 2 # in k ohm\n",
+ "Rs3= 3 # in k ohm\n",
+ "Vi1= 9 # in volt\n",
+ "Vi2= -3 # in volt\n",
+ "Vi3= -1 # in volt\n",
+ "Vout= -Rf*(Vi1/Rs1+Vi2/Rs2+Vi3/Rs3) # in volt\n",
+ "print \"Output voltage = %0.f volt\" %Vout"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Output voltage = 13 volt\n"
+ ]
+ }
+ ],
+ "prompt_number": 57
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.3 - Page NO 159"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given expression Vout= -2*V1+3*V2+4*V3\n",
+ "# For an operational amplifier\n",
+ "# Vout= -Rf*[V1/R1+V2/R2+V3/R3]\n",
+ "# Compare the above expression with the given expression for the output\n",
+ "r_1=2 # value of Rf/R1\n",
+ "r_2=3 # value of Rf/R2\n",
+ "r_3=4 # value of Rf/R3\n",
+ "# Resistance R3 will be minimum value of 10 k ohm\n",
+ "R3=10 # in k ohm\n",
+ "Rf= r_3*R3 # in k ohm\n",
+ "R2= Rf/r_2 # in k ohm\n",
+ "R1= Rf/r_1 # in k ohm\n",
+ "print \"Value of Rf = %0.f k ohm\" %Rf\n",
+ "print \"Value of R2 = %0.2f k ohm\" %R2\n",
+ "print \"Value of R1 = %0.f k ohm\" %R1"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of Rf = 40 k ohm\n",
+ "Value of R2 = 13.33 k ohm\n",
+ "Value of R1 = 20 k ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 58
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 5.4 - Page No 159\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "V1= 2 # in volt\n",
+ "V2= -1 # in volt\n",
+ "# Let R1= (R||R)/(R+(R||R))= (R/2)/(R+R/2) = 1/3\n",
+ "R1=1/3 \n",
+ "Vs1= V1*R1 # in volt\n",
+ "# Let R2= (1+Rf/R)= (1+2*R/R)= 3\n",
+ "R2= 3 \n",
+ "Vo_desh= Vs1*R2 # in volt\n",
+ "Vs2= V2*R1 # in volt\n",
+ "Vo_doubleDesh= Vs2*R2 # in volt\n",
+ "V_out= Vo_desh+Vo_doubleDesh # in volt\n",
+ "print \"Output voltage = %0.f volt\" %V_out"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Output voltage = 1 volt\n"
+ ]
+ }
+ ],
+ "prompt_number": 59
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 5.5 - Page No 160\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given expression Vout= 10*(V2-V1)\n",
+ "# For a differential amplifier circuit\n",
+ "# Vout= Rf/R*(V2-V1)\n",
+ "# Compare the above expression with the given expression for the output, we have\n",
+ "RfbyR= 10 \n",
+ "R=10 # minimum value of resistancce to be used in kohm\n",
+ "Rf= RfbyR * R # in k ohm\n",
+ "print \"Value of Rf = %0.f k ohm\" %Rf"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of Rf = 100 k ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 60
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 5.7 - Page No 164\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "# Given data\n",
+ "R1= 50 # in kohm\n",
+ "# Let us choose\n",
+ "R3= 15 # in k ohm\n",
+ "R4= R3 \n",
+ "# Ad= 1+2*R2/R1 (i)\n",
+ "# Ad= ((1+2*R2/R1)*(V2-V1))/(V2-V1)= 1+2*R2/R1\n",
+ "# For minimum differential voltage gain\n",
+ "Ad_min=5 \n",
+ "Ad= Ad_min \n",
+ "R1_max= R1 # since Ad will be minimum only when R1 will be maximum\n",
+ "# Putting values of Ad and R1 in eq(i)\n",
+ "R2= (Ad-1)*R1/2 # in k ohm\n",
+ "# For maximum differential voltage gain\n",
+ "Ad_max=200 \n",
+ "Ad= Ad_min \n",
+ "# Putting values of Ad and R2 in eq(i)\n",
+ "R1= 2*R2/(Ad_max-1) # in k ohm\n",
+ "R1=int(R1)\n",
+ "# For maximum value of Ad, R1 will have minimum value , therefore\n",
+ "R1_min= 1 # in kohm\n",
+ "print \"Value of R1_min = %0.f k ohm\" %R1_min\n",
+ "print \"Value of R1 = %0.f-50 k ohm potentiometer\" %R1\n",
+ "print \"Value of R2 = %0.f k ohm\" %R2\n",
+ "print \"Value of R3 = %0.f k ohm\" %R3\n",
+ "print \"Value of R4 = %0.f k ohm\" %R4"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of R1_min = 1 k ohm\n",
+ "Value of R1 = 1-50 k ohm potentiometer\n",
+ "Value of R2 = 100 k ohm\n",
+ "Value of R3 = 15 k ohm\n",
+ "Value of R4 = 15 k ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 61
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 5.10 - Page No 179\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "Vin= 10 # in volt\n",
+ "R=2.2 # in k ohm\n",
+ "R=R*10**3 #in ohm\n",
+ "Ad=10**5 # voltage gain\n",
+ "T= 1 # in ms\n",
+ "T=T*10**-3 # in second\n",
+ "C=1 # in micro F\n",
+ "C=C*10**-6 # in F\n",
+ "I= Vin/R # in volt\n",
+ "V= I*T/C # in V\n",
+ "print \"The output voltage at the end of the pulse = %0.3f volt\" %V\n",
+ "RC_desh= R*C*Ad \n",
+ "print \"The closed-loop time constant = %0.f second \" %RC_desh"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The output voltage at the end of the pulse = 4.545 volt\n",
+ "The closed-loop time constant = 220 second \n"
+ ]
+ }
+ ],
+ "prompt_number": 62
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 5.11 - Page No 180\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "C=0.01 # in micro F\n",
+ "C=C*10**-6 # in F\n",
+ "omega= 10000 # in rad/second\n",
+ "# Vout/V1= (Rf/R1)/(1+s*C*Rf)\n",
+ "# substituting s= j*omega we have\n",
+ "# Vout/V1 = (Rf/R1)/sqrt((omega*C*Rf)**2+1)\n",
+ "# At omega=0\n",
+ "# Vout/V1= Rf/R1\n",
+ "# Formula omega= 1/(C*Rf)\n",
+ "Rf= 1/(C*omega) # in ohm\n",
+ "Rf= Rf*10**-3 # in k ohm\n",
+ "# 20*log10(Rf/R1) = 20\n",
+ "R1= Rf/10 # in k ohm\n",
+ "print \"Value of Rf = %0.f k ohm\" %Rf\n",
+ "print \"Value of R1 = %0.f k ohm\" %R1"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of Rf = 10 k ohm\n",
+ "Value of R1 = 1 k ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 63
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 5.12 Page No 180\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "%matplotlib inline\n",
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np\n",
+ "#Given Data : \n",
+ "R=40*1000 #in ohm(assumed)\n",
+ "C=0.2*10**-6 #IN FARAD\n",
+ "Vout=3 #in Volt\n",
+ "V1=Vout #in Volt\n",
+ "V2=Vout #in Volt\n",
+ "plot([0,50],[3,-9.5]) \n",
+ "plt.title('Output voltage')\n",
+ "plt.xlabel('Time in milliseconds')\n",
+ "plt.ylabel('Output voltage in volts')\n",
+ "plt.axis([0, 60, -12, 5])\n",
+ "plt.show()\n",
+ "print \"Assuming Ideal op-amp, sketch for Vout is shown in figure.\" \n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7f0c532cff90>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Assuming Ideal op-amp, sketch for Vout is shown in figure.\n"
+ ]
+ }
+ ],
+ "prompt_number": 64
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 5.14 - Page No 185\n",
+ " "
+ ]
+ },
+ {
+ "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.\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAZQAAAEZCAYAAACw69OmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnXlYVVXb/7/nCCqKA6ghk6IMCoLgiEMKDqiUmmk5paE2\nvU0+T4Opv95KGzXzqcznLa0s0xyyTDSVHBFNEAcMFZxQFEENRXCWaf3+WJ4DCAcO5+x91j5735/r\n4tJz2GfvL2z2+q573WvdS8cYYyAIgiAIK9GLFkAQBEGoAzIUgiAIQhLIUAiCIAhJIEMhCIIgJIEM\nhSAIgpAEMhSCIAhCEshQCKIaJk2ahHfeeUe0DMXw119/wd/fH40aNcL69etFyyEUBhkKUWt+/PFH\nhISEoGHDhnB3d8dLL72EgoICsz/v4+ODHTt2SKanuvNlZ2fD0dERZ86cqfS9xx9/HNOmTav23Dqd\nDjqdDgAQHx8Pb29v6wVbwODBg/Hpp58aX2dnZ0Ov11f53j///CObjnfffRdTp07FjRs3MHz4cNmu\nQ9gnZChErZg/fz5mzJiB+fPn4/r160hKSsK5c+cQFRWFoqIis86h0+kg5Xra6s7n6emJAQMGYNmy\nZRXez8vLw+bNmzFp0qQaz6+Etb8RERFISEgwvk5ISED79u0rvRcQEICHHnpINh3nz59HUFCQRZ8t\nKSmRWA2hOBhBmElBQQFzdnZma9asqfD+zZs3WYsWLdiSJUsYY4zFxMSw//3f/zV+f+fOnczLy4sx\nxtiECROYXq9nTk5OzNnZmc2bN4+dPXuW6XQ6tnjxYubh4cHc3d3ZZ599Zvx8bc/3ICtWrGC+vr4V\n3vvvf//LOnfuzBhjLC0tjUVERLCmTZuyDh06sPXr1xuPmzRpEnvnnXfYrVu3WP369Zler2fOzs6s\nUaNG7OLFi2zfvn2sR48erGnTpszd3Z298sorrLCw0Pj5P//8kwUEBLAmTZqwl156ifXt25d99913\nxu9///33LDAwkLm4uLDBgwezc+fOVfm7T0hIYE2bNjW+fumll9iiRYuYm5ub8b0XX3yRPffcc4wx\nxqZOncq8vb1Z48aNWZcuXdju3bsZY4xlZ2czJycnlpeXZ/zcoUOHWPPmzVlxcXG1mtq2bWv8XTdq\n1IgVFhay7OxsNmzYMObq6sr8/PzYt99+azzve++9x0aNGsUmTJjAGjduzL777jsWERHB3n77bdar\nVy/m7OzMhg0bxnJzc9n48eNZ48aNWbdu3VhmZmaVvwNC+ZChEGazefNm5uDgwEpKSip9LyYmho0b\nN44xVtYIGyhvAIwx5uPjw7Zv3258bTCU8ePHs9u3b7MjR46wFi1asG3btll0vge5ffs2a9KkCduz\nZ4/xvR49erAvv/ySFRYWMl9fX/bJJ5+woqIitmPHDtaoUSN24sQJ47UNZhYfH1/huowxdvDgQbZv\n3z5WUlLCMjMzWWBgIPviiy8YY4zl5uayxo0bs99//52VlJSwL7/8kjk6OrLvv/+eMcbYunXrmJ+f\nHzt+/DgrKSlhH374IevVq1eVP8Pdu3eZk5MTO3z4MGOMseDgYHbmzBnWu3dvlpKSwhhjrEOHDmzZ\nsmWMMcaWL1/O8vLyWElJCZs/fz5r2bIlu3fvHmOMsf79+1do+N9880324osvmqXpwd91nz592Msv\nv8zu3bvHDh8+zFq0aMF27NjBGOOG4ujoyGJjYxljjN25c4dFREQwf39/dubMGVZQUMCCgoKYn58f\n2759OysuLmZPP/00mzx5ssl7SSgbGvIizObKlSto3rw59PrKfzYtW7bE1atXja+ZBcNE7733Hpyc\nnBAcHIzJkydj5cqVVp3PgJOTE5588kn89NNPAIBTp07h0KFDGD9+PJKSknDr1i3MmDEDDg4O6Nev\nH4YOHVrh2tVp6Ny5M7p37w69Xo/WrVvj+eefx65duwAAmzZtQnBwMEaMGAG9Xo+pU6eiZcuWxs9+\n8803mDlzJtq1awe9Xo+ZM2fi8OHDyMrKqnSdevXqITw8HLt27UJeXh4KCgrQpk0b9OnTBwkJCcjL\ny0N6ejoiIiIAAE899RRcXFyg1+vx+uuv4969ezhx4gQAYPz48cafjzGG1atXY/z48bXWlJWVhb17\n92Lu3LmoW7cuQkND8eyzzxp/zwDQq1cvY66lfv360Ol0mDx5Mtq0aYPGjRsjOjoaAQEB6N+/P+rU\nqYMnn3wSKSkpZtxVQomQoRBm07x5c1y5cgWlpaWVvnfx4kU0b97cqvOXT3i3atUKOTk5Vp2vPDEx\nMVizZg3u3buHZcuWYciQIWjevDlycnIqJdpbt25t9rVPnjyJoUOHwt3dHU2aNMHbb79tNNacnBx4\neXlVOL7863PnzuFf//oXXFxc4OLigmbNmgHgyfWq6Nu3LxISErBnzx707t0bAPDwww8b3/P29jb+\nLJ999hmCgoLQtGlTuLi4oKCgAFeuXAEAjBw5EomJibh06RISEhKg1+vx8MMP11pTTk4OXF1d0bBh\nQ+N7rVq1qnDsgz8/ALi5uRn/X79+/Qo5n/r16+PmzZtV/vyE8iFDIcymZ8+eqFevHn777bcK79+8\neRNxcXEYMGAAAKBhw4a4ffu28fuXLl2qcLxh1tSDnD9/vsL/PT09rTpfeXr37g1XV1fExsbi559/\nRkxMDADAw8MDWVlZFaKPc+fOGa9d/vxVXefFF19EUFAQTp8+jYKCAnz00UdGw/Xw8MCFCxeMxzLG\nKrxu1aoVFi9ejGvXrhm/bt26hR49elT5M/Tt2xe7d+9GQkIC+vbtC4BHAH/99RcSEhKM0cnu3bsx\nb948rFmzBvn5+bh27RqaNGli/BldXFwwaNAgrF69GitWrMC4ceMs0uTh4YG8vLwKBnD+/PkKJlLT\nvTHn3hH2AxkKYTZNmjTBe++9h1dffRV//vknioqKkJmZidGjR8Pb2xsTJ04EAISFhWHTpk24du0a\nLl26hC+++KLCedzc3JCRkVHp/B9++CHu3LmDY8eO4ccff8SYMWOsOl95dDodnn76abz11lsoKCjA\nsGHDAAA9evRAgwYN8Omnn6KoqAjx8fH4448/MHbsWADcBAwNsZubG65evYrr168bz3vz5k00atQI\nDRo0wPHjx/H1118bv/fII4/gyJEjiI2NRXFxMf773/9WMMP/+Z//wccff4y0tDQAQEFBAdasWWPy\nZ+jZsyeuXbuG5cuXo0+fPgC4OTRv3hzLly83msyNGzfg4OCA5s2bo7CwEO+//34FzQAf9lq6dCl+\n++0343BXbTV5e3ujV69emDlzJu7du4fU1FQsWbIEEyZMqO5WVDBva4YyCeVBhkLUimnTpuHjjz/G\nm2++iSZNmqBHjx5o3bo1tm/fDkdHRwDAxIkTERoaCh8fHwwZMgRjx46t0BOdOXMmPvzwQ7i4uOA/\n//mP8f2IiAj4+flh4MCBmDZtGgYOHGjV+R7k6aefRlZWFsaMGWPU6ujoiA0bNmDz5s1o0aIFXnnl\nFSxbtgwBAQEAKq5Dad++PcaNG4e2bdvC1dUVly5dwmeffYYVK1agcePGeP755ytoa968OdasWYO3\n3noLzZs3R3p6Orp27Yp69eoBAEaMGIHp06dj7NixaNKkCUJCQvDnn3+a1N+gQQN07doVRUVFCA4O\nNr7ft29f5ObmGg1lyJAhGDJkCAICAuDj4wMnJye0atWqwrmGDx+O06dPw93dHSEhIcb3a6tp5cqV\nyMzMhIeHB0aOHIn3338f/fv3r/S7K0/596o6hqIW+0XHBHYR4uLi8O9//xslJSV49tlnMX369Arf\nj42Nxbvvvgu9Xg+9Xo958+YZ/1gJ9ZCZmYm2bduiuLi4yoS/WigtLYW3tzdWrFhhHJ4iCDUhzFBK\nSkrQrl07bNu2DZ6enujWrRtWrlyJwMBA4zG3bt0yJvyOHDmCxx9/HKdPnxYhl5ARNRvKli1b0L17\ndzg5OWHevHn4+uuvcebMGWOUQhBqQtjTm5ycDD8/P/j4+MDR0RFjx45FbGxshWPKzx65efOm1bOI\nCOWi1mGOxMRE+Pn5oUWLFti4cSPWrVtHZkKoFmGGkp2dXWG6ppeXV5VTE9etW4fAwEBER0djwYIF\ntpRI2AgfHx+UlJSoLjoB+NqaK1eu4Pr160hMTES3bt1ESyII2RD2BJvbIx0xYgTS09OxYcMG4ywi\ngiAIQnk4iLqwp6dnhdW3WVlZVS6CMtCnTx8UFxfj6tWrxsVWBvz8/GqcNkoQBEGU4evrK3lOWliE\n0rVrV5w6dQqZmZkoLCzE6tWrK5XDzsjIMM5TP3ToEABUMpPyxyn567333hOugXSSTtJJOg1fcnTC\nhUUoDg4OWLhwIQYPHoySkhI888wzCAwMxKJFiwAAL7zwAn777Tf89NNPcHR0hLOzM1atWiVKLkEQ\nBFEDwgwFAKKjoxEdHV3hvRdeeMH4/7feegtvvfWWrWURBEEQFqC+aTUKJTIyUrQEsyCd0kI6pYV0\nKhuhK+WlQuodAEVx5gywbRtQvz4wdCjg6ipaEVEexoCdO4Fjx4B27YCBAwEVznS2awoKgA0bgBs3\n+P3x9xetSLnI0W7S46AAGAM++AAIDwf27gXWrwcCAoBffhGtjDBw+TIQEQH8619AWhowYwbQowdQ\nrngwIZg//uAG8uuvwP79wMMP8/tUxW4LhEwIzaEQnLffBv78EzhyBDDsv3T4MI9SdDrgySfF6tM6\n+flAZCS/D7Nm8aiEMWDePKBvXyApCZBxG3fCDDZtAp59FoiNBXr25O/l5gIjRwJTpwILF4rVpxVo\nyEswsbG813vwIPDgjOiUFGDQIOCvv3jEQtgexoBRowBPT+Crryp////9P94b/vNPGv4SRVYW0Lkz\nj+wNZmLg+nWge3fg3XeBclX6CcjTbpKhCOT6dSAoCFi5Eri/vUUlvvwSWLsWiI/n0QphW379lTdG\nKSlAVSW4Skp4I/bSS8CkSTaXR4BH8uHhwDvvVP39lBRg8GA+VEnlAMsgQzGBvRrK228D2dnAjz+a\nPqakBOjalT8sI0faTBoBoLgYaN8e+PZboF8/08cdPMgbtdOngXL1TAkbsGsXN/ITJ4C6dU0f9+qr\nPNqkoa8yyFBMYI+Gcu0a4OfHGyMfn+qP3bwZeOMN4OhRGlaxJT/8ACxbBuzYUfOxo0dz46dlU7aD\nMR7ZP/888PTT1R975QofNj52DHB3t40+pUOzvFTEwoXAsGE1mwkADBkCNGgAxMXJLou4T3Ex8OGH\nwOzZ5h3/7rvAf/4D3Lsnry6ijPh44OpV4Kmnaj62eXN+3Jdfyi5L05ChCODePZ7gnTHDvON1Oj5T\nhar3245Nm/jMLVO5rQcJDgY6dOD5LsI2/N//8aGsOnXMO/711/nw5fXr8urSMmQoAoiN5Q1Q+/bm\nf2bMGD6V+Phx+XQRZSxeDJSrAmQWL7/MGzlCfnJygO3bgQkTzP9MmzZ8+jeVBJQPMhQBfP89nzNf\nG+rVA6ZM4Z8l5OX8eSAxkedFasPw4cDZszzXRcjLd9/xTlbjxrX73OTJ1U+CIayDDMXGnD/PE/GP\nP177z06YwKcYl5RIr4soY+lSYNw4nreqDQ4OwMSJwM8/y6OL4DAGLF/OO1i1ZcgQbvonTkiviyBD\nsTmrVgFPPAE4OdX+s0FBPLm4e7f0uogyVq+2fBHc2LH8HtvZpEO74tAhXk6la9faf9bBgXfMli6V\nXhdBhmJzfv3VulIqTz1FPWA5OXaMFxjs0cOyz3fsyIt77tsnrS6ijFWruHFbutB37FhgzRoyfTkg\nQ7Eh587xcDsiwvJzjBkD/P47n9ZKSM+aNTyCtHS9j07HG6yVK6XVRXBKS3kEOXas5efo3BkoLOSd\nB0JayFBsyG+/AY89xsNuS2nVin/t3SudLqKMNWusL8b5xBN8Jh/1gKUnJYUPFwcHW34OnY7nMH//\nXTpdBIcMxYb8/rs05VOGD+d7PhDSkpnJK9RaOtxlICiIN1rUA5aeP/7gC4KtZeRIWjMkB2QoNqKg\ngK8jqa4mlLkMH84rqxLSEhfHiwhaW95Gp+O1vf74QxpdRBkbN/LfrbX07s33ssnKsv5cRBlkKDZi\n+3b+R2zJ7K4H6dQJuHWLpj5KzebNQHS0NOciQ5GeS5d4Ac7eva0/V506QFQU33aAkA4yFBvx55+8\n9ysFOh2fT79lizTnI3g5nPh4vv+MFERE8A3Trl6V5nwEN/yoKMDRUZrzDR5MhiI1ZCg2gLGy4RSp\nGDCARz2ENPz1Fy+FI9V+GfXr8550fLw05yOAbdukM3yAn2v7dpoxKSVkKDbgxAk+3TEwULpz9u/P\n94Kgh0EapBzuMtC/v3ml74maYYz/Lvv3l+6c7u6AtzffcZOQBjIUG2AY7pJyx0U3N8DLi5dxIaxn\nyxZpI0iADEVKjh/nUV+bNtKed9AgYOtWac+pZchQbMC2bXzsV2po2Esa8vL4glNLSnlUR2gocPky\nr4xLWIfU0YmByEge6RPSQIYiM6WlfHzemtXxpiBDkYY9e/jaE6mSvQbq1OEN1s6d0p5Xi+zYIc2U\n+wd5+GEgOZmvnCeshwxFZo4e5Yneli2lP3dEBK8ZdeeO9OfWErt2AX37ynNuGvayntJSPrlBDkNp\n0gTw9wcOHJD+3FqEDEVmEhLM3/WvtjRuzHcJTE6W5/xaISFBnggS4IZCUaR1/P030KIF4Okpz/kj\nIvjfAGE9Qg0lLi4O7du3h7+/P+bOnVvp+z///DNCQ0PRsWNH9O7dG6mpqQJUWsfu3fL1fgE+NfWv\nv+Q7v9q5fh1ITwe6dZPn/IGBwO3btCLbGnbvls/wAf58Uh5FGoQZSklJCV555RXExcUhLS0NK1eu\nRHp6eoVj2rZti4SEBKSmpuKdd97B888/L0itZTDGez5kKMpl716ejK9fX57z63RAr158B0jCMvbu\nlWZ1vCn69OHXoCn41iPMUJKTk+Hn5wcfHx84Ojpi7NixiI2NrXBMz5490aRJEwBAeHg4Lly4IEKq\nxWRk8MSsj4981zA0VqWl8l1DzciZPzHQsydVh7aGvXv537lcNG/O16McPizfNbSCMEPJzs6Gt7e3\n8bWXlxeys7NNHv/999/jkUcesYU0yTBEJ1KuP3kQd3egaVM+T5+oPX/9xWf6yEmvXmQolpKVBdy9\nC/j6ynudPn34bD/COqzYmcM6dLVoZXfu3IklS5bgLzsb25E7VDdgGPYKCpL/WmqiqIhvJxseLu91\nunblpezv3JGmOKiWSEzkhixnpwzg08bj4uS9hhYQZiienp7IKpepzMrKgpeXV6XjUlNT8dxzzyEu\nLg4uLi4mzzdr1izj/yMjIxEZGSmlXItITgb+53/kv47BUJ57Tv5rqYmjR/lmZfdHVWXDsCHUgQPy\nzfhTK3IPdxkIDwdmz5b/OiKJj49HvMzF5XSMidlXrri4GO3atcP27dvh4eGB7t27Y+XKlQgsV/Dq\n/Pnz6N+/P5YvX44e1ex6pNPpIOjHMMnNm7w8yrVrQN268l4rNRUYNQo4dUre66iNr7/mdZyWLJH/\nWq+9xtciTZ8u/7XURPfuwH/+I/+wZGkp0KwZr7v30EPyXkspyNFuCsuhODg4YOHChRg8eDCCgoIw\nZswYBAYGYtGiRVi0aBEA4P3338e1a9fw4osvolOnTujevbsoubXm0CEgJER+MwH4WpR//uG7DRLm\ns2+f9bszmgvlUWrP7dt8qLBLF/mvpddz89q3T/5rqRlhEYqUKDFC+ewz4Px5YMEC21yvf39g2jTp\nK+aqmcBAYNUqXnNLbi5cADp35rW95M4HqIXdu4E33rDdwt333uNThz/6yDbXE42qIhS1s2+f/Mne\n8nTrRuUjasO1a7yR79DBNtfz9ORTyGmBo/kcOMCjBlsRHg4kJdnuemqEDEUmkpNt+zB07Ur7OtSG\n/fv578zBRtNSdDo+dEPbDZjPwYO2Ge4yEB7OTaykxHbXVBtkKDJw6RJw4wbg52e7a3brxhtJhY38\nKZakJNtGkAA3MIoizefAAem3FKiOZs14Qv6Bgh1ELSBDkYH9+3kDb8ux8tat+fhvNWtDiXIcPChf\n/S5TdOlChmIu16/z4UEpdzk1h27dKIq0BjIUGbD1cBfAzYvyKOZz6BBPktsSw5AXRZE1k5LCJ0vY\nakjSQOfO/G+DsAwyFBkQYShA2bAXUT3//MPXCclZY60qPDyAevWAc+dse1175MAB2+ZPDJChWAcZ\nisQwVjbkZWvIUMwjJYU3HCKm71Ji3jwOHrRt/sRAp068SCQVW7UMMhSJOX+el0KXY4fGmjAMedGQ\nSvUcOsQbDhFQYt48REUoLi58My+qOmEZZCgSc/gwEBYm5tpubtzMaK1D9YjInxggQ6mZggIgJwdo\n317M9WnYy3LIUCQmJUVc7xfgZpaSIu769oBIQ6HEfM0cOiQmIW+ADMVyyFAkRmSEAvBr00ZBprl2\njSfl/f3FXN/NDWjYEDh7Vsz17QFbrz95EDIUyyFDkZjDh8VHKGQopjl8mPd+69QRp4EarOoRGUEC\n/Pk9dIiiSEsgQ5GQvDz+1batOA1kKNUjurECuKH9/bdYDUomNdU2BTtNYYgiMzPFabBXyFAk5O+/\n+YOgF/hb9fXlZezz88VpUDJkKMrm7l3gzBnbr5B/EIoiLYMMRUJSUsTmTwA+lNOxIzVYpiBDUTZp\nabwGXr16YnV07kzrhSyBDEVCROdPDBgWZxEVuX2bD2OI7v22bcuHRq9dE6tDiRiifNGEhZHpWwIZ\nioQoIUIBKI9iirQ0ICAAcHQUq0Ov57t5HjkiVocSSU3lEbZo6P5YBhmKRNy9C2Rk2G7DpuogQ6ma\nI0eU0VgBNOxlCqVEKG3a8AiScpG1gwxFIo4e5WsbRI/9AkBwMHDiBFBYKFqJskhN5T1PJUB5rsow\nppwIRa/nnUOKUmoHGYpEKOVBAAAnJ97DSksTrURZUISibHJyeEMuog5eVdCwV+0hQ5GIo0eV0/sF\nqMGqCiVFKCEh3PCLi0UrUQ6GTpmIKtBV0bEj10SYDxmKRBw5opzGCuDDXkePilahHC5f5nuFe3iI\nVsJp1Ahwd6eqtuVRSv7EAEUotYcMRSKOHuWNuFIICSFDKY8hOlFK7xegKPJBlDRsDJQZCpVgMR8y\nFAm4cgW4cwfw8hKtpAyKUCqipPyJATKUioguufIgzZrxSJJ22DQfMhQJMEQnSur9tm5N0x7Lo7Qh\nSYDG6MtjmHYvetHpg9CwV+0gQ5EAJTZWhmmPFKVwlJSQN9ChA3DsmGgVyiA9XRklVx6ETL92kKFI\nwJEjysqfGKBhL05xMW+wlHaP2rble7PcvClaiXiUlpA3QBFK7SBDkQClTRk2QIl5zunTfEaVs7No\nJRWpU4dvc0vrhXikpoQqEw9CEUrtIEOxEsaUN8PLAEUoHCUm5A3QPeKkpQFBQaJVVKZ9e7675t27\nopXYB0INJS4uDu3bt4e/vz/mzp1b6fvHjx9Hz549Ub9+fcyfP1+Awpo5f57PBHF1Fa2kMobGSuvT\nHpWYPzFAeRROeroyDaVePT40mZ4uWol9IMxQSkpK8MorryAuLg5paWlYuXIl0h+4a82aNcNXX32F\nN998U5DKmlFq/gTgO88BwKVLYnWIhiIUZXP7NnDxIi8XpEQ6dqQ8irkIM5Tk5GT4+fnBx8cHjo6O\nGDt2LGJjYysc06JFC3Tt2hWOouuNV4MSZ3gZ0OkojwIod3weoAgF4IVM/fwABwfRSqqGTN98hBlK\ndnY2vL29ja+9vLyQnZ0tSo7FKDV/YkDrD8Pdu8CFC7zBUiKtWgEFBdpeL6TU/ImBDh1o4oS5COsT\n6CReBThr1izj/yMjIxEZGSnp+U1x5Ajw+us2uZRFBAcDycmiVYjj5Ek+lKLUIFev543psWNA796i\n1YghPV15CxrLExSkDkOJj49HfHy8rNcQZiienp7Iysoyvs7KyoKXFbVLyhuKrSgq4sX9lPwwBAcD\n338vWoU4lJrsLY9hAaqWDWXMGNEqTNO2Lc/x3LoFNGwoWo3lPNjRnj17tuTXEDbk1bVrV5w6dQqZ\nmZkoLCzE6tWrMXz48CqPZQqdpnTqFK/f1aCBaCWmMYTrpaWilYghLU3Zhg9w09dyHkXp98jBgW8d\nffy4aCXKR5ihODg4YOHChRg8eDCCgoIwZswYBAYGYtGiRVi0aBEA4NKlS/D29sbnn3+ODz/8EK1a\ntcJNBS0rtofeb9OmfErz2bOilYhB6cMpgLZL5BQWApmZvMFWMmoZ9pIbofMqoqOjER0dXeG9F154\nwfj/li1bVhgWUxr20FgB/GFITwd8fUUrsT3p6cD/+3+iVVSPliOU06cBb2/l1fB6EDIU86CV8lag\n9FDdQGCgNh+G4mLeYLVrJ1pJ9Xh4APfuAbm5opXYHnuI8gGa6WUuZChWYG8RitY4c4bX8HJyEq2k\nenQ67UYp9tIpM8zEI6qHDMVCSkv5lNT27UUrqRmtRij20vsFtJtHsZd75OsLZGfzjfQI09RoKKdP\nn8bd+5XRdu7ciQULFiBfy6uw7nPuHE92N24sWknNBAbyB1ehk+Vkw156v4B2x+jt5R45OnJTOXFC\ntBJlU6OhjBo1Cg4ODjh9+jReeOEFZGVlYfz48bbQpmjsZbgL4FuZNmjAe1hawp7ukcH0tURJif1E\n+QDlUcyhRkPR6/VwcHDA2rVr8eqrr2LevHm4ePGiLbQpGntqrABtNlj2dI+0mOfKzARatFDePjWm\noDxKzdRoKI6OjlixYgV++uknDB06FABQVFQkuzClYy+hugGtDamUltqXoXh68qq7166JVmI77On+\nANp7hiyhRkP54YcfkJSUhLfffhtt2rTB2bNnMXHiRFtoUzT2kkw0oLUI5cIFnt9q2lS0EvPQ6fjQ\nj5bukdKLQj4IDXnVTI0LG7dt24YFCxYYX7dp0wb1lL4KSWYYs8/e1S+/iFZhO+zt/gBlpt+rl2gl\ntsHeflY/P76h3r17yl+IKYoaI5Qff/zRrPe0xOXLfD/wFi1EKzEfrUUo9tb7BbR3j+wtyq9bl1eu\npplepjFpklsJAAAgAElEQVQZoaxcuRIrVqzA2bNnMWzYMOP7N27cQLNmzWwiTqnYY++3ZUu+cjw3\n176M0FLS04GwMNEqakdgIHC/jJ3qsccoHygb9lLqDqCiMWkovXr1gru7O3Jzc/Hmm28aK/42atQI\noaGhNhOoROwtIQ/wMXrDAseICNFq5Cc9HRg3TrSK2qGlCCUnh1cwcHUVraR2UGK+ekwaSuvWrdG6\ndWskJSXZUo9dYG+hugHD1FS1Gwpj9jnk1bYtcOkSn+2l5C0RpMAeO2UA/5tas0a0CuVi0lCcnZ1N\n7qqo0+lw/fp12UQpnfR0oNwooN2gld5Vbi43lYceEq2kdjg4lK3G7tRJtBp5sedOGa1FMY1JQ1HS\nviNKwx7HfgGuefNm0Srkx3B/JN5l2iYYhr3Ubihpabwgpr0REMAXZBYVKXdbaZGYtR/K33//jYSE\nBOh0OvTp00fTOZSCAuD6db6Hg72hlQjFXg0f0E4eJT0dGD1atIraU68ef/ZPn7bfvzE5qXHa8Jdf\nfomnnnoKubm5uHz5MiZMmFBhXYrWSE/nC9Dssffr7c0NsaBAtBJ5scf8iQGtGIq95lAA7XTMLKFG\nQ/nuu++wb98+vP/++/jggw+QlJSEb7/91hbaFIk9N1Z6vTZWY9tzhKKFml65uXzIqGVL0UosQyum\nbwlm7Yei1+ur/L8WsefGCtDGw2DP9ygggG8MVlwsWol8GBLy9hjlA9rdX8gcasyhTJ48GeHh4Rg5\nciQYY1i3bh2mTJliC22KJD0dePZZ0SosR+3hekEBkJ8PtGolWollODnxLYEzMpS/dbGl2LPhA/wZ\n+vxz0SqUiclw49NPP0VWVhZef/11/PDDD3BxcUGzZs3w448/4rXXXrOlRkVh7w+D2iOU48d5Q2zP\ngbTa75E9DxsDfNj4xAm+nwtREZMRSk5ODnr16gUfHx+MGzcO48ePRwst1Oyohjt3+ApfX1/RSixH\n7RGKvRs+UGYoI0aIViIP6enA4MGiVViOszMvX3TuHF+MSpRhsh/3xRdf4Ny5c/jggw+QmpqKjh07\nYsiQIVi6dClu3LhhS42K4cQJbiYOZk22ViZt2wIXL/LV2GrEnmcPGaAIRfmo/R5ZSrUDA3q9HpGR\nkfjmm29w4cIFvPbaa/jiiy/g5uZmK32KQg29XwcHXoZbrRVT7XUFdnnU3Fhdv843EbPXHJcBtUf6\nlmJWXzs1NRWrVq3CL7/8gubNm+OTTz6RW5ciUYOhAOpeja2Ge2S4P6Wl9p0Lqorjx3kOwt5/rsBA\nIDFRtArlYdJQTp48iVWrVmH16tXQ6/UYN24ctmzZgrYaHjRMTwdGjhStwnrU2gO+c4fv1GjPOS6A\n7zLZqBH/Wey9J/8gahiSBPjP8P33olUoD5OGEh0djbFjx2L16tUItseiOzKghuEUgD8Mv/4qWoX0\nnDzJzUQNNZYMpq82Q1HTM5SezouQ2ut6GjkwaSgZGRm21KF4iov52oCAANFKrEet479qGO4yYGiw\n7Hk2VFWkpQFqWMbWrBlQvz6f9enpKVqNchA6khkXF4f27dvD398fc+fOrfKYqVOnwt/fH6GhoUhJ\nSbGxwjIyMviCMycnYRIkIyAAOHuWl79QE2o0FLWhpnukhTI5tUWYoZSUlOCVV15BXFwc0tLSsHLl\nSqQ/cHc2bdqE06dP49SpU1i8eDFefPFFQWrV9SDUr897VWoLQtUwHdWAGhurO3eA7Gz7z3EZUKvp\nW4MwQ0lOToafnx98fHzg6OiIsWPHIjY2tsIx69evR0xMDAAgPDwc+fn5uHz5sgi5qjIUQJ0Pg5ru\nkRrvz8mTfB2UGnJcgHqHjq2hRkPZs2cPoqKi4O/vjzZt2qBNmzaSzPTKzs6Gd7lNRby8vJCdnV3j\nMRcuXLD62paglmSiAbU9DIYcl1rqX7VsyYckr1wRrUQ61BRBAuo0fWupcR3KM888gy+++AKdO3dG\nnTp1JLuwqe2FH4QxZtbnZs2aZfx/ZGQkIiMjLZVWJenpwEsvSXpKoQQGAtu2iVYhHRkZgLu7OnJc\nAJ85ZGiw+vQRrUYa1BRBAvZXdTg+Ph7x8fGyXqNGQ2natCmio6Mlv7CnpyeysrKMr7OysuDl5VXt\nMRcuXICniSkV5Q1FakpL1fkwfPWVaBXSobYIElCfoaSlAU88IVqFdLi7A4WFPIps3ly0mpp5sKM9\ne/Zsya9R45BXv379MG3aNCQmJuLQoUPGL2vp2rUrTp06hczMTBQWFmL16tUYPnx4hWOGDx+On376\nCQCQlJSEpk2bCin7cuEC0Lgx0KSJzS8tG+3b81XLpaWilUiD2gwfsL8ecE2o7R6VjyIJTo0RSlJS\nEnQ6HQ4cOFDh/Z07d1p3YQcHLFy4EIMHD0ZJSQmeeeYZBAYGYtGiRQCAF154AY888gg2bdoEPz8/\nNGzYED/88INV17QUNfZ+mzQBXFyA8+cBHx/RaqwnLQ3o10+0CmlR07BkUZF61nGVxzAbTy1RpLXU\naChyjrlFR0dXGk574YUXKrxeuHChbNc3F7X1rAwYeldqMJT0dODll0WrkBY1TR3OyAC8vNST4zKg\ntijSWkwayrJlyzBx4kTMnz+/QiKcMQadTofXX3/dJgKVQHo6EBoqWoX0GAxFhhSZTSkt5cN3ajP9\n1q35+PzNm3wPDntGbTO8DAQFAVu3ilahHEzmUG7f3zDjxo0bFb5u3rypuf1Q1FLQ7kHUMv6blaW+\nHBcA1KnDh4iOHxetxHrUHuUTHJMRimHoSc7ZU/aCGnMoAP+Zli8XrcJ61Hp/gLIhla5dRSuxjvR0\nYOBA0Sqkp3Vr4OpV4MYNXiFa69j5rgTyk5vLh1Qeeki0EukpXzHVnlFr7xdQTx5FrUNeej1fTKuG\nKFIKyFBqwDDcpcYS1S1a8J/rn39EK7EOtQ5JAuoYUikt5TuEtm8vWok8UGK+jBoN5cyZM2a9p1bU\nPJyilnn0ao5Q1HB/zp0DXF15nkuNqCWKlIIaDWXUqFGV3nvyySdlEaNE1NxYAfZf04sxdZu+vz9v\nkO/dE63EctT+DFGEUobJpHx6ejrS0tJQUFCAtWvXGqcLX79+HXfv3rWlRqGkpQFDhohWIR/23gPO\nzeWmosYcFwDUrcsTv6dOAfa6capa8ycGKEIpo9o95Tds2ICCggJs2LDB+H6jRo3w7bff2kScElBz\n7xfghrJxo2gVlqPmHJcBQ4Nlr4aSng507y5ahXz4+vLyTHfv8r2GtIxJQ3nsscfw2GOPITExET17\n9rSlJsVw/TqQnw+Uq6CvOuw9QlH7cApg//coLQ2YNEm0CvlwdOT7vJw8CXTsKFqNWGosvbJ48WIs\nXrzY+Nqwan7JkiXyqVII6el8ZopexXPhvL2BggL+ZY8LA9PSgA4dRKuQF3uOIg05Lq2YPhlKDTz6\n6KNGE7lz5w5+//13eHh4yC5MCWjhQdDruWmmpwM9eohWU3vS0oChQ0WrkJfAQOCzz0SrsIyLF3ke\nyB7Ku1sDJeY5NRrKEw9sYDB+/Hj07t1bNkFKQs3rG8pj6F3Zq6GoOccFcMM/dQooKeHlWOwJLXTK\nAP43+PvvolWIp9aDOSdPnkRubq4cWhSH2hPyBux1jD4vD7h1i1exVTPOznwRamamaCW1R0udMopQ\nzIhQnJ2djUNeOp0Obm5umDt3ruzClICWelfffy9aRe0x3B81z/AyYDB9X1/RSmqHFnJcAC+/kpEB\nFBcDDjW2quqlxh/95s2bttChOO7cAbKz7e8BtgR77V1ppfcLlN0je8sXqW3bX1M4OQEeHtxU2rUT\nrUYcZnlpbGwsEhISoNPpEBERgWHDhsmtSzgnT3Iz0UJvw9cXyMnhJmpPGyBpZUgS4IaSmChaRe3R\nQo7LgGG9kJYNpcYcyowZM7BgwQJ06NABgYGBWLBgAWbOnGkLbULRUu/XwaFsHr09ocXGyp7IzeVD\nQC1bilZiG+w1FyklNfa/N27ciMOHD6PO/eklkyZNQlhYGD755BPZxYlEK/kTA4YGy552ptSSoZTf\nasBeckaG/Im96LWWwEBgxw7RKsRSY4Si0+mQn59vfJ2fn19hS2C1oqXhFMD+8ijXr/PtcVu3Fq3E\nNjRrBtSrx4cm7YVjx7T1DNljFCk1NUYoM2fOROfOnREZGQkA2LVrF+bMmSO3LuGkpQH/+7+iVdiO\nwEBg7VrRKszn+HG+PsPe1mVYgyFK8fQUrcQ8tBRBAvzv8fhxvv+LmqtrVIfJH/ull17Cnj17MG7c\nOCQmJmLkyJEYNWoUEhMTMXbsWFtqtDnFxcCZM3w/b61gb+O/WmusALpHSqdJE6BpUyArS7QScZiM\nUAICAjBt2jTk5ORgzJgxGDduHDp16mRLbcLIyOC9QHua8WQt9jaPXmuNFWB/QypavEeGoWOtDMU+\niMkI5d///jcSExOxa9cuuLq6YsqUKWjXrh1mz56Nk/Y2HaiWaGmGl4Hy8+jtAS03VvbA1at8Grq9\nDM9Jhb2ZvtTUONLn4+ODGTNmICUlBatWrcLvv/+OQJW3tlpLyBuwpyEVLZq+Pd0fwzOkgfk7FbCn\neyQHNRpKcXEx1q9fj/Hjx2PIkCFo37491tpT9tYCtNhYAfbzMNy+zavYaqGKQXk8PXmvPy9PtJKa\n0doMLwP2FEXKgUlD2bJlC6ZMmQJPT098++23GDp0KDIyMrBq1So89thjttRoc7S2BsWAvYTrJ04A\nfn72keuREp3Ofkxfi0OSQNkzxJhoJWIwaShz5sxBz549kZ6ejg0bNmD8+PFwdna2pTYhlJbyBkuL\nhmIvvSutNlaAfd0jLRSFfJAWLfiU4cuXRSsRg0lD2bFjB5577jm4urpKftG8vDxERUUhICAAgwYN\nqrBwsjxTpkyBm5sbQkJCJNdginPnABcXoHFjm11SMQQGls2jVzJaNpQOHezHULR6j+wl0pcDIctv\n5syZg6ioKJw8eRIDBgwwuVBy8uTJiIuLs6m2o0cBG/qXomjShBvphQuilVSPlhur4GD+N6pk8vN5\nJQNvb9FKxGAvUaQcCDGU9evXIyYmBgAQExODdevWVXlcnz594OLiYktpOHqUP7RaxR56V2QoolVU\nj2FSi9ZmeBmwh2dILoQYyuXLl+Hm5gYAcHNzw2UFDTgeOaJtQ1F60vfePT4s6e8vWokYvLz4LLcr\nV0QrMY2WDR/QdoQi2zyZqKgoXLp0qdL7H330UYXXOp1OkmKTs2bNMv4/MjLSWHusthw9Crz5ptVy\n7JagIODQIdEqTHPiBNCmDVC3rmglYtDpeIfn2DEgIkK0mqrRakLegFI7ZfHx8YiPj5f1GrIZytat\nW01+z83NDZcuXULLli1x8eJFPPTQQ1Zfr7yhWEpREXDqlDZneBkICQGWLhWtwjRHjmg3x2XAMOyl\nVEM5dgzo31+0CnF4eQG3bgHXrvEJPkrhwY727NmzJb+GkCGv4cOHY+n9Vmvp0qUYMWKECBmVOHWK\nJxK1VMPrQQy9X6XO9CJDUX4eRev3SKfjlYeVGKXIjRBDmTFjBrZu3YqAgADs2LEDM2bMAADk5OTg\n0UcfNR43btw49OrVCydPnoS3tzd++OEHWXVpPSEP8GqpLi5AZqZoJVWj9cYK4H+jR46IVlE1V6/y\n3nmrVqKViEWriXkha41dXV2xbdu2Su97eHhg48aNxtcrV660pSwylPuEhPAGq21b0UoqQ4ZSFqEo\ncfdGw/1Rmi5bo9XEvEa3gakaLa9BKY/BUJRGfj6vY9WmjWglYmnRAqhfH8jOFq2kMmT4nKAgMhTN\nQxEKR6mGcvQonz2k1d3wyqPUPEpqKhkKoNz7Izf0aN7n9m2+05qfn2gl4lGqoVDvtwylNlhHjgAd\nO4pWIR4fH14twB4qQ0sJGcp90tP5lr+OjqKViKddO+DsWb6IUElofdFpeZRoKKWlfIYg3SOeQwoJ\n4RGbliBDuQ8Nd5VRrx5PyCttlgpFKGUo0VDOnuUzBJs2Fa1EGXTsSIaiWchQKqK0YS/GyFDKY5iW\nWlIiWkkZdH8qEhoK/P23aBW2hQzlPmQoFQkJUVYP+MIFHjlJUFRBFTRuzGd7nT0rWkkZlD+pCEUo\nGobG5yuitAiFpnRXRmkLHGmGV0WCg/nUYSVFkXJDhgJeufXmTT4zg+AozVBoOKUyYWHKGlKhe1SR\nRo2Ali2B06dFK7EdZCjgD2VoKK3uLU/r1kBBAS9wpwSosapMWBhw+LBoFZw7d/i2Au3aiVaiLLSW\nRyFDAX8ow8JEq1AWej1fRKiUPAoZSmWUZChpaXyPGq1uK2AKreVRyFDAH8rQUNEqlIdSHoaiIuDk\nSW1v2lQVbdvyYoxKiCLJ8KtGKc+QrSBDAUUopggLA1JSRKvgvd/WrYGGDUUrURZ6PW+wlDCkQoZS\nNaGhZCia4u5dnjSj3m9lOnVShqGkpACdO4tWoUyUMuyVksL/XoiKtGnDo8j8fNFKbIPmDcUw9lu/\nvmglyqNjR754rrBQrA5qrEyjBENhjG8bTfeoMnq98qZ3y4nmDYWGu0zToAHvYYkuw02NlWmUMHX4\n7FnA2ZkWnZpCS3kUMhQylGoRPexVWsobTDKUqgkOBk6cEBtF0pBk9YSGio8ibQUZChlKtYg2lIwM\nwNWVfxGVcXLiUaTIQp6HDpGhVEfnzsDBg6JV2AZNG4qh90tThk0j2lAof1IzovMoNCRZPaGhwPHj\nytsOQg40bSiZmbzIXrNmopUoF0NjVVoq5vrUWNWMyCEVQ0KeIhTTODnxiT9aSMxr2lCosaoZV1eg\neXNx9YgoQqmZTp3437IILl7knQ0vLzHXtxe6dAEOHBCtQn40bSgHDgDduolWoXxEDXsxRglfc+ja\nlRuKiKq2huiE6uBVT9eu2sijaNpQ9u/nN5qoHlGGkpPD//XwsP217QkXF17VVkRinqJ88+jShQxF\n1ZSW8htMhlIzooZUDI0V9X5rpls33kGyNRRBmkfHjjwxf/euaCXyollDycjge1+3aCFaifLp2pUP\nDzJm2+vu309DkubSvbsYQ6GEvHloJTGvWUOh4S7zadmSbxZ06pRtr5uczBtKomZERCiXLwPXr/Oq\nx0TNaCGPollDoYR87QgP5w28rWCMDKU2dOrES+TYcq3Dvn38/ug124rUDi3kUTT7p0ARSu3o3p03\nILbi9OmyLVSJmmnQAPDzs23NqH37eEeDMA8tTB0WYih5eXmIiopCQEAABg0ahPwqajtnZWWhX79+\n6NChA4KDg7FgwQLJrl9SwheCdeki2SlVj60jlORkaqxqi62HvchQakdoKN8o7vZt0UrkQ4ihzJkz\nB1FRUTh58iQGDBiAOXPmVDrG0dERn3/+OY4dO4akpCT897//RbpE8yLT0gB3d56UJ8yjc2e+HbCt\nhlQMwymE+djSUEpL+bXoHplP/fp8W201D3sJMZT169cjJiYGABATE4N169ZVOqZly5YIu1+10dnZ\nGYGBgcgxLEywkr17gV69JDmVZmjYkM9SsVWpdIpQak+3braLIo8f5xUUaJZk7ejVC0hMFK1CPoQY\nyuXLl+Hm5gYAcHNzw+XLl6s9PjMzEykpKQiXqIUhQ7EMW+VR7t3j0ytpOmrtCAnh9emuX5f/WjTc\nZRk9e/L2R63IZihRUVEICQmp9LV+/foKx+l0OuiqWbl28+ZNPPHEE/jyyy/h7Owsiba9e4HevSU5\nlaYID7eNofz9N08w0x7ytcPRkecFbXGPkpLIUCzBEKHYek2XrXCQ68Rbt241+T03NzdcunQJLVu2\nxMWLF/GQia3eioqKMGrUKEyYMAEjRoyo9nqzZs0y/j8yMhKRkZFVHnf5MnDlChAYWOOPQDxA797A\nBx/If509e8jwLeXhh/nvLypK3uvs2wdMnizvNdSItzc3/jNnAF9f2147Pj4e8fHxsl5Dx5jtvfKt\nt95Cs2bNMH36dMyZMwf5+fmVEvOMMcTExKBZs2b4/PPPqz2fTqeDuT/GunXA4sXApk0Wy9csjAFu\nbjyp6O0t33UefxwYPRoYN06+a6iVzZuBzz4Dtm+X7xoFBby68NWrQN268l1HrTz5JPDYY8CECWJ1\n1KbdNBchOZQZM2Zg69atCAgIwI4dOzBjxgwAQE5ODh599FEAwF9//YXly5dj586d6NSpEzp16oS4\nuDirr035E8vR6XgPePdu+a7BGO9h9+kj3zXUTM+ePDFfVCTfNf76i+fTyEwso1cv9eZRZBvyqg5X\nV1ds27at0vseHh7YuHEjAODhhx9GqQy7Ou3dC7z/vuSn1Qx9+nBDGT9envMfPw44O9P+GpbStCkv\nhZKSIt+U3oQEoG9fec6tBXr2BJYuFa1CHjS1Uv7ePb6gkebOW47BUORi926KTqzFkEeRCzIU6+jc\nmedQ8vJEK5EeTRlKYiIQHMx7wIRlhIUB58/z8XM5IEOxHjkN5dYtXt6FZnhZTt26fNhr1y7RSqRH\nU4ayYwfQv79oFfaNgwPQowcfR5cDMhTrMRiKDCPGSEriJUQaNJD+3FqiXz9g507RKqRHU4ayfTsw\nYIBoFfZP37582ENqzp/ndY7atZP+3FrC2xto0kSevTdouEsayFDsnBs3eKhOM7ysZ8AAoJplRhaz\nbRuPIGmHRuuJipLnHu3aRYYiBZ07A1lZwD//iFYiLZoxlN27ea0jJyfRSuyfbt34w3DxorTn3bpV\n/gV5WkEOQ7l5k69BIkOxHgcHPrQr8zpDm6MZQ9m+nfInUuHgwH+XUjZYpaU8QiFDkYZ+/fgUeSn3\nMI+P550JKokjDWoc9tKMoezYQfkTKRk8GNiyRbrzHT4MNGsGtGol3Tm1TNOmfEajlJMn/vyT33dC\nGgYO5M+Qmup6acJQcnKAc+doh0YpGTSIRyhSzSSi4S7piYqS1vS3bOH3nZCGkBCgsBA4cUK0EunQ\nhKFs3Mh7Vo6OopWoh9atARcX6fZH+eMPIDpamnMRnEGDpDOUs2eB/Hw+ZZiQBp0OeOQR3j6pBU0Y\nyoYNwLBholWoj8GDeTFCa8nN5TPwKMclLT168MkT589bf67164GhQwG9JloM2/Hoo2QodsWdOzyZ\nSL1f6XnsMWDtWuvPs3EjH56pX9/6cxFlODjwjlRsrPXn+v13oIYdJAgLGDAAOHCAV3BWA6o3lO3b\n+ZxvFxfRStRH3748N5WZad15YmOB4cMlkUQ8wIgR3AysITeXT5qgHJf0NGzIn6M//hCtRBpUbyir\nVwOjRolWoU4cHLgRWBOl3LrFZ+Dd37WAkJhBg/jaEWtqr/3xB0WQcjJmDG+n1ICqDeX2bf4wjB4t\nWol6GTUK+O03yz+/bh2vPdWsmXSaiDKcnLipWGP6q1cDI0dKp4moyGOP8QoE+fmilViPqg1l40a+\nEMvNTbQS9TJwIHDqFJCRYdnnly8Xv3Od2pk40fL9N3Jy+IZdjz0mrSaijMaN+YSUdetEK7EeVRvK\nzz/TNrJyU7cu8NRTwI8/1v6zly/z6rXUWMlLdDQ3/dOna//Z5ct5dELVheVl3Djgp59Eq7Ae1RrK\nhQu8MirlT+RnyhRuKCUltfvc8uU8B0ONlbw4OlrWYDHGI5uYGHl0EWWMGAEcO8Z3LLVnVGsoixbx\nnnPjxqKVqJ+QEKBlS16aw1yKi4GvvgJeflk+XUQZzzwDfPcd37XUXHbt4vepd2/5dBGcunV5x2zR\nItFKrEOVhnLvHvDtt9RY2ZJ//xv49FPzj1+/HvD0pO2YbUVICP9ascL8z3z2GfDGG7SY0VY8/zyw\nbBmv6myvqPJP5aefeImI9u1FK9EOY8bwNSmJiTUfyxgwfz7wr3/Jr4soY9o0bhLmFCNMSwP27+cJ\nfcI2tGnDp2d/9ZVoJZajOkO5exf44ANg9mzRSrSFgwNvsN5/v+ZjN2/mUyRpKqptGTCATyP+5Zea\nj501C5g6lfYPsjWzZgH/+Y/9rpxXnaF8+inQpQuvY0TYlmefBc6cqb420b17wJtvAp98wk2IsB06\nHY9Qpk/na7RMsXs3jzRfe8122ghOu3a8ZtqHH4pWYhk6xuy/Gr9OpwNjDH//zXthhw7Rvhqi2LqV\nJ4BTUqperDhzJp/JsnYtbfUriokTgUaNgP/7v8rfu3kTCAsD5s0DHn/c9toIvi1wSAhfl9Kzp3zX\nMbSbUqKaCCUriz8ACxeSmYgkKornU554gpdVKc+yZTwp/M03ZCYi+eorXtb+QUMpLORVJQYMIDMR\nyUMP8UlFTzxh+YJhUagmQvH0ZHjjDQrTlUBJCR/+OnSI57M8PLiZrF3L8yfBwaIVEmfOcOMYNAiY\nPBnIy+Pj961bc9OnvYPEs3gx8O67PC85dCh/jqREjghFNYayaxdD376ilRAGGANWruRrH65dAyIj\ngRkzqAyOksjP57msLVv4ENikSdxcKHpUDklJPC/s7Cz9SnoyFBPI8YshCIJQM6rJoeTl5SEqKgoB\nAQEYNGgQ8qsos3n37l2Eh4cjLCwMQUFBmDlzpgClBEEQhLkIMZQ5c+YgKioKJ0+exIABAzBnzpxK\nx9SvXx87d+7E4cOHkZqaip07d2LPnj0C1EpDfHy8aAlmQTqlhXRKC+lUNkIMZf369Yi5X3EuJiYG\n60zUbW5wv2pgYWEhSkpK4OrqajONUmMvf2CkU1pIp7SQTmUjxFAuX74Mt/vZWTc3N1y+fLnK40pL\nSxEWFgY3Nzf069cPQUFBtpRJEARB1ALZ1ipHRUXh0qVLld7/6KOPKrzW6XTQmZhWotfrcfjwYRQU\nFGDw4MGIj49HZGSkHHIJgiAIa2ECaNeuHbt48SJjjLGcnBzWrl27Gj/z/vvvs3nz5lX5PV9fXwaA\nvuiLvuiLvsz88vX1lbRdZ4wxIdWUhg8fjqVLl2L69OlYunQpRowYUemYK1euwMHBAU2bNsWdO3ew\ndetWvPfee1We77QlW9ERBEEQkiJkHUpeXh5Gjx6N8+fPw8fHB7/88guaNm2KnJwcPPfcc9i4cSNS\nU+fTe9sAAAgFSURBVFMxadIklJaWorS0FBMnTsS0adNsLZUgCIIwE1UsbCQIgiDEo7jikHFxcWjf\nvj38/f0xd+7cKo+ZOnUq/P39ERoaipSUlBo/a85CSiXonDZtGgIDAxEaGoqRI0eiQIJNEeTQaWD+\n/PnQ6/XIy8tTpMavvvoKgYGBCA4OxvTp063SKJfO5ORkdO/eHZ06dUK3bt2wf/9+oTqnTJkCNzc3\nhISEVDheac+QKZ1Ke4ZM6TQg1TMkp85aPUeSZ2WsoLi4mPn6+rKzZ8+ywsJCFhoaytLS0iocs3Hj\nRhYdHc0YYywpKYmFh4fX+Nlp06axuXPnMsYYmzNnDps+fboidW7ZsoWVlJQwxhibPn26YnUyxtj5\n8+fZ4MGDmY+PD7t69ariNO7YsYMNHDiQFRYWMsYY++effyzWKKfOiIgIFhcXxxhjbNOmTSwyMlKY\nTsYYS0hIYIcOHWLBwcEVPqOkZ6g6nUp6hqrTyZh0z5CcOmv7HCkqQklOToafnx98fHzg6OiIsWPH\nIjY2tsIx5RdFhoeHIz8/H5cuXar2s+YupBStMyoqCvr7G3iHh4fjwoULitQJAK+//jo+rc0m8jbW\n+PXXX2PmzJlwvF82t0WLForU6e7ubuxF5+fnw9PTU5hOAOjTpw9cXFwqnVdJz1B1OpX0DFWnE5Du\nGZJTZ22fI0UZSnZ2Nry9vY2vvby8kJ2dbdYxOTk5Jj9r7kJK0TrLs2TJEjzyyCOK1BkbGwsvLy90\n7NjRKn1yajx16hQSEhLQo0cPREZG4sCBA4rUOWfOHLzxxhto1aoVpk2bhk8++USYzupQ0jNkLqKf\noeqQ8hmSU2dtnyNFbcJqaoHjgzAz5hEwxqo8X3ULKc1FSp1V8dFHH6Fu3boYP368RZ83IIfOO3fu\n4OOPP8bWrVst+vyDyPW7LC4uxrVr15CUlIT9+/dj9OjROHPmjCUSAcin85lnnsGCBQvw+OOPY82a\nNZgyZUqF321tsVRnbZ4Jkc+QuZ8T/QxV97nbt29L+gzVdL3y1Pb3WdvnSFERiqenJ7Kysoyvs7Ky\n4OXlVe0xFy5cgJeXV5XvG4YP3NzcjKHdxYsX8dBDDylG54Of/fHHH7Fp0yb8/PPPVmmUS2dGRgYy\nMzMRGhqKNm3a4MKFC+jSpQv++ecfxWgEeO9r5MiRAIBu3bpBr9fj6tWrFmmUU2dycjIev7894hNP\nPIHk5GSLNVqjs6ahNqU8Q+YMCSrhGapOp9TPkFw6AQueI0uTQHJQVFTE2rZty86ePcvu3btXY2Ip\nMTHRmFiq7rPTpk1jc+bMYYwx9sknn1idqJNL5+bNm1lQUBDLzc21Sp/cOstjbUJRLo3ffPMNe/fd\ndxljjJ04cYJ5e3tbrFFOnZ06dWLx8fGMMca2bdvGunbtKkyngbNnz1aZlFfKM1SdTiU9Q9XpLI8U\nSXm5dNb2OVKUoTDGZ7oEBAQwX19f9vHHHzPG+A/1zTffGI95+eWXma+vL+vYsSM7ePBgtZ9ljLGr\nV6+yAQMGMH9/fxYVFcWuXbumSJ1+fn6sVatWLCwsjIWFhbEXX3xRkTrL06ZNG6sfBjk0FhYWsgkT\nJrDg4GDWuXNntnPnTqs0yqVz//79rHv37iw0NJT16NGDHTp0SKjOsWPHMnd3d1a3bl3m5eXFlixZ\nwhhT3jNkSqfSniFTOssjxTMkl87aPke0sJEgCIKQBEXlUAiCIAj7hQyFIAiCkAQyFIIgCEISyFAI\ngiAISSBDIQiCICSBDIUgCIKQBDIUQnNcvXoVnTp1QqdOneDu7g4vLy906tQJjRo1wiuvvCL59RYt\nWoRly5ZJfl6CUBq0DoXQNLNnz0ajRo3w+uuvi5ZCEHYPRSiE5jH0qeLj4zFs2DAAwKxZsxATE4O+\nffvCx8cHa9euxZtvvomOHTsiOjoaxcXFAICDBw8iMjISXbt2xZAhQ4z1rsoza9YszJ8/HwAQGRmJ\nGTNmIDw8HO3atcOePXsqHR8fH4+IiAiMGDECvr6+mDFjBpYtW4bu3bujY8eOxuJ8a9asQUhICMLC\nwhARESHL74YgagMZCkGY4OzZs9i5cyfWr1+PCRMmICoqCqmpqXBycsLGjRtRVFSEV199Fb/99hsO\nHDiAyZMn4+233650nvLVeXU6HUpKSrBv3z588cUXmD17dpXXTk1NxaJFi5Ceno5ly5YhIyMDycnJ\nePbZZ/HVV18BAD744ANs2bIFhw8fxoYNG+T7RRCEmSiqfD1BKAWdTofo6GjUqVMHwcHBKC0txeDB\ngwEAISEhyMzMxMmTJ3Hs2DEMHDgQAFBSUgIPD48az22o3tq5c2dkZmZWeUy3bt2M+4/4+fkZrx0c\nHIydO3cCAHr37o2YmBiMHj3aeE6CEAkZCkGYoG7dugAAvV5v3LHO8Lq4uBiMMXTo0AF79+6t1Xnr\n1asHAKhTp45x6MzUMYbrGV4brg3w3fSSk5OxceNGdOnSBQcPHoSrq2uttBCElNCQF0FUgTlzVdq1\na4fc3FwkJSUBAIqKipCWlmbx+WpLRkYGunfvjtmzZ6NFixZWb3dLENZCEQqhecrnN6r6f/ljyr92\ndHTEr7/+iqlTp6KgoADFxcV47bXXEBQUZPIa5rxf3Y6I5b/31ltv4dSpU2CMYeDAgZJtJ0sQlkLT\nhgmCIAhJoCEvgiAIQhLIUAiCIAhJIEMhCIIgJIEMhSAIgpAEMhSCIAhCEshQCIIgCEkgQyEIgiAk\ngQyFIAiCkIT/D1aoyBiLHf2sAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7f0c53674cd0>"
+ ]
+ }
+ ],
+ "prompt_number": 65
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Linear_Integrated_Circuits_by_J._B._Gupta/chapter06.ipynb b/Linear_Integrated_Circuits_by_J._B._Gupta/chapter06.ipynb
new file mode 100644
index 00000000..4b5636a7
--- /dev/null
+++ b/Linear_Integrated_Circuits_by_J._B._Gupta/chapter06.ipynb
@@ -0,0 +1,618 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter- 6 : Active Filters"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 6.1 - Page No 203"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# Given data\n",
+ "f_H= 2 # in kHz\n",
+ "f_H= f_H*10**3 # in Hz\n",
+ "C=0.01 # in micro F\n",
+ "C=C*10**-6 # in F\n",
+ "R= 1/(2*pi*f_H*C) # in ohm\n",
+ "R=R*10**-3 # in kohm\n",
+ "# R may be taken a pot of 10 k ohm\n",
+ "R=10 # in k ohm\n",
+ "# Since the passbond gain is 2.5, so\n",
+ "# 1+Rf/R1= 2.5 or Rf= 1.5*R1\n",
+ "# Since Rf||R1\n",
+ "R1= R*2.5/1.5 # in k ohm\n",
+ "Rf= R1*1.5 # in k ohm\n",
+ "print \"Value of R1 = %0.2f k ohm (Standard value 18 k ohm)\" %R1\n",
+ "print \"Value of Rf = %0.f k ohm (Standard value 27 k ohm)\" %Rf"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of R1 = 16.67 k ohm (Standard value 18 k ohm)\n",
+ "Value of Rf = 25 k ohm (Standard value 27 k ohm)\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 6.2 - Page No 205\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "# Given data\n",
+ "f_H= 2 # in kHz\n",
+ "f_H= f_H*10**3 # in Hz\n",
+ "C=0.033 # in micor F\n",
+ "C=C*10**-6 # in F\n",
+ "C_desh= C \n",
+ "R= 1/(2*pi*f_H*C) # in ohm\n",
+ "R=R*10**-3 # in kohm\n",
+ "R=2.7 # k ohm (Standard value)\n",
+ "R_desh= R \n",
+ "# So 2*R= Rf*R1/(Rf+R1) = 0.586*R1**2/(1.586*R1)\n",
+ "R1= 2*R*1.586/(0.586) # in k ohm\n",
+ "print \"The value of R1 = %0.1f k ohm (Standard value 15 k ohm) \" %R1\n",
+ "R1= 15 # k ohm (Standard value)\n",
+ "Rf= 0.586*R1 # in k ohm\n",
+ "print \"The value of Rf = %0.2f k ohm (Standard value 10 k ohm) \" % Rf "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R1 = 14.6 k ohm (Standard value 15 k ohm) \n",
+ "The value of Rf = 8.79 k ohm (Standard value 10 k ohm) \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 6.3 - Page No 205 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Given data\n",
+ "f_H= 1 # in kHz\n",
+ "f_H= f_H*10**3 # in Hz\n",
+ "C=0.0047 # in micro F\n",
+ "C=C*10**-6 # in F\n",
+ "C_desh= C \n",
+ "R= 1/(2*pi*f_H*C) # in ohm\n",
+ "R=R*10**-3 # in kohm\n",
+ "R=math.floor(R) \n",
+ "R_desh= R \n",
+ "R1=R # in k ohm\n",
+ "Rf= 0.586*R1 # in k ohm\n",
+ "Rf= math.ceil(Rf) # in k ohm\n",
+ "print \"Value of R' = R = %0.f k ohm\" %R\n",
+ "print \"Value of C' = C = %0.4f micro F\" %(C*10**6)\n",
+ "print \"Value of R1 = %0.f k ohm\" %R1\n",
+ "print \"Value of Rf = %0.1f k ohm\" %Rf"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of R' = R = 33 k ohm\n",
+ "Value of C' = C = 0.0047 micro F\n",
+ "Value of R1 = 33 k ohm\n",
+ "Value of Rf = 20.0 k ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 6.4 - Page No 206\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "f= 1 # in kHz\n",
+ "f= f*10**3 # in Hz\n",
+ "# Vout/Vin= 10\n",
+ "R1= 100 # in k ohm\n",
+ "R1=R1*10**3 # in ohm\n",
+ "R2= 1000 # in k ohm\n",
+ "R2=R2*10**3 # in ohm\n",
+ "omega= 2*pi*f \n",
+ "# Vout/Vin at a 3 dB frequency of 1 kHz = 1/sqrt(2) = omega*R2*C/sqrt(1+omega**2*R1**2*C2)\n",
+ "C= math.sqrt(1/(omega**2*(2*R2**2-R1**2))) # in F\n",
+ "print \"Value of R1 = %0.f k ohm\" %(R1*10**-3)\n",
+ "print \"Value of R2 = %0.f k ohm\" %(R2*10**-6)\n",
+ "print \"Value of C = %0.4e F\" %C"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of R1 = 100 k ohm\n",
+ "Value of R2 = 1 k ohm\n",
+ "Value of C = 1.1282e-10 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 6.5 - Page No 207\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "R= 2.1 # in k ohm\n",
+ "R=R*10**3 # in ohm\n",
+ "R1= 20 # in k ohm\n",
+ "R1=R1*10**3 # in ohm\n",
+ "Rf= 60 # in k ohm\n",
+ "Rf=Rf*10**3 # in ohm\n",
+ "C=0.05 # in micro F\n",
+ "C=C*10**-6 # in F\n",
+ "fL= 1/(2*pi*R*C) # in Hz\n",
+ "print \"Low cut-off frequency = %0.3f kHz\" %(fL*10**-3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Low cut-off frequency = 1.516 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 6.6 - Page No 211\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "R= 10 # in k ohm\n",
+ "R=R*10**3 # in ohm\n",
+ "R_desh= R # in ohm\n",
+ "C=0.1 # in micro F\n",
+ "C=C*10**-6 # in F\n",
+ "C_desh=0.0025 # in micro F\n",
+ "C_desh=C_desh*10**-6 # in F\n",
+ "fH= 1/(2*pi*R_desh*C_desh) # in Hz\n",
+ "print \"Higher cut-off frequency = %0.3f kHz\"%(fH*10**-3)\n",
+ "fL= 1/(2*pi*R*C) # in Hz\n",
+ "print \"Lower cut-off frequency = %0.2f Hz\" %fL\n",
+ "BW= fH-fL \n",
+ "print \"Bandwidth = %0.1f kHz\" %(BW*10**-3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Higher cut-off frequency = 6.366 kHz\n",
+ "Lower cut-off frequency = 159.15 Hz\n",
+ "Bandwidth = 6.2 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 6.7 - Page No 212\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "fc= 1 # in kHz\n",
+ "fc=fc*10**3 # in Hz\n",
+ "Q=5 \n",
+ "Af=8 \n",
+ "# Let C=C1=C2=0.01 # in micro F\n",
+ "C1= 0.01 # in micro F\n",
+ "C1=C1*10**-6 # in F\n",
+ "C2=C1 # in F\n",
+ "C=C2 # in F\n",
+ "R1= Q/(2*pi*fc*C*Af) # in ohm\n",
+ "R1=R1*10**-3 # in kohm\n",
+ "R1=math.ceil(R1) \n",
+ "R2= Q/(2*pi*fc*C*(2*Q**2-Af)) # in ohm\n",
+ "R2=R2*10**-3 # in kohm\n",
+ "R2=math.ceil(R2) \n",
+ "R3= Q/(pi*fc*C) # in ohm\n",
+ "R3=R3*10**-3 # in kohm\n",
+ "R3=math.ceil(R3) \n",
+ "# The value of R2_desh required to change the centre frequency from 1 kHz to 2 kHz is\n",
+ "f_desh_c= 2000 # in Hz\n",
+ "R2_desh= R2*(fc/f_desh_c)**2 # in kohm\n",
+ "print \"Value of R1 = %0.f kohm\" %R1\n",
+ "print \"Value of R2 = %0.f kohm\" %R2\n",
+ "print \"Value of R3 = %0.f kohm\" %R3\n",
+ "print \"Value of R2_desh = %0.f ohm\" %(R2_desh*10**3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of R1 = 10 kohm\n",
+ "Value of R2 = 2 kohm\n",
+ "Value of R3 = 160 kohm\n",
+ "Value of R2_desh = 500 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 6.8 - Page No 212\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "C= 0.1 # in micro F\n",
+ "C=C*10**-6 # in F\n",
+ "R1= 2 # in kohm\n",
+ "R1=R1*10**3 # in ohm\n",
+ "R2= 2/3 # in kohm\n",
+ "R2=R2*10**3 # in ohm\n",
+ "R3= 200 # in kohm\n",
+ "R3=R3*10**3 # in ohm\n",
+ "# R1= Q/(2*pi*fc*C*Af) (i)\n",
+ "# R2= Q/(2*pi*fc*C*(2*Q**2-Af)) (ii)\n",
+ "# R3= Q/(pi*fc*C) (iii)\n",
+ "# From (i) and (iii)\n",
+ "Af= R3/(2*R1) \n",
+ "# From (ii) and (iii)\n",
+ "Q= math.sqrt(1/2*(R3/(2*R2)+Af)) \n",
+ "# From (iii)\n",
+ "fc= Q/(R3*pi*C) # in Hz\n",
+ "omega_o= 2*pi*fc # in radians/second\n",
+ "print \"The value of gain = %0.f\" %Af \n",
+ "print \"Value of Q = %0.f\" %Q\n",
+ "print \"Centre frequency = %0.f radians/second\" %omega_o"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of gain = 50\n",
+ "Value of Q = 10\n",
+ "Centre frequency = 1000 radians/second\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 6.9 - Page No 213\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# Given data\n",
+ "fL= 200 # in Hz\n",
+ "fH= 1 # in kHz\n",
+ "fH=fH*10**3 # in Hz\n",
+ "#Let the capacitor C_desh be of 0.01 micro F \n",
+ "C_desh= 0.01*10**-6 # in F\n",
+ "R_desh= 1/(2*pi*fH*C_desh) # in ohm\n",
+ "R_desh=R_desh*10**-3 # in kohm\n",
+ "R_desh= 18 # in kohm\n",
+ "# Let \n",
+ "C=0.05*10**-6 # in F\n",
+ "R= 1/(2*pi*fL*C) # in ohm\n",
+ "R=R*10**-3 # in kohm\n",
+ "R= 18 # in k ohm\n",
+ "Rf= 10 # in kohm\n",
+ "print \"Value of Rf' = Rf = R1' = R1 = %0.f kohm\" %Rf\n",
+ "print \"Value of R = R' = %0.f kohm\" %R\n",
+ "print \"Value of C'= %0.2f micro F\" %(C_desh*10**6)\n",
+ "print \"Value of C = %0.2f micro F\" %(C*10**6)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of Rf' = Rf = R1' = R1 = 10 kohm\n",
+ "Value of R = R' = 18 kohm\n",
+ "Value of C'= 0.01 micro F\n",
+ "Value of C = 0.05 micro F\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 6.11 - Page No 214\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "fL= 200 # in Hz\n",
+ "fH= 1 # in kHz\n",
+ "fH=fH*10**3 # in Hz\n",
+ "fc= math.sqrt(fL*fH) # in Hz\n",
+ "Q= fc/(fH-fL) \n",
+ "print \"The value of Q for filter = %0.3f\" %Q"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Q for filter = 0.559\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 6.12 - Page No 216\n",
+ " "
+ ]
+ },
+ {
+ "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 1.8 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 1.8 k\u03a9)\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 6.13 - Page No 218"
+ ]
+ },
+ {
+ "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 47 k\u03a9)\" %R"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R = 46.8 k\u03a9 (standard value 47 k\u03a9)\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 6.14 - Page No 218 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "fN= 60 # in Hz\n",
+ "# Let\n",
+ "C= 0.06 # in micro F\n",
+ "C=C*10**-6 # in F\n",
+ "R= 1/(2*pi*fN*C) # in ohm\n",
+ "R=R*10**-3 # in kohm\n",
+ "print \"Value of R = %0.2f kohm (Standard value 47 kohm)\" %R\n",
+ "print \"For R/2, two 47 kohm resistors connected in parallel may be used and for 2C component, \"\n",
+ "print \"two parallel connected %0.2f micro F capacitors may be used\" %(C*10**6)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of R = 44.21 kohm (Standard value 47 kohm)\n",
+ "For R/2, two 47 kohm resistors connected in parallel may be used and for 2C component, \n",
+ "two parallel connected 0.06 micro F capacitors may be used\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 6.15 - Page No 219"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# 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": 19
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Linear_Integrated_Circuits_by_J._B._Gupta/chapter07.ipynb b/Linear_Integrated_Circuits_by_J._B._Gupta/chapter07.ipynb
new file mode 100644
index 00000000..a1dee947
--- /dev/null
+++ b/Linear_Integrated_Circuits_by_J._B._Gupta/chapter07.ipynb
@@ -0,0 +1,444 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter-7 : Oscillators (Sinusoidal As Well As Non-Sinusoidal)"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 7.1 - Page No 232"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from numpy import pi\n",
+ "from math import sqrt\n",
+ "# Given data\n",
+ "f=200 # in Hz\n",
+ "# Let us take\n",
+ "C=0.1 # in micro F\n",
+ "C=C*10**-6 # in F\n",
+ "R=1/(2*pi*f*C*sqrt(6)) # in ohm\n",
+ "R=R*10**-3 # in k ohm\n",
+ "# R1>=10*R, Let\n",
+ "R1=10*R # in kohm\n",
+ "R_f= 29*R1 # in k ohm\n",
+ "R_f=R_f*10**-3 # in M ohm\n",
+ "R_f=math.ceil(R_f) \n",
+ "print \"Resistor of phase-shift oscillator = %0.f Mohm\" %R_f"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resistor of phase-shift oscillator = 1 Mohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 7.2 - Page No 232"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "f=1 # in kHz\n",
+ "f=f*10**3 # in Hz\n",
+ "V_CC= 10 # in volt\n",
+ "I_B_max= 500 # in nA (for 741 IC op-amp)\n",
+ "I_B_max= I_B_max*10**-9 # in A\n",
+ "I1= 100*I_B_max # in A\n",
+ "V_out= (V_CC-1) # in volt\n",
+ "V_in= V_out/29 \n",
+ "R1= V_in/I1 # in ohm\n",
+ "R1=R1*10**-3 #in k ohm\n",
+ "# 5.6 k ohm resistor may be used for R1, being standard value resistor\n",
+ "R1=5.6 # in k ohm (standard value)\n",
+ "A=29 \n",
+ "R_f= A*R1 \n",
+ "# 180 k ohm resistor may be used to provide A > 29\n",
+ "R_f=180 # in k ohm (standard value)\n",
+ "R_comp= R_f \n",
+ "R=R1 # in k ohm\n",
+ "R=R*10**3 # in ohm\n",
+ "C=1/(2*pi*f*R*sqrt(6)) # in F\n",
+ "C=C*10**6 # in micro F\n",
+ "print \"Value of R_comp = R_f = %0.f kohm\" %R_comp\n",
+ "print \"Value of R = R1 = %0.1f in kohm\" %(R*10**-3)\n",
+ "print \"Value of capacitor = %0.2f micro F\" %C"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of R_comp = R_f = 180 kohm\n",
+ "Value of R = R1 = 5.6 in kohm\n",
+ "Value of capacitor = 0.01 micro F\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 7.3 - Page No 235"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "f=10 # in kHz\n",
+ "f=f*10**3 # in Hz\n",
+ "I_Bmax= 500 # in nA\n",
+ "I_Bmax= I_Bmax*10**-9 # in amphere\n",
+ "# Let current through resistor R1 be equal to 100 times I_Bmax, so\n",
+ "I_1= 100*I_Bmax # in amp\n",
+ "Vcc= 10 # in volt\n",
+ "Vout= Vcc-1 # in volt\n",
+ "Addition_RfR1= Vout/(500*10**-6) # value of Rf+R1 in ohm\n",
+ "Addition_RfR1=Addition_RfR1*10**-3 # in kohm\n",
+ "# Rf= 2*R1, So\n",
+ "R1= Addition_RfR1/3 # (used 5.6 kohm Standard value resistor)\n",
+ "print \"Value of R1 = %0.f kohm (Standard value 5.6 k ohm)\" %R1\n",
+ "R1= 5.6 # in kohm (used 5.6 kohm Standard value resistor)\n",
+ "Rf= 2*R1 # in kohm# (used 12 kohm standard value resistor)\n",
+ "print \"Value of Rf = %0.1f kohm (Standard value 12 k ohm)\" %Rf\n",
+ "Rf= 12 # k ohm (used 12 kohm standard value resistor)\n",
+ "R=R1 # in kohm\n",
+ "C= 1/(2*pi*f*R) # in F (Used 2700pF standard value)\n",
+ "C=2700 # in pF \n",
+ "print \"Value of R = %0.1f kohm\" %R\n",
+ "print \"Value of C = %0.f pF\" %C"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of R1 = 6 kohm (Standard value 5.6 k ohm)\n",
+ "Value of Rf = 11.2 kohm (Standard value 12 k ohm)\n",
+ "Value of R = 5.6 kohm\n",
+ "Value of C = 2700 pF\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 7.4 - Page No 235"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "R= 1 # in kohm\n",
+ "R=R*10**3 # in ohm\n",
+ "C= 4.7 # in micro F\n",
+ "C=C*10**-6 # in F\n",
+ "omega=1/(R*C) # in radians/second\n",
+ "f=omega/(2*pi) # in Hz\n",
+ "print \"Frequency of the oscillation of the circuit = %0.2f Hz\" %f"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Frequency of the oscillation of the circuit = 33.86 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 7.6 - Page No 236"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "R= 10 # in kohm\n",
+ "R=R*10**3 # in ohm\n",
+ "C= 100 # in pF\n",
+ "C=C*10**-12 # in F\n",
+ "f=1/(2*pi*R*C) # in Hz\n",
+ "print \"Frequency of the oscillation of the circuit = %0.2f kHz\" %(f*10**-3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Frequency of the oscillation of the circuit = 159.15 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 7.7 - Page No 238"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "fo= 318 # in Hz\n",
+ "C= 0.015 # in microF\n",
+ "C=C*10**-6 # in F\n",
+ "R=0.159/(fo*C) # in ohm\n",
+ "R=R*10**-3 # in kohm\n",
+ "R=int(R) \n",
+ "print \"Value of C1 = C2 = C3 = %0.3f micro F\" %(C*10**6)\n",
+ "print \"Value of R1 = R2 = R3 = %0.f in kohm\" %R"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of C1 = C2 = C3 = 0.015 micro F\n",
+ "Value of R1 = R2 = R3 = 33 in kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 7.8 - Page No 238"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "fo= 1.5 # in kHz\n",
+ "fo=fo*10**3 # in Hz\n",
+ "C= 0.01 # in microF\n",
+ "C=C*10**-6 # in F\n",
+ "R=0.159/(fo*C) # in ohm\n",
+ "R=R*10**-3 # in kohm\n",
+ "R=int(R) \n",
+ "print \"Value of C1 = C2 = C3 = %0.2f micro F\" %(C*10**6)\n",
+ "print \"Value of R1 = R2 = R3 = %0.f in kohm\" %R"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of C1 = C2 = C3 = 0.01 micro F\n",
+ "Value of R1 = R2 = R3 = 10 in kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 7.9 - Page No 245"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "C= 0.1 # in microF\n",
+ "C=C*10**-6 # in F\n",
+ "R=12 # in kohm\n",
+ "R=R*10**3 # in ohm\n",
+ "R1=120 # in kohm\n",
+ "R1=R1*10**3 # in ohm\n",
+ "Rf=1 # in Mohm\n",
+ "Rf=Rf*10**6 # in ohm\n",
+ "V_sat= 10 # in volt\n",
+ "# Part(i)\n",
+ "f=Rf/(4*R1*R*C) #in Hz\n",
+ "print \"(i) : Signal Frequency = %0.3f kHz\" %(f*10**-3)\n",
+ "\n",
+ "# Part(ii)\n",
+ "Vp_p= float(2*R1*V_sat)/Rf # in Vp_p\n",
+ "\n",
+ "print \"(ii) : Amplitude of the triangular wave = %0.1f Vp_p\" %Vp_p\n",
+ "\n",
+ "# Part(iii)\n",
+ "Vp_p= (V_sat)-(-V_sat) \n",
+ "print \"(iii) : Amplitude of the square wave = %0.f Vp_p\" %Vp_p"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i) : Signal Frequency = 1.736 kHz\n",
+ "(ii) : Amplitude of the triangular wave = 2.4 Vp_p\n",
+ "(iii) : Amplitude of the square wave = 20 Vp_p\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 7.11 - Page No 246"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "C1= 0.01 # in microF\n",
+ "C1=C1*10**-6 # in F\n",
+ "R1=120 # in kohm\n",
+ "R1=R1*10**3 # in ohm\n",
+ "R2=1.2 # in kohm\n",
+ "R2=R2*10**3 # in ohm\n",
+ "R3=6.8 # in kohm\n",
+ "R3=R3*10**3 # in ohm\n",
+ "V_sat= 15 # in volt\n",
+ "# Part(a)\n",
+ "Vp_p= 2*(R2/R3)*V_sat #in volt\n",
+ "print \"(a) : Peak to peak amplitude of triangular wave = %0.3f volt\" %Vp_p\n",
+ "\n",
+ "# Part(b)\n",
+ "fo= R3/(4*R1*C1*R2) #in Hz\n",
+ "print \"(b) : Frequency of triangular wave = %0.2f kHz\" %(fo*10**-3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) : Peak to peak amplitude of triangular wave = 5.294 volt\n",
+ "(b) : Frequency of triangular wave = 1.18 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 7.12 - Page No 249"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "# Given data\n",
+ "T= 100 # in micro sec\n",
+ "T=T*10**-6 #in se\n",
+ "V_sat= 12 # in volt\n",
+ "V1= 0.7 # in volt\n",
+ "V= 0.7 # in volt\n",
+ "V_D1= V \n",
+ "V_D2=V_D1 \n",
+ "C1= 0.1 # in microF\n",
+ "C1=C1*10**-6 # in F\n",
+ "Bita1= 0.1 \n",
+ "# Formula T= R3*C1*log((1+V1/V_sat)/(1-Bita1))\n",
+ "R3= T/(C1*log((1+V1/V_sat)/(1-Bita1))) # in ohm\n",
+ "print \"Value of R3 = %0.3f kohm (Standard value 6.8 kohm)\" %(R3*10**-3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of R3 = 6.171 kohm (Standard value 6.8 kohm)\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Linear_Integrated_Circuits_by_J._B._Gupta/chapter08.ipynb b/Linear_Integrated_Circuits_by_J._B._Gupta/chapter08.ipynb
new file mode 100644
index 00000000..00e88ef0
--- /dev/null
+++ b/Linear_Integrated_Circuits_by_J._B._Gupta/chapter08.ipynb
@@ -0,0 +1,654 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter-8 : Comparators And Converters"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 8.2 - Page No 256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "A= 92 # in dB\n",
+ "A= 10**(92.0/20) \n",
+ "V_CC= 15 # in volt\n",
+ "Vout= 30 # in volt\n",
+ "InputOffsetVoltage= 0 # in V\n",
+ "InputVoltage= Vout/A # in V\n",
+ "print \"Input Voltage = %0.4f mV\" %(InputVoltage*10**3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Input Voltage = 0.7536 mV\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 8.3 - Page No "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "R1= 2 # in kohm\n",
+ "Rf= 390.0 # in kohm\n",
+ "V_sat= 12 # in V\n",
+ "Bita= R1/(R1+Rf) \n",
+ "UTP= Bita*V_sat # in volt\n",
+ "LTP= -Bita*V_sat # in volt\n",
+ "print \"Value of UTP = %0.1f mv\" %(UTP*10**3)\n",
+ "print \"Value of LTP = %0.1f mv\" %(LTP*10**3)\n",
+ "\n",
+ "# Note : In the book, there is an error to convert the value of UTP from volts to milli volts."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of UTP = 61.2 mv\n",
+ "Value of LTP = -61.2 mv\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 8.5 - Page No 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "# Given data\n",
+ "t=0 \n",
+ "Vc=0 \n",
+ "Vo=5 #in volt\n",
+ "# V1= 2*R/(2*R+3*R)= 2/5*Vo\n",
+ "# Vco= 1/5*VR +4/5*Vo = 1/5*(VR+4*Vo)\n",
+ "# Req= R||4*R= 4/5*R\n",
+ "# Vct= Vco*(1-%e**(-t/(Req*C)))= 1/5*(VR+4*Vo)*(1-%e**(-t/(4*R*C/5)))= 1/5*(VR+4*Vo)*(1-%e**(-1.25*t/(R*C)))\n",
+ "# T= 2*Rf*C*log(1+2*R3/R2)= 2*R*C*log(7/3)= 1.7*R*C\n",
+ "# t= T/2= .85*R*C, Hence\n",
+ "Vct=2 #in volt\n",
+ "# Vct= 1/5*(VR+4*Vo)*(1-%e**1.0625)\n",
+ "VR= Vct*5/(1-exp(-1.0625))-4*Vo \n",
+ "print \"Value of VR = %0.2f volt\" %VR"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of VR = -4.72 volt\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 8.6 - Page No 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "from math import asin\n",
+ "# Given data\n",
+ "omega= 200*pi # in radians/seconds\n",
+ "f=omega/(2*pi) # in Hz\n",
+ "T=1/f # in sec\n",
+ "T=T*10**3 #in ms\n",
+ "Vin= 7 #in volt\n",
+ "t1= 1/omega*asin(6.0/Vin) # in sec\n",
+ "t1=t1*10**3 # in ms\n",
+ "# The output of the schmitt trigger is at -10 volt\n",
+ "t1= T/2+t1 # in ms\n",
+ "# The output of the schmitt trigger is at +10 volt\n",
+ "t2= 10-t1 # in ms\n",
+ "print \"The output of the schmitt trigger is at -10 volt = %0.2f ms\" %t1\n",
+ "print \"The output of the schmitt trigger is at +10 volt = %0.2f ms\" %t2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The output of the schmitt trigger is at -10 volt = 6.64 ms\n",
+ "The output of the schmitt trigger is at +10 volt = 3.36 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 8.7 - Page No 261"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "R1= 150 # in ohm\n",
+ "R2= 68.0 # in kohm\n",
+ "R2=R2*10**3 # in ohm\n",
+ "Vin= 500 # in mv\n",
+ "V_sat= 14 #in volt\n",
+ "V_pos= R1/(R1+R2)*V_sat # in volt\n",
+ "V_UT= V_pos #in volt\n",
+ "# In the same way when output is -14 volts and starts increasing in negative direcition \n",
+ "V_sat=-14 #in volt\n",
+ "V_pos= R1*V_sat/(R1+R2) # in volt\n",
+ "V_LT= abs(V_pos) #in volt\n",
+ "print \"Value of V_UT = %0.4f volts\" %V_UT\n",
+ "print \"Value of V_LT = %0.4f volts\" %V_LT"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of V_UT = 0.0308 volts\n",
+ "Value of V_LT = 0.0308 volts\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 8.8 - Page No 262"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "V_UT= 5 # in V\n",
+ "V_LT= -5 # in V\n",
+ "V_sat= 10 # in V (Assume)\n",
+ "# V_UT= (R1/(R1+R2))*V_sat = 5\n",
+ "# V_LT= (-R1/(R1+R2))*V_sat = -5\n",
+ "# 10*R1/(R+R2)= 5\n",
+ "V_hy= V_UT-V_LT # in volt\n",
+ "print \"Hysteresis voltage = %0.f volt\" %V_hy"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Hysteresis voltage = 10 volt\n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 8.9 - Page No 268"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "V_REF= 10 # in V\n",
+ "V_REF= float(V_REF) # converting into float\n",
+ "MSB2= V_REF/2 # in volt\n",
+ "print \"The second MSB weight = %0.f volt\" %MSB2\n",
+ "MSB3= V_REF/4 # in volt\n",
+ "print \"The third MSB weight = %0.1f volt\"%MSB3\n",
+ "MSB4= V_REF/8 # in volt\n",
+ "print \"The forth MSB (or LSB) weight = %0.2f volt\" %MSB4\n",
+ "DAC= MSB4 \n",
+ "print \"The resolution of the DAC = %0.2f volt\" %DAC\n",
+ "FullScaleOutput= V_REF+MSB2+MSB3+MSB4 #in volt\n",
+ "print \"Full scale output = %0.2f volt\" %FullScaleOutput\n",
+ "print \"IF Rf is reduced to one-forth then the value of full scale output =\" ,round(FullScaleOutput/4,4),\" volt\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The second MSB weight = 5 volt\n",
+ "The third MSB weight = 2.5 volt\n",
+ "The forth MSB (or LSB) weight = 1.25 volt\n",
+ "The resolution of the DAC = 1.25 volt\n",
+ "Full scale output = 18.75 volt\n",
+ "IF Rf is reduced to one-forth then the value of full scale output = 4.6875 volt\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 8.10 - Page No 268"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "V_REF= -5 # in V\n",
+ "V_B= 0 # in volt\n",
+ "V_A= -5 # in volt\n",
+ "V_A= float(V_A) # converting into float\n",
+ "V_C=V_A \n",
+ "V_D=V_C \n",
+ "Vout= -1*(V_A+V_B/2+V_C/4+V_D/8) # in volt\n",
+ "print \"Output voltage = %0.3f volt\" %Vout"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Output voltage = 6.875 volt\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 8.11 - Page No 269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "Dn=16 # in volt\n",
+ "Dn= float (Dn) #converting into float\n",
+ "MSB1= Dn/2 # in volt\n",
+ "print \"The first MSB output = %0.f volt\" %MSB1\n",
+ "MSB2= Dn/4 # in volt\n",
+ "print \"The second MSB output = %0.f volt\" %MSB2\n",
+ "MSB3= Dn/8 # in volt\n",
+ "print \"The third MSB output = %0.f volt\" %MSB3\n",
+ "MSB4= Dn/16 # in volt\n",
+ "print \"The forth MSB output = %0.f volt\" %MSB4\n",
+ "MSB5= Dn/32 # in volt\n",
+ "print \"The fifth MSB output = %0.1f volt\" %MSB5\n",
+ "MSB6= Dn/64 # in volt\n",
+ "print \"The sixth MSB (LSB) output = %0.2f volt\" %MSB6\n",
+ "resolution= MSB6 # in volt\n",
+ "print \"The resolution = %0.2f volt\" %resolution\n",
+ "fullScaleOutput= MSB1+MSB2+MSB3+MSB4+MSB5+MSB6 \n",
+ "print \"Full scale output occurs for digital input of 111111 = %0.2f volt\" %fullScaleOutput\n",
+ "# For digital input 101011\n",
+ "D0=16 \n",
+ "D1=16 \n",
+ "D2=0 \n",
+ "D3=16 \n",
+ "D4=0 \n",
+ "D5=16 \n",
+ "\n",
+ "Vout= float(D0*2**0 + D1*2**1 + D2*2**2 + D3*2**3 + D4*2**4 + D5*2**5)/2**6 # in volt\n",
+ "print \"The voltage output for a digital input of 101011 = %0.2f volt\" %Vout"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The first MSB output = 8 volt\n",
+ "The second MSB output = 4 volt\n",
+ "The third MSB output = 2 volt\n",
+ "The forth MSB output = 1 volt\n",
+ "The fifth MSB output = 0.5 volt\n",
+ "The sixth MSB (LSB) output = 0.25 volt\n",
+ "The resolution = 0.25 volt\n",
+ "Full scale output occurs for digital input of 111111 = 15.75 volt\n",
+ "The voltage output for a digital input of 101011 = 10.75 volt\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 8.12 - Page No 269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "# For the word 100100\n",
+ "N=6 # Number of bits\n",
+ "a5= 1 # Value of bits\n",
+ "a4= 0 # Value of bits\n",
+ "a3= 0 # Value of bits\n",
+ "a2= 1 # Value of bits\n",
+ "a1= 0 # Value of bits\n",
+ "a0= 0 # Value of bits\n",
+ "Vo= 3.6 # in volt\n",
+ "# Formula Vo= (2**(N-1)*a5 + 2**(N-2)*a4 + 2**(N-3)*a3 + 2**(N-4)*a2 + 2**(N-5)*a1 + 2**(N-6)*a0 ) * K\n",
+ "K= Vo/(2**(N-1)*a5 + 2**(N-2)*a4 + 2**(N-3)*a3 + 2**(N-4)*a2 + 2**(N-5)*a1 + 2**(N-6)*a0 ) \n",
+ "# For the word 110011\n",
+ "N=6 # Number of bits\n",
+ "a5= 1 # Value of bits\n",
+ "a4= 1 # Value of bits\n",
+ "a3= 0 # Value of bits\n",
+ "a2= 0 # Value of bits\n",
+ "a1= 1 # Value of bits\n",
+ "a0= 1 # Value of bits\n",
+ "Vo= (2**(N-1)*a5 + 2**(N-2)*a4 + 2**(N-3)*a3 + 2**(N-4)*a2 + 2**(N-5)*a1 + 2**(N-6)*a0 ) * K # in volt\n",
+ "print \"(i) : The value of Vo for the word 110011 = %0.1f volt\" %Vo\n",
+ "\n",
+ "# Part(ii)\n",
+ "# For the word 1010\n",
+ "N=4 # Number of bits\n",
+ "a3= 1 # Value of bits\n",
+ "a2= 0 # Value of bits\n",
+ "a1= 1 # Value of bits\n",
+ "a0= 0 # Value of bits\n",
+ "VR= 6 # in volt\n",
+ "Vo= float(VR)/2**N*( 2**(N-1)*a3 + 2**(N-2)*a2 + 2**(N-3)*a1 + 2**(N-4)*a0 ) \n",
+ "print \"(ii) : Value of output voltage = %0.2f volt\" %Vo"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i) : The value of Vo for the word 110011 = 5.1 volt\n",
+ "(ii) : Value of output voltage = 3.75 volt\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 8.13 - Page No 277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "R=100 # in kohm\n",
+ "R=R*10**3 # in ohm\n",
+ "C= 1 # in micro F\n",
+ "C=C*10**-6 # in F\n",
+ "V_REF= 5 # in volt\n",
+ "t=0.2 # time taken to read an unknown voltage in second\n",
+ "T=R*C # in second\n",
+ "Vx= T/t*V_REF # in volt\n",
+ "print \"Unknown voltage = %0.1f volt\" %Vx"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Unknown voltage = 2.5 volt\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 8.14 - Page No 277\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "f=75 # in MHz\n",
+ "f=f*10**6 # in Hz\n",
+ "# For an 8-bit converter reference voltage\n",
+ "V_REF= 100 # in volt\n",
+ "# For setting D7=1\n",
+ "Vo_7= V_REF*2**7/2**8 #in volt\n",
+ "# For setting D6=1\n",
+ "Vo_6= V_REF*2**6/2**8 #in volt\n",
+ "# For setting D7=1 and D6=1\n",
+ "Vo_76= Vo_7+Vo_6 #in volt\n",
+ "# For setting D5=1 D6=1 and D7=1\n",
+ "Vo_5= float(V_REF*2**5)/2**8+Vo_7+Vo_6 #in volt\n",
+ "print \"For setting D7=1 output voltage = %0.f volt\" %Vo_7\n",
+ "print \"For setting D6=1 output voltage = %0.f volt\" %Vo_6\n",
+ "print \"For setting D7=1 and D6=1 output voltage = %0.f volt\" %Vo_76\n",
+ "print \"For setting D5=1, D6=1 and D7=1 output voltage = %0.1f volt\" %Vo_5\n",
+ "T=float(1.0/f) # in sec\n",
+ "print \"Conversion time = %0.1f ns\" %(T*10**9)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For setting D7=1 output voltage = 50 volt\n",
+ "For setting D6=1 output voltage = 25 volt\n",
+ "For setting D7=1 and D6=1 output voltage = 75 volt\n",
+ "For setting D5=1, D6=1 and D7=1 output voltage = 87.5 volt\n",
+ "Conversion time = 13.3 ns\n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 8.15 - Page No 277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "f=1 # in MHz\n",
+ "f=f*10**6 # in Hz\n",
+ "f= float(f) # converting into float\n",
+ "T=1/f # conversion time in sec\n",
+ "N=8 # number of bits\n",
+ "tc= N*T # in sec\n",
+ "print \"Time of Conversion = %0.f micro sec : \" %(tc*10**6)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Time of Conversion = 8 micro sec : \n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 8.16 - Page No 277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "Vin= 2 #in volt\n",
+ "Vout= 10 #in volt\n",
+ "R=100 # in kohm\n",
+ "R=R*10**3 #in ohm\n",
+ "C=0.1 # in micro F\n",
+ "C=C*10**-6 #in F\n",
+ "# Formula Vout = -1/(R*C)*integrate('Vin','t',0,t) = -Vin*t/(R*C)\n",
+ "t= Vout*R*C/Vin # in sec\n",
+ "print \"Maximum time upto which the reference voltage can be integrated,\"\n",
+ "print \"t =\",round(t,2),\"second =\",int(round(t*10**3)),\"ms\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum time upto which the reference voltage can be integrated,\n",
+ "t = 0.05 second = 50 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 69
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 8.17 - Page No 280"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "C=0.1 # in nF\n",
+ "C=C*10**-9 #in F\n",
+ "V=5 #in V\n",
+ "t=1 # in micro S\n",
+ "t=t*10**-6 # in sec\n",
+ "# v= V*(1-%e**(-t/(R*C)))\n",
+ "# Since hold value does not drop by more than 0.5% or by 0.005 V, hold value is 0.995 V, Thus\n",
+ "# 0.995*V= V*(1-%e**(-t/(R*C)))\n",
+ "# or %e**(-t/(R*C))= 1-0.995 = 0.005\n",
+ "R= t/(C*math.log(1/0.005)) # in ohm\n",
+ "I= V/R*(1-exp(-t/(R*C))) # Maximum currnet through R in amphere\n",
+ "print \"Maximum permissible leakage current through the hold capacitor = %0.3f mA\" %(I*10**3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum permissible leakage current through the hold capacitor = 2.636 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Linear_Integrated_Circuits_by_J._B._Gupta/chapter09.ipynb b/Linear_Integrated_Circuits_by_J._B._Gupta/chapter09.ipynb
new file mode 100644
index 00000000..6159910d
--- /dev/null
+++ b/Linear_Integrated_Circuits_by_J._B._Gupta/chapter09.ipynb
@@ -0,0 +1,348 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter-9 : The 555 IC Timer"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 9.1 - Page No 295"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "C=.01 # in micro F\n",
+ "C=C*10**-6 # in F\n",
+ "R_A= 2 # in kohm\n",
+ "R_A=R_A*10**3 # in ohm\n",
+ "R_B= 100 # in kohm\n",
+ "R_B=R_B*10**3 # in ohm\n",
+ "T_High= 0.693*(R_A+R_B)*C # in seconds\n",
+ "T_Low= 0.693*R_B*C # in seconds\n",
+ "T=T_High+T_Low # in seconds\n",
+ "f=1/T # in Hz\n",
+ "print \"Frequency of oscillations = %0.1f Hz\" %f\n",
+ "DutyCycle= T_High/T*100 # in percent\n",
+ "print \"Duty cycle = %0.1f %%\" %DutyCycle "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Frequency of oscillations = 714.4 Hz\n",
+ "Duty cycle = 50.5 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 9.2 - Page No 295\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "C=1 # in micro F\n",
+ "C=C*10**-6 # in F\n",
+ "C1=0.01 # in micro F\n",
+ "C1=C1*10**-6 # in F\n",
+ "R_A=4.7 # in kohm\n",
+ "R_B=1 # in kohm\n",
+ "R_A=R_A*10**3 # in ohm\n",
+ "R_B=R_B*10**3 # in ohm\n",
+ "T_on= 0.693*(R_A+R_B)*C # in seconds\n",
+ "T_on=T_on*10**3 # in ms\n",
+ "print \"Positive pulse width = %0.2f mili seconds\" %T_on\n",
+ "T_off= 0.693*R_B*C # in seconds\n",
+ "T_off=T_off*10**3 # in ms\n",
+ "print \"Negative pulse width = %0.3f mili seconds\" %T_off\n",
+ "f=1.4/((R_A+2*R_B)*C) # in Hz\n",
+ "print \"Free running Frequency = %0.f Hz\" %f\n",
+ "DutyCycle= (R_A+R_B)/(R_A+2*R_B)*100# in percent\n",
+ "print \"Duty cycle = %0.f %%\" %DutyCycle"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Positive pulse width = 3.95 mili seconds\n",
+ "Negative pulse width = 0.693 mili seconds\n",
+ "Free running Frequency = 209 Hz\n",
+ "Duty cycle = 85 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 9.3 - Page No 296\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "C=0.01 # in micro F\n",
+ "C=C*10**-6 # in F\n",
+ "f=1 # in kHz\n",
+ "f=f*10**3 # in Hz\n",
+ "# R_A= R_B\n",
+ "# T_on = T_off = T/2\n",
+ "# Frequency is given by equation f= 1.44/((R_A+R_B)*C)\n",
+ "R_A= 1.44/(2*f*C) # in ohm\n",
+ "R_A=R_A*10**-3 # in k ohm\n",
+ "R_B= R_A \n",
+ "\n",
+ "print \"The value of required resistors =\",int(round(R_A)),\"k ohm (68 ohm standart value)\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of required resistors = 72 k ohm (68 ohm standart value)\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 9.4 - Page No 296\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "f=700 # in Hz\n",
+ "# R_A= R_B\n",
+ "# T_on = T_off = T/2\n",
+ "# Frequency is given by equation f= 1.44/((R_A+R_B)*C)\n",
+ "C=0.01 # in micro F (assumed value)\n",
+ "C=C*10**-6 # in F\n",
+ "R_A= 1.44/(2*f*C) # in ohm\n",
+ "R_A=R_A*10**-3 # in k ohm\n",
+ "R_A=int(round(R_A) )\n",
+ "R_B= R_A \n",
+ "print \"The value of required resistors =\",(R_A),\"k ohm (100 ohm standart value)\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of required resistors = 103 k ohm (100 ohm standart value)\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 9.5 - Page No 296\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "f=800 # in Hz\n",
+ "D=60 # in percent\n",
+ "# Formula D= (R_A+R_B)/(R_A+2*R_B)*100 = 60\n",
+ "# R_A + R_B = 0.6*R_A + 1.2*R_B\n",
+ "# R_B= 2*R_A\n",
+ "C=0.01 # in micro F (assumed value)\n",
+ "C=C*10**-6 # in F\n",
+ "# Frequency is given by equation f= 1.44/((R_A+R_B)*C)\n",
+ "R_A= 1.44/(5*C*f) # in ohm\n",
+ "R_A=R_A*10**-3 # in kohm\n",
+ "R_B=2*R_A # in kohm\n",
+ "print \"The value of C = %0.2f micro F\" %(C*10**6)\n",
+ "print \"The value of R_A = %0.f kohm\" %R_A\n",
+ "print \"The value of R_B = %0.f kohm\" %R_B\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C = 0.01 micro F\n",
+ "The value of R_A = 36 kohm\n",
+ "The value of R_B = 72 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 9.6 - Page No 297\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "C=.05 # in micro F\n",
+ "C=C*10**-6 # in F\n",
+ "R= 12 # in kohm\n",
+ "R=R*10**3 # in ohm\n",
+ "V_CC= 5 # in volt\n",
+ "V_BE= 0.7 # in volt\n",
+ "V_D1= V_BE # in volt\n",
+ "I_C= (V_CC-V_BE)/R # in A\n",
+ "f_o= (3*I_C)/(V_CC*C) # in Hz\n",
+ "f_o=f_o*10**-3 # in kHz\n",
+ "print \"Frequency of free running ramp generator circuit = %0.1f kHz\" %f_o"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Frequency of free running ramp generator circuit = 4.3 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 9.7 - Page No 300\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "C=.1 # in micro F\n",
+ "C=C*10**-6 # in F\n",
+ "R_A= 20 # in kohm\n",
+ "R_A=R_A*10**3 # in ohm\n",
+ "PulseWidth= 1.1*R_A*C # in seconds\n",
+ "print \"The output pulse width = %0.1f mili seconds\" %(PulseWidth*10**3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The output pulse width = 2.2 mili seconds\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 9.9 - Page No 300\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "# Given data\n",
+ "C=.02 # in micro F\n",
+ "C=C*10**-6 # in F\n",
+ "f=2 # frequency of the outpur trigger in kHz\n",
+ "f=f*10**3 # in Hz\n",
+ "T=1/f # in seconds\n",
+ "# In a divide-by-5 circuit , n=5, so the pulse width, t_p= [0.2 + (n-1)]*T = [0.2 + (5-1)]*T = 4.2*T\n",
+ "t_p=4.2*T # in soconds\n",
+ "# Formula t_p = 1.1*R_A*C\n",
+ "R_A= t_p/(1.1*C) # in ohm\n",
+ "R_A=R_A*10**-3 # in kohm\n",
+ "print \"The value of R_A = %0.2f k ohm (Standard value 100 kohm)\" %R_A"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R_A = 95.45 k ohm (Standard value 100 kohm)\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Linear_Integrated_Circuits_by_J._B._Gupta/chapter10.ipynb b/Linear_Integrated_Circuits_by_J._B._Gupta/chapter10.ipynb
new file mode 100644
index 00000000..0aaf0dd3
--- /dev/null
+++ b/Linear_Integrated_Circuits_by_J._B._Gupta/chapter10.ipynb
@@ -0,0 +1,71 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter-10 : Phase-Locked Loops (PLL)"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 10.1 - Page No 310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt\n",
+ "from numpy import pi\n",
+ "from fractions import Fraction \n",
+ "# Given data\n",
+ "V_pos= 12 # in volt\n",
+ "V_Neg= -12 # in volt\n",
+ "V=V_pos-V_Neg \n",
+ "R1=15 # in k ohm\n",
+ "R1=R1*10**3 # in ohm\n",
+ "C1=0.01 # in micro F\n",
+ "C1=C1*10**-6 # in F\n",
+ "C2=10 # in micro F\n",
+ "C2=C2*10**-6 # in F\n",
+ "# (i)\n",
+ "f_out= 1.2/(4*R1*C1) # in Hz\n",
+ "print \"Free running frequency = %0.f kHz\" %(f_out*10**-3)\n",
+ "# (ii)\n",
+ "f_L= (8*f_out)/V # in Hz\n",
+ "print \"Lock range = \u00b1\" ,Fraction(f_L*10**-3).limit_denominator(100),\"kHz\"\n",
+ "f_C= sqrt(f_L/(2*pi*3.6*10**3*C2)) # in Hz\n",
+ "print \"Capture range =\u00b1 %0.2f Hz\" %f_C"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Free running frequency = 2 kHz\n",
+ "Lock range = \u00b1 2/3 kHz\n",
+ "Capture range =\u00b1 54.29 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Linear_Integrated_Circuits_by_J._B._Gupta/chapter11.ipynb b/Linear_Integrated_Circuits_by_J._B._Gupta/chapter11.ipynb
new file mode 100644
index 00000000..9008b311
--- /dev/null
+++ b/Linear_Integrated_Circuits_by_J._B._Gupta/chapter11.ipynb
@@ -0,0 +1,247 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter- 11 : Voltage Regulators"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 11.1 - Page No 337\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt\n",
+ "# Given data\n",
+ "I_dc=300 # in mA\n",
+ "C=200 # in micro F\n",
+ "V_max= 24 # in volt\n",
+ "V_r_rms= 2.4*I_dc/C # in volt\n",
+ "V_r_peak= sqrt(3)*V_r_rms # in volt\n",
+ "V_dc= V_max-V_r_peak # in volt\n",
+ "V_in_low= V_max-V_r_peak # in volt\n",
+ "print \"Minimum input voltage = %0.2f volt\" %V_in_low"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum input voltage = 17.76 volt\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 11.2 - Page No 337\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "I_L= 0.5 # in amp\n",
+ "R_L=25 # in ohm\n",
+ "V_R=12 # in volt (since using 7812 voltage regulator)\n",
+ "V_L= I_L*R_L \n",
+ "R=V_R/I_L # in ohm\n",
+ "print \"Resistance required = %0.f ohm\" %R\n",
+ "V_out= V_R+V_L # in volt\n",
+ "print \"Output voltage = %0.1f volt\" %V_out\n",
+ "V_in= V_out+2 # in volt\n",
+ "print \"Input voltage = %0.1f volt\" %V_in"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resistance required = 24 ohm\n",
+ "Output voltage = 24.5 volt\n",
+ "Input voltage = 26.5 volt\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 11.3 - Page No 337\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "R1= 240 # in ohm\n",
+ "R2= 1.2 # in kohm\n",
+ "R2=R2*10**3 # in ohm\n",
+ "V_out= 1.25*(1+R2/R1) # in volt\n",
+ "print \"Regulated output voltage = %0.1f volt\" %V_out"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Regulated output voltage = 7.5 volt\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 11.4 - Page No 337\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "R1= 40 # in ohm\n",
+ "I_Q= 10 # in mA\n",
+ "I_Q=I_Q*10**-3 # in amp\n",
+ "V_REF= 15 # in volt\n",
+ "# When R2 is set at minimum i.e.\n",
+ "R2= 0 # in ohm\n",
+ "V_out= (1+R2/R1)*V_REF + I_Q*R2 # in volt\n",
+ "print \"Minimum output voltage = %0.f volt\" %V_out\n",
+ "# When R2 is set at maximum i.e.\n",
+ "R2= 200 # in ohm\n",
+ "V_out= (1+R2/R1)*V_REF + I_Q*R2 # in volt\n",
+ "print \"Minimum output voltage = %0.f volt\" %V_out"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum output voltage = 15 volt\n",
+ "Minimum output voltage = 92 volt\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 11.5 - Page No 350\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "R1= 2.5 # in kohm\n",
+ "R1= R1*10**3 # in ohm\n",
+ "R2= 1 # in kohm\n",
+ "R2= R2*10**3 # in ohm\n",
+ "V_REF= 1.25 # in volt\n",
+ "I= V_REF/R2 # in amp\n",
+ "# This current also flows through R1. So the output voltage\n",
+ "V_out= I*(R1+R2) # in volt\n",
+ "print \"Output voltage = %0.3f volt\" %V_out"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Output voltage = 4.375 volt\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 11.6 - Page No 350\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "R1= 3 # in kohm\n",
+ "R1= R1*10**3 # in ohm\n",
+ "R2= 1 # in kohm\n",
+ "R2= R2*10**3 # in ohm\n",
+ "V_REF= 1.25 # in volt\n",
+ "V_in=20 # in volt\n",
+ "V_out= V_REF*(R1+R2)/R2 # in volt\n",
+ "D=V_out/V_in*100 # in percent\n",
+ "print \"Duty cycle = %0.f %%\" %D"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Duty cycle = 25 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Linear_Integrated_Circuits_by_J._B._Gupta/screenshots/Closed_Loop_Gain.png b/Linear_Integrated_Circuits_by_J._B._Gupta/screenshots/Closed_Loop_Gain.png
new file mode 100644
index 00000000..c66ac130
--- /dev/null
+++ b/Linear_Integrated_Circuits_by_J._B._Gupta/screenshots/Closed_Loop_Gain.png
Binary files differ
diff --git a/Linear_Integrated_Circuits_by_J._B._Gupta/screenshots/per_error.png b/Linear_Integrated_Circuits_by_J._B._Gupta/screenshots/per_error.png
new file mode 100644
index 00000000..0967671c
--- /dev/null
+++ b/Linear_Integrated_Circuits_by_J._B._Gupta/screenshots/per_error.png
Binary files differ
diff --git a/Linear_Integrated_Circuits_by_J._B._Gupta/screenshots/waveform.png b/Linear_Integrated_Circuits_by_J._B._Gupta/screenshots/waveform.png
new file mode 100644
index 00000000..37ace619
--- /dev/null
+++ b/Linear_Integrated_Circuits_by_J._B._Gupta/screenshots/waveform.png
Binary files differ