diff options
Diffstat (limited to 'Linear_Integrated_Circuits')
-rwxr-xr-x | Linear_Integrated_Circuits/Chapter10.ipynb | 305 | ||||
-rwxr-xr-x | Linear_Integrated_Circuits/Chapter2.ipynb | 946 | ||||
-rwxr-xr-x | Linear_Integrated_Circuits/Chapter3.ipynb | 306 | ||||
-rwxr-xr-x | Linear_Integrated_Circuits/Chapter4.ipynb | 283 | ||||
-rwxr-xr-x | Linear_Integrated_Circuits/Chapter5.ipynb | 215 | ||||
-rwxr-xr-x | Linear_Integrated_Circuits/Chapter6.ipynb | 147 | ||||
-rwxr-xr-x | Linear_Integrated_Circuits/Chapter7.ipynb | 448 | ||||
-rwxr-xr-x | Linear_Integrated_Circuits/Chapter8.ipynb | 125 | ||||
-rwxr-xr-x | Linear_Integrated_Circuits/README.txt | 18 | ||||
-rwxr-xr-x | Linear_Integrated_Circuits/screenshots/design_of_voltage_regulator.png | bin | 0 -> 165551 bytes | |||
-rwxr-xr-x | Linear_Integrated_Circuits/screenshots/filter_design.png | bin | 0 -> 111612 bytes | |||
-rwxr-xr-x | Linear_Integrated_Circuits/screenshots/op-amp_differentator_design.png | bin | 0 -> 133374 bytes |
12 files changed, 2784 insertions, 9 deletions
diff --git a/Linear_Integrated_Circuits/Chapter10.ipynb b/Linear_Integrated_Circuits/Chapter10.ipynb new file mode 100755 index 00000000..db7e9c1b --- /dev/null +++ b/Linear_Integrated_Circuits/Chapter10.ipynb @@ -0,0 +1,305 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 10 : D-A and A-D Converters" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 10.1 Page No.357" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given Data \n", + "\n", + "n = 9\n", + "s = 10.3*10**-3\n", + "a = '0b101101111'\n", + "\n", + "# Solution \n", + "# Converting the given value into its equivalent decimal value\n", + "x = int(a,2)\n", + "#multiplying with the resolution to get the output\n", + "\n", + "V = round(x*s,2)\n", + "\n", + "print \"The output value will be =\",V,\"V\" \n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The output value will be = 3.78 V\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 10.2 Page No.357" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from fractions import Fraction \n", + "# Given data \n", + "\n", + "n = 8\n", + "v = 10.0\n", + "\n", + "# Solution \n", + "LSB = 1.0/2**n\n", + "Vlsb =v/2**n\n", + "MSB = v/2\n", + "Vo = v - Vlsb\n", + "\n", + "# Dispalying the output\n", + "\n", + "print \"The value of LSB = \",Fraction(LSB).limit_denominator(256)\n", + "print \"The voltage of LSB = \",int(Vlsb*10**3),\"mV\"\n", + "print \"The MSB = \",int(MSB)\n", + "print \"The value of full scale output is = \",round(Vo,3),\"V\"\n", + " \n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of LSB = 1/256\n", + "The voltage of LSB = 39 mV\n", + "The MSB = 5\n", + "The value of full scale output is = 9.961 V\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 10.3 Page No.357" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import numpy as np\n", + "V = 10.0 # Range of the DAC is 0 -10 voltage \n", + "\n", + "# define a function for performing the DAC action\n", + "\n", + "def DAC(Vo):\n", + " j = 1\n", + " sum = 0.0\n", + " x = len(Vo)\n", + " for i in range(x):\n", + " sum = sum + ((Vo[i])*(0.5**j))\n", + " j += 1\n", + " \n", + " return (V*sum)\n", + "# part 1 \n", + "Vo1 = np.array([1, 0])\n", + "# part 2\n", + "Vo2 = np.array([0, 1, 1, 0])\n", + "#part 3\n", + "Vo3 = np.array([1, 0, 1, 1, 1, 1, 0, 0])\n", + "\n", + "# Finding the solution for all 3 parts and printing the outputs \n", + "\n", + "print \" The output for part 1\",int(DAC(Vo1)),\"V\"\n", + "print \" The output for part 2\",(DAC(Vo2)),\"V\"\n", + "print \" The output for part 3\",round(DAC(Vo3),2),\"V\"\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The output for part 1 5 V\n", + " The output for part 2 3.75 V\n", + " The output for part 3 7.34 V\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 10.4 Page No.365" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Given data \n", + "n = 16 \n", + "Clockrate = 4*10**6\n", + "V = 10.0\n", + "c = 0.1*10**-6\n", + "va = -8.0\n", + "\n", + "# Solution \n", + "\n", + "t21 = (2.0**n)/(Clockrate)\n", + "R = ((-V/va)*t21)/c\n", + "\n", + "print \"The value of (t2-t1) =\",round(t21*10**3,2),\"ms\"\n", + "print \"The value of Resistor R =\",int(round(R*10**-3)),\"kilo Ohms\"\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of (t2-t1) = 16.38 ms\n", + "The value of Resistor R = 205 kilo Ohms\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 10.5 Page No.365" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data \n", + "\n", + "Va = 4.129\n", + "n = 16\n", + "Vr = 8\n", + "\n", + "# Solution \n", + "\n", + "N = int(round((2**n)*(Va/Vr)))\n", + "out = bin(N) # Converting the voltage value into its binary equivalent\n", + "\n", + "print \"The binary equivalent is = \",out\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The binary equivalent is = 0b1000010000100001\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 10.6 Page No.368" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data \n", + "\n", + "d = 3.5 \n", + "print \"The last 3 digit can be\",000,\"To\",(10**int(d))-1\n", + "print \"Hense the 3 1/2 digit DVM reading varies from\",0000,\"to\",\"1\"+str((10**int(d))-1)\n", + "# Reference voltage is 2V\n", + "Vref = 2.0\n", + "# Resolution R \n", + "\n", + "R = Vref/2000\n", + "print \"The resolution of a 3 1/2 digit DVM is =\",int(R*10**3),\"mV\"\n", + "\n", + "# Similarly for 4 1/2 digit DVM\n", + "\n", + "R1 = Vref/20000\n", + "\n", + "print \"Thus resolution of a 4 1/2 digit DVM is =\",R1*10**3,\"mV\"\n", + "\n", + "print \"So the resolution of 4 1/2 digit DVM is better than 3 1/2 digit DVM\"\n", + " \n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The last 3 digit can be 0 To 999\n", + "Hense the 3 1/2 digit DVM reading varies from 0 to 1999\n", + "The resolution of a 3 1/2 digit DVM is = 1 mV\n", + "Thus resolution of a 4 1/2 digit DVM is = 0.1 mV\n", + "So the resolution of 4 1/2 digit DVM is better than 3 1/2 digit DVM\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Linear_Integrated_Circuits/Chapter2.ipynb b/Linear_Integrated_Circuits/Chapter2.ipynb new file mode 100755 index 00000000..011589fa --- /dev/null +++ b/Linear_Integrated_Circuits/Chapter2.ipynb @@ -0,0 +1,946 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 2 : Operational Amplifier" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.1 Page No.44" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given Data\n", + "\n", + "R1 = 5*10**3\n", + "Rf = 20*10**3\n", + "vi = 1 \n", + "RL = 5*10**3\n", + "\n", + "# calculating the values \n", + "vo = float((1+(Rf/R1))*vi) \n", + "ACL = int(vo/vi)\n", + "iL = int((vo/RL)*10**3)\n", + "i1 = float(((vo - vi)/Rf))*(10**3)\n", + "io = iL+i1\n", + " \n", + " \n", + "# printing the values\n", + "print \"Output voltage vo = \",vo,\"V\"\n", + "print \"Gain ACL = \",ACL\n", + "print \"Load current iL = \",iL,\"mA\"\n", + "print \"The value of i1 = \",i1,\"mA\"\n", + "print \"Output current io = \", io,\"mA\"\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Output voltage vo = 5.0 V\n", + "Gain ACL = 5\n", + "Load current iL = 1 mA\n", + "The value of i1 = 0.2 mA\n", + "Output current io = 1.2 mA\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.2 Page No.44" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "\n", + "R1 = 10*10**3 #R1 input resistance \n", + "Rf = 100*10**3 # Rf feedback resistance\n", + "vi = float(1) #input voltage \n", + "RL = 25*10**3\n", + "#calculating the values \n", + "\n", + "i1 = float((vi/R1)*10**3) # input resistace id the ratio of input voltage to the input resitance \n", + "vo = float(-(Rf/R1)*vi) # finding the output voltage \n", + "iL = float((abs(vo)/RL)*10**3) # calculating the load current \n", + "io = float((i1+iL)) # calculating the output current which is equal to the sum of input current and load current\n", + "\n", + "#printing the values \n", + "\n", + "print \"The input current i1 =\",i1,\"mA\"\n", + "print \"The output voltage vo =\",vo,\"V\"\n", + "print \"The load current iL =\",iL,\"mA\"\n", + "print \"The output current io =\",io,\"mA\"\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The input current i1 = 0.1 mA\n", + "The output voltage vo = -10.0 V\n", + "The load current iL = 0.4 mA\n", + "The output current io = 0.5 mA\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.3 Page No.49" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "\n", + "ACL = 5 # Gain of the amplifier\n", + "R1 = 10*10**3 # input resisitance in ohms \n", + "\n", + "# calculations\n", + "\n", + "Rf = (5-1) * R1 # calculating the resistance of feedback resistor \n", + "\n", + "# printing the values \n", + "\n", + "print \"The value of feedback resistor = \", (Rf/10**3),\"KiloOhms\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of feedback resistor = 40 KiloOhms\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.4 Page No.49" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Given Data\n", + "\n", + "R1 = 5*10**3\n", + "Rf = 20*10**3\n", + "vi = 1 \n", + "RL = 5*10**3\n", + "\n", + "# calculating the values \n", + "vo = float((1+(Rf/R1))*vi) \n", + "ACL = int(vo/vi)\n", + "iL = int((vo/RL)*10**3)\n", + "i1 = float(((vo - vi)/Rf))*(10**3)\n", + "io = iL+i1\n", + " \n", + " \n", + "# printing the values\n", + "print \"Output voltage vo = \",vo,\"V\"\n", + "print \"Gain ACL = \",ACL\n", + "print \"Load current iL = \",iL,\"mA\"\n", + "print \"The value of i1 = \",i1,\"mA\"\n", + "print \"Output current io = \", io,\"mA\"\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Output voltage vo = 5.0 V\n", + "Gain ACL = 5\n", + "Load current iL = 1 mA\n", + "The value of i1 = 0.2 mA\n", + "Output current io = 1.2 mA\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.6 Page No.61" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Given Data\n", + "from decimal import Decimal, ROUND_HALF_UP\n", + "import math\n", + "Beta = 200\n", + "ICQ = 100*10**-6\n", + "ADM = 100\n", + "CMRR = 80\n", + "\n", + "# finding the solution \n", + "# for VT =25 milli volt \n", + "VT = 25*10**-3\n", + "gm = float(ICQ/VT)\n", + "Rc = (ADM/gm) \n", + "CMRR = 10**(80/20) # log inverse is equal to powers of 10\n", + "RE = float((CMRR-1)/gm)\n", + "x = Decimal((RE/10**6))\n", + "\n", + "# printing the values \n", + "\n", + "print \" The value of gm =\",int(math.ceil((gm*10**3))),\"mMho\" #converting the answer into milli Mho\n", + "print \" The value of Rc =\",int((Rc/10**3)),\"kiloOhm\" #converting the answer into Kilo Ohm\n", + "print \" The value of RE =\", x.quantize(Decimal('2.5')),\"MegaOhm\" #converting the answer into MegaOhm" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The value of gm = 4 mMho\n", + " The value of Rc = 25 kiloOhm\n", + " The value of RE = 2.5 MegaOhm\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.7 Page No.61" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math \n", + "# Given Data\n", + "RC = 2*10**3\n", + "RE = 4.3*10**3\n", + "VCC = VEE = 5\n", + "beta0 = 200\n", + "VBE = 0.7\n", + "VT = 25*10**-3 # VT = 25 mV \n", + "\n", + "#calculations \n", + "\n", + "Ibq = (((VEE - VBE)/(2*(1+beta0)*RE)))*10**6 # converting the into mA\n", + "IBQ = int(Ibq*10)/10.0 # rounding the answer 2.48 to 2.4\n", + "ICQ = beta0 * IBQ*10**-3 # finding ICQ and convert it into milli Ambere\n", + "V01 = V02 = VCC - (RC * ICQ*10**-3)\n", + "VCEQ = V01 + VBE\n", + "gm = ICQ / VT # Finding the gm value in milli Mho\n", + "rpi = float(beta0/gm) # finding rpi interms of KiloOhms \n", + "ADM = -(gm*RC)/10**3 # Calculating the gain \n", + "ACM = float((-beta0*RC)/(rpi*10**3 + (2*beta0) * RE)) # Calulating the value of ACM and coverting it into a float \n", + "CMRR = float(round(ADM,2)/round(ACM,2)) # rounding ACM and ADM to 2 digits after decimals and taking the\n", + " #ratio\n", + "CMRRdb = float(20*math.log10(round(CMRR,1))) # Find the CMRR in dB using equation 20*log(CMRR)\n", + "\n", + "# Printing all values \n", + "\n", + "print \"The IBQ =\",IBQ,\"uA\"\n", + "print \"The ICQ =\",ICQ,\"mA\"\n", + "print \"The V01 =\",V01,\"mV\"\n", + "print \"The VCEQ =\",VCEQ,\"V\"\n", + "print \"The gm =\",gm,\"m Mho\"\n", + "print \"The rpi =\",round(rpi,1),\"kilo Ohm\"\n", + "print \"The ADM =\",round(ADM,2)\n", + "print \"The ACM =\",round(ACM,2)\n", + "print \"The CMRR =\",round(CMRR,1)\n", + "print \"The CMRR in dB =\",int(CMRRdb*10)/10.0,\"dB\"\n", + " " + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The IBQ = 2.4 uA\n", + "The ICQ = 0.48 mA\n", + "The V01 = 4.04 mV\n", + "The VCEQ = 4.74 V\n", + "The gm = 19.2 m Mho\n", + "The rpi = 10.4 kilo Ohm\n", + "The ADM = -38.4\n", + "The ACM = -0.23\n", + "The CMRR = 167.0\n", + "The CMRR in dB = 44.4 dB\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.8 Page No.62" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# v1 = 15*sin*2*pi(60)t + 5*sin*2*pi(1000)t mV\n", + "# v1 = 15*sin*2*pi(60)t - 5*sin*2*pi(1000)t mV\n", + "\n", + "# Given data \n", + "\n", + "gm = 4*10**-3\n", + "RC = 125*10*3\n", + "RE = 1.25*10**3\n", + "beta0 = 200\n", + "\n", + "# calculating the values\n", + "\n", + "rpi = beta0/gm # value is in ohms \n", + "ADM =-500 # Given Value\n", + "ACM = -((200*RC)/(402*RE)+rpi)*10**-6\n", + "print \"ACM is =\",round(ACM,2)\n", + "\n", + "# derivation part is as follows \n", + "# VDM = (v1 - v2)/2 = 5*sin*2*pi(1000)*t\n", + "# VCM = (v1 - v2)/2 = 15*sin*2*pi(60)*t\n", + "# VO1 = ADM*VDM + ACM*VCM\n", + "# VO2 = ADM*VDM - ACM*VCM\n", + "# V01 = -2500*sin*2*pi(1000)t - 0.75*sin*2*pi(60)t mV\n", + "# V01 = 2500*sin*2*pi(1000)t - 0.75*sin*2*pi(60)t mV" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "ACM is = -0.05\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.9 Page No.63" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "from fractions import Fraction \n", + "# Given data\n", + "\n", + "beta0 = 100\n", + "IQ = 5*10**-4\n", + "RC = 10*10**3\n", + "RE = 150\n", + "VT = 25*10**-3 \n", + "\n", + "# calculations \n", + "\n", + "ICQ = float(IQ/2)\n", + "gm = float(ICQ / VT)\n", + "rpi = beta0/gm\n", + "# calculaing the gain in Differential mode\n", + "ADM = ((0.5)*(beta0*RC))/(rpi+((1+beta0)*RE))\n", + "# To get the differentila mode gain multiply the value by 2\n", + "ADM2 = (ADM*2)\n", + "\n", + "# print the values \n", + "\n", + "print \"ICQ value is =\",ICQ*10**3,\"mA\"\n", + "print \"gm value is =\",Fraction(gm).limit_denominator(100),\"Mho\" \n", + "print \"rpi value is =\",int(rpi/10**3),\"kilo Ohm\"\n", + "print \"THe gain is =\",int(math.ceil(ADM2)),\"V/V\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "ICQ value is = 0.25 mA\n", + "gm value is = 1/100 Mho\n", + "rpi value is = 10 kilo Ohm\n", + "THe gain is = 40 V/V\n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.10 Page No.67" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given Data \n", + "VCC = 10.0 # initializing as floats \n", + "beta = 125.0\n", + "VBE = 0.7\n", + "\n", + "# calculations \n", + "# Define a function for calculating the value of R1 according to the equation given in 2.67\n", + "def R1(I):\n", + " R1 = (beta/(2+beta))*((VCC-VBE)/I) \n", + " return (R1/1000)\n", + "# Cosisdering Ic = 1mA\n", + "print \"The value of R1 when I is 1 mA = \",round(R1(10**-3),2),\"Kilo Ohm\" # calling the function R1 with arguiment as current value 1 mA\n", + "print \"The value of R1 when I is 10 uA = \",int(round(R1(10*10**-6),0)),\"Kilo Ohm\" # calling the function R1 with arguiment as current value 10 uA" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of R1 when I is 1 mA = 9.15 Kilo Ohm\n", + "The value of R1 when I is 10 uA = 915 Kilo Ohm\n" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.11 Page No.69" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "import math\n", + "I0 = 10*10**-6\n", + "VCC =10\n", + "VBE = 0.7\n", + "beta = 125\n", + "VT = 25*10**-3\n", + "\n", + "# Solution of the problem is \n", + "Iref = 10**-3 # Assumption\n", + "\n", + "R1 = (VCC - VBE)/Iref\n", + "# Finding the value RE from the equation 2.74\n", + "RE = (VT/(1+(1/beta)*I0))*math.log(Iref/I0)\n", + "\n", + "# printing the values \n", + "\n", + "print \"The value of R1 =\",R1/10**3,\"Kilo Ohms\"\n", + "print \"The value of RE =\",round(RE*100,1),\"Kilo Ohms\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of R1 = 9.3 Kilo Ohms\n", + "The value of RE = 11.5 Kilo Ohms\n" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.13 Page No.74" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data \n", + "\n", + "VCC = 10.0\n", + "beta = 100\n", + "VBE = 0.7\n", + "RE = 10*10**3\n", + "\n", + "# solution\n", + "# fom the KVL loop1\n", + "Iref = ((VCC - VBE)/RE) # Finding the Iref \n", + "# Assuming the transistor are identical \n", + "# Iref = 2IE\n", + "# IE = IC + IB\n", + "IC = (beta*Iref/(2*(1+beta)))\n", + "I0 = IC\n", + "#Displaying the values \n", + "\n", + "print \"The value of Iref =\",Iref*10**3,\"mA\" # Converting the value into mA\n", + "print \"The value of IC =\",round(IC*10**3,2),\"mA\" # Converting the value into mA and rounding the answer\n", + "print \"The value of I0 =\",round(I0*10**3,2),\"mA\" # Converting the value into mA and rounding the answer" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of Iref = 0.93 mA\n", + "The value of IC = 0.46 mA\n", + "The value of I0 = 0.46 mA\n" + ] + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.14 Page No.75" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data \n", + "\n", + "VCC = 12.0\n", + "Rref = 15*10**3 \n", + "R1 = 2.8*10**3\n", + "beta = 200\n", + "VBE = 0.7\n", + "V0 = 6.0\n", + "\n", + "#Calculations \n", + "#Calculations for finding the IC1 and IC2\n", + "Iref = (VCC - VBE)/Rref\n", + "I1 = VBE / R1\n", + "IC1 = (Iref - I1)/(1+(2/beta))\n", + "IC2 = IC1 # Due to mirror effect \n", + "RC = (VCC - V0)/IC1\n", + "\n", + "# Displaying the values \n", + "\n", + "print \"The value of Iref =\",round(Iref*10**3,2),\"mA\" # convert into milli amps and rounding the output\n", + "print \"The value of I1 =\",round(I1*10**3,2),\"mA\" # convert into milli amps and rounding the output\n", + "print \"The value of IC1 =\",round(IC1*10**3,1),\"mA\" # convert into milli amps and rounding the output\n", + "print \"The value of Rc =\",int(round(RC*10**-3,0)),\"Kilo Ohm\" # convert into kilo Ohms and rounding the output" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of Iref = 0.75 mA\n", + "The value of I1 = 0.25 mA\n", + "The value of IC1 = 0.5 mA\n", + "The value of Rc = 12 Kilo Ohm\n" + ] + } + ], + "prompt_number": 16 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.15 Page No.75" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data \n", + "\n", + "VCC = 10.0\n", + "VBE = 0.75\n", + "R1 = 4.7*10**3\n", + "\n", + "# solution \n", + "# I is approximately equals to Ic(2 + (1/beta)), since 1/beta is a small value its considerd as 2Ics \n", + "I = (VCC - VBE)/R1\n", + "# IE3 is approxiamtly equal to IC3 = I/2\n", + "#finding the value of IC \n", + "IC = I /2\n", + "print \" The value of I =\",round(I*10**3,2),\"mA\"\n", + "print \" The value of IC =\",round(IC*10**3,2),\"mA\"\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The value of I = 1.97 mA\n", + " The value of IC = 0.98 mA\n" + ] + } + ], + "prompt_number": 17 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.16 Page No.80" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "VCC = 15.0\n", + "VBE = 0.7\n", + "R = 10*10**3\n", + "RC2 = 5*10**3\n", + "# consider beta is a large value \n", + "I = (VCC - VBE)/R\n", + "IC1 = IC2 = I\n", + "#V12 = V1 - V2\n", + "V12 = VBE + IC2 * RC2 \n", + "\n", + "# displaying the values\n", + "print \"The value of I =\",round(I*10**3,2),\"mA\"\n", + "print \"The value of V1 - V2 =\",V12,\"V\"\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of I = 1.43 mA\n", + "The value of V1 - V2 = 7.85 V\n" + ] + } + ], + "prompt_number": 18 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.17 Page No.83" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "# Given data\n", + "\n", + "VEE = 6.0\n", + "VCC = 6.0\n", + "VD = VD1 = VD2 = VD3 = VD4 = 0.7\n", + "R5 = 3.2*10**3\n", + "R4 = 1.5*10**3\n", + "VBE1 = VBE2 =VBE3 = VBE4 = VBE5 = VBE6 = VBE7 = VBE8 = 0.7\n", + "R1 = 2.2*10**3\n", + "R2 = 7.75*10**3\n", + "R3 = 5.2*10**3\n", + "R6 = 1.5*10**3\n", + "R7 = 3*10**3\n", + "R8 = 3.4*10**3\n", + "R9 = 6*10**3\n", + "R10 =30*10**3\n", + "hfe = 100\n", + "VT = 26*10**-3\n", + "\n", + "# Solution for part A\n", + "\n", + "VBN1 = round((-VEE+VD+VD)*R5/(R4+R5),2)\n", + "I1 = (VEE+VBN1-VBE1)/R1\n", + "IQ = I1 # If the base current of Q1 is neglected\n", + "IC2 = IC3 = IQ2 = round(IQ/2,6)\n", + "VC2 = VC3 = round((VCC - R2*IC2),2)\n", + "VE4 = VC2 - VBE4 \n", + "I6 = round(VE4/R6,6)\n", + "IC4 = IC5 = round((I6/2),6)\n", + "VC5 = round(VCC - IC5*R7,2)\n", + "VE6 = round(VC5 - VBE6,2)\n", + "IC7 = I8 = round((VEE - VD3)/R8,5)\n", + "VB8 = VBE8 + VD4 - VEE\n", + "I9 = round((VE6 - VB8)/R9,5)\n", + "I10 = IC7 - I9\n", + "Vo = (I10 * R10) + VB8\n", + "V0 = int(Vo) # Vo value is assumed to be very small\n", + "\n", + "# Displaying the values \n", + "print \"PART A\"\n", + "print \"==================\"\n", + "print \"the value of VBN1 =\",VBN1,\"V\"\n", + "print \"The value of I1 =\",I1*10**3,\"mA\"\n", + "print \"The value of IQ =\",IQ*10**3,\"mA\"\n", + "print \"The value of IC2 =\",IC2*10**3,\"mA\"\n", + "print \"The value of VC3 =\",VC3,\"V\"\n", + "print \"The value of VE4 =\",VE4,\"V\"\n", + "print \"The value of IC4 =\",IC4*10**3,\"mA\"\n", + "print \"The value of VC5 =\",VC5,\"V\"\n", + "print \"The value of VE6 =\",VE6,\"V\"\n", + "print \"The value of IC7 =\",IC7*10**3,\"mA\"\n", + "print \"The value of VB8 =\",VB8,\"V\"\n", + "print \"The value of I9 =\",I9*10**3,\"mA\"\n", + "print \"The value of I10 =\",I10*10**3,\"mA\"\n", + "print \"The value of V0 =\",V0,\"V\"\n", + "\n", + "# Solution for part B\n", + "VT = 26*10**-3 #the volt equivalent of temperature \n", + "IC2 = IC3 = IC4 = IC5 = IC = 0.5*10**-3\n", + "hie = (hfe*VT)/IC\n", + "RL2 = RL3 = (R2*R3)/(R2+R3)\n", + "AV1 = round((hfe*RL2)/hie,0)\n", + "AV2 = round(-(hfe*R7)/(2*hie),2)\n", + "AV3 = 1 # the thrid stage emitter follower differential gain \n", + "AV4 = int(-R10/R9)\n", + "AV = AV1*round(AV2,1)*AV4 # again rounding AV2 to get the desired value\n", + "\n", + "# Displaying the values\n", + "print \"PART B\"\n", + "print \"==================\"\n", + "print \"The value of hie =\",int(hie)\n", + "print \"The value of RL2 =\",RL2*10**-3,\"Kilo Ohms\"\n", + "print \"The value of AV1 =\",int(AV1)\n", + "print \"The value of AV2 =\",round(AV2,1)\n", + "print \"The value of AV3 =\",AV3\n", + "print \"The value of AV4 =\",AV4\n", + "print \"The value of AV =\",int(AV)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "PART A\n", + "==================\n", + "the value of VBN1 = -3.13 V\n", + "The value of I1 = 0.986363636364 mA\n", + "The value of IQ = 0.986363636364 mA\n", + "The value of IC2 = 0.493 mA\n", + "The value of VC3 = 2.18 V\n", + "The value of VE4 = 1.48 V\n", + "The value of IC4 = 0.494 mA\n", + "The value of VC5 = 4.52 V\n", + "The value of VE6 = 3.82 V\n", + "The value of IC7 = 1.56 mA\n", + "The value of VB8 = -4.6 V\n", + "The value of I9 = 1.4 mA\n", + "The value of I10 = 0.16 mA\n", + "The value of V0 = 0 V\n", + "PART B\n", + "==================\n", + "The value of hie = 5200\n", + "The value of RL2 = 3.11196911197 Kilo Ohms\n", + "The value of AV1 = 60\n", + "The value of AV2 = -28.9\n", + "The value of AV3 = 1\n", + "The value of AV4 = -5\n", + "The value of AV = 8670\n" + ] + } + ], + "prompt_number": 20 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.18 Page No.87" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data \n", + "VEE = 15.0\n", + "VCC = 15.0\n", + "VBE1 = VBE2 = VBE3 = VBE4 = VBE5 = VBE= 0.7\n", + "R = 28.6*10**3\n", + "RC1 = 20*10**3\n", + "RC6 = 3*10**3\n", + "RC8 = 2.3*10**3\n", + "RA = 15.7*10**3\n", + "hfe = 100\n", + "VT = 25*10**-3\n", + "\n", + "# Solution for part 1 DC - ANALYSIS\n", + "\n", + "I = (VEE - VBE3)/R\n", + "ICQ4 = I\n", + "ICQ1 = ICQ2 = ICQ4/2\n", + "# Q1 and Q2 are biased at 0.25mA so their Collector voltages are\n", + "IC1 = IC = ICQ1\n", + "VCQ1 = VCQ2 = VCC - (IC1*RC1)\n", + "VEQ5 = VEQ6 = VCQ1 - VBE\n", + "IQ7 = 4*I\n", + "# The collector current of Q5 and Q6 are \n", + "ICQ5 = ICQ6 = IQ7/2\n", + "VCQ6 = VCC - (ICQ6 * RC6)\n", + "VEQ8 = VCQ6 + VBE\n", + "IEQ8 = (VCC - VEQ8)/RC8\n", + "# The voltage VA at the collector of Q8 is \n", + "VA = -VCC + (IEQ8 * RA)\n", + "IEQ9 = (0-(-VCC))/RC6\n", + "\n", + "# Displaying all values of Part 1\n", + "\n", + "print \"The value of I =\",int(I*10**3),\"mA\"\n", + "print \"The value of ICQ1 =\",int(ICQ1*10**3),\"mA\"\n", + "print \"The value of VCQ1 =\",int(VCQ1),\"V\"\n", + "print \"The value of VEQ5 =\",int(VEQ5),\"V\"\n", + "print \"The value of IQ7 =\",int(IQ7*10**3),\"mA\"\n", + "print \"The value of ICQ5 =\",int(ICQ5*10**3),\"mA\"\n", + "print \"The value of VCQ6 =\",int(VCQ6),\"V\"\n", + "print \"The value of VEQ8 =\",int(VEQ8),\"V\"\n", + "print \"The value of IEQ8 =\",int(IEQ8*10**3),\"mA\"\n", + "print \"The value of VA =\",VA,\"V\"\n", + "print \"The value of IEQ9 =\",int(IEQ9*10**3),\"mA\"\n", + "\n", + "# Part 2 AC -ANALYSIS\n", + "\n", + "hieQ12 = (hfe * VT)/IC\n", + "# The ac emitter resistance of transister Q5 - Q6\n", + "hieQ56 = (hfe * VT)/ICQ5\n", + "RL1 = RL2 = (RC1*hieQ56)/(RC1 + hieQ56) # parallel combination of resistor RC1 and hieQ56\n", + "ADM1 = (hfe * RL2)/hieQ12\n", + "ADM2 = -(hfe * RC6)/(2*hieQ56)\n", + "\n", + "\n", + "# Displaying the values \n", + "\n", + "print \"The value of ac emiiter resistace of the transistor Q1-Q2 = \",int(round(hieQ12*10**-3,0)),\"Kilo Ohm\"\n", + "print \"The value of ac emiiter resistace of the transistor Q5-Q6 = \",round(hieQ56*10**-3,1),\"Kilo Ohm\"\n", + "print \"The value of effective load of Q1-Q2 = \",round(RL1*10**-3,1),\"Kilo Ohm\"\n", + "print \"The value of voltage gain of first differential pair = \",int(round(ADM1,0)),\"Kilo Ohm\"\n", + "print \"The value of voltage gain of second differential pair = \",int(ADM2),\"Kilo Ohm\"\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of I = 0 mA\n", + "The value of ICQ1 = 0 mA\n", + "The value of VCQ1 = 10 V\n", + "The value of VEQ5 = 9 V\n", + "The value of IQ7 = 2 mA\n", + "The value of ICQ5 = 1 mA\n", + "The value of VCQ6 = 12 V\n", + "The value of VEQ8 = 12 V\n", + "The value of IEQ8 = 1 mA\n", + "The value of VA = 0.7 V\n", + "The value of IEQ9 = 5 mA\n", + "The value of ac emiiter resistace of the transistor Q1-Q2 = 10 Kilo Ohm\n", + "The value of ac emiiter resistace of the transistor Q5-Q6 = 2.5 Kilo Ohm\n", + "The value of effective load of Q1-Q2 = 2.2 Kilo Ohm\n", + "The value of voltage gain of first differential pair = 22 Kilo Ohm\n", + "The value of voltage gain of second differential pair = -60 Kilo Ohm\n" + ] + } + ], + "prompt_number": 21 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Linear_Integrated_Circuits/Chapter3.ipynb b/Linear_Integrated_Circuits/Chapter3.ipynb new file mode 100755 index 00000000..b6d3c5fe --- /dev/null +++ b/Linear_Integrated_Circuits/Chapter3.ipynb @@ -0,0 +1,306 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 3 : Operational Amplifier Characteristics " + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.1 Page No.108" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data \n", + "\n", + "Ri = 10*10**3\n", + "R1 = 10*10**6\n", + "Acl = 10\n", + "\n", + "# Solution \n", + "\n", + "Rf = Acl * R1\n", + "Rt = 47*10**3\n", + "Rs = (Rt**2)/(Rf - (2*Rt))\n", + "\n", + "# Displaying the results\n", + "\n", + "print \"The value of Rf = \",Rf/10**6,\"Mega Ohms\"\n", + "print \"Thevalue of Rs = \",Rs,\"Ohms\"\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of Rf = 100 Mega Ohms\n", + "Thevalue of Rs = 22 Ohms\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.2 Page No.110" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "\n", + "Rf = 10*10**3\n", + "R1 = 10**3\n", + "Vios = 10*10**-3\n", + "Ib = 300*10**-9\n", + "Ios = 50*10**-9\n", + "\n", + "# Solution \n", + "# Solution for part a\n", + "Vot1 = (1 + (Rf/R1))*Vios + Rf*Ib\n", + "# Solution for part b \n", + "Rcomp = (Rf * R1)/(Rf + R1)\n", + "# Solution for part c\n", + "Vot2 = (1+(Rf/R1))*Vios + Rf*Ios \n", + "\n", + "# Displaying the values \n", + "\n", + "print \"The value of maximum output offset due to Vios and Ib = \", int( Vot1*10**3),\"mV\"\n", + "print \"The value of Rcomp = \",Rcomp,\"Ohms\" # Given answer in the textbook is not correct please make the change \n", + "print \"The value of maximum output offset if Rcomp is connected = \",Vot2*10**3,\"mV\"\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of maximum output offset due to Vios and Ib = 113 mV\n", + "The value of Rcomp = 909 Ohms\n", + "The value of maximum output offset if Rcomp is connected = 110.5 mV\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.3 Page No.111" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data \n", + "\n", + "Acl = 100\n", + "Temp0 = 25\n", + "Temp1 = 50\n", + "Vodrift = 0.15*10**-3\n", + "\n", + "# Solution \n", + "\n", + "Vos = Vodrift * (Temp1 - Temp0)\n", + "Vo = Vos * Acl\n", + "\n", + "# Displaying the results \n", + "\n", + "print \"The value of Input offset voltage = \",Vos*10**3,\"mV\"\n", + "print \"The value of Ooutput voltage = \",int(Vo*10**3),\"mV\"\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of Input offset voltage = 3.75 mV\n", + "The value of Ooutput voltage = 375 mV\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.4 Page No.125" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data \n", + "from scipy import signal\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "\n", + "Vpp = 6.0\n", + "Frequency = 2*10**6\n", + "\n", + "# Solution \n", + "\n", + "WL = 1.0/Frequency # Calculating the wavelength \n", + "SR = Vpp/(WL/2) # Calculating the slew rate\n", + "\n", + "# Displaying the results \n", + "\n", + "print \"The value of slew rate is =\",int(SR*10**-6),\"V/us\"\n", + "\n", + "# Ploting the result \n", + "\n", + "Vp = 3\n", + "t = np.linspace(0, 1, 500)\n", + "plt.plot(t, -Vp*abs(signal.sawtooth(2 * np.pi * 2 * t))) # Note : Triangular wave is the absolute of sawtooth wave\n", + "plt.ylim(-3,0)\n", + "plt.title(\"Output wave form of example 3.4\")\n", + "plt.ylabel(\"Amplitude (V)\")\n", + "plt.xlabel(\"Time(t)\")\n", + "plt.show()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of slew rate is = 24 V/us\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.5 Page No.126" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math \n", + "# Given data \n", + "\n", + "Acl = 50\n", + "Slew_rate = 0.5\n", + "frequency = 20*10**3\n", + "# solution \n", + "\n", + "Vm = round((Slew_rate * 10**6)/(2*math.pi * frequency),2)\n", + "Vo = 2 * Vm\n", + "Vpeak_to_peak = Vo/Acl\n", + "\n", + "# Displaying the outputs \n", + "\n", + "print \"The peak voltage is =\",Vm,\"V peak\"\n", + "print \"The peak to peak voltage =\",Vo,\"V peak to peak\"\n", + "print \"The value of maximum input voltage is =\",int(Vpeak_to_peak*10**3),\"mVpeak to peak \" \n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The peak voltage is = 3.98 V peak\n", + "The peak to peak voltage = 7.96 V peak to peak\n", + "The value of maximum input voltage is = 159 mVpeak to peak \n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3.6 Page No.127" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data \n", + "\n", + "Vptpi = 500*10**-3 #input peak to peak voltage \n", + "Vptpo = 3\n", + "Tr = 4*10**-6\n", + "\n", + "# Solution \n", + "\n", + "Vdelta = (0.9 - 0.1) * Vptpo\n", + "SR = (Vdelta / Tr ) * 10**-6\n", + "\n", + "# Display the values \n", + "\n", + "print \"The value of delta V = \",Vdelta,\"V\"\n", + "print \"The slew rate is = \",SR,\"V/us\"\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of delta V = 2.4 V\n", + "The slew rate is = 0.6 V/us\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Linear_Integrated_Circuits/Chapter4.ipynb b/Linear_Integrated_Circuits/Chapter4.ipynb new file mode 100755 index 00000000..47b4cf90 --- /dev/null +++ b/Linear_Integrated_Circuits/Chapter4.ipynb @@ -0,0 +1,283 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 4 : Operational Amplifier Applications " + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.2 Page No.139" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "Rf = 50*10**3\n", + "R1 = 40*10**3\n", + "R2 = 25*10**3\n", + "R3 = 10*10**3\n", + "R4 = 20*10**3\n", + "R5 = 30*10**3\n", + "\n", + "# Solution \n", + "R = (R1 * R2)/(R1 + R2)\n", + "Vo11 = (R + Rf)/R\n", + "\n", + "def Vo(V1,V2,V3,V4):\n", + " \n", + " return -1.25*V1 - 2.0*V2 + 2.32*V3 + 1.16*V4 \n", + "\n", + "Vo1 = Vo(2,3,4,5)\n", + "\n", + "#Dispalying the output \n", + "\n", + "print \"The value of Vo = \",Vo1,\"V\"\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of Vo = 6.58 V\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.3 Page No.167" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "%matplotlib inline\n", + "import math\n", + "from pylab import figure, show\n", + "import numpy as np\n", + "# Given data\n", + "\n", + "fmax = 100\n", + "Vp = 1\n", + "\n", + "# solution part a\n", + "\n", + "C1 = 0.1*10**-6 # Set it as the capacitance value.\n", + "Rf = 1/(2*math.pi*fmax*C1)\n", + "fb = 10*fmax\n", + "R1 = 1/(2*math.pi*fb*C1)\n", + "Cf = R1 *C1/Rf \n", + "\n", + "# Solution part b\n", + "fig = figure(1)\n", + "t = np.linspace(0,20*10**-3)\n", + "ax1 = fig.add_subplot(211)\n", + "ax1.plot(t,np.sin(628*t))\n", + "ax1.set_ylabel('Voltage vi (v)')\n", + "ax1.set_xlabel('Time(t)')\n", + "ax1.set_title('A sine input wave')\n", + "\n", + "ax2 = fig.add_subplot(212)\n", + "ax2.plot(t,-np.cos(628*t))\n", + "ax2.set_ylabel('Voltage vi (v)')\n", + "ax2.set_xlabel('Time(t)')\n", + "ax2.set_title('A cosine output wave')\n", + "\n", + "show()\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "display_data", + "png": "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\n", + "text": [ + "<matplotlib.figure.Figure at 0xb17f280c>" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.4 Page No.171" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "%matplotlib inline\n", + "import matplotlib.pylab as plt\n", + "import numpy as np\n", + "\n", + "# Given Data\n", + "R1 = 10*10**3\n", + "Rf = 100*10**3\n", + "Cf = 10*10**-9\n", + "\n", + "# Solution - Finding the frequency limit of integration fa\n", + "\n", + "fa = int(1/(2*np.pi*Rf*Cf))\n", + "\n", + "print \"The value of lower frequency limit of integration is =\",fa,\"Hz\"\n", + "\n", + "# Studying the response of sine wave input \n", + "\n", + "V = 1\n", + "f = 5*10**3\n", + "\n", + "vo = round(1/(R1*Cf*2*np.pi*5000),3)\n", + "x = np.linspace(-np.pi,np.pi,201)\n", + "plt.plot(x,vo*np.cos(2*np.pi*f*x))\n", + "plt.xlabel('Time')\n", + "plt.ylabel('Voltage')\n", + "plt.show()\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of lower frequency limit of integration is = 159 Hz\n" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "iVBORw0KGgoAAAANSUhEUgAAAYkAAAEPCAYAAAC3NDh4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnXt4VdWZ/78nyeEeLuESJElNIUQSRBLFZmyHaSjGGCk8\nPK1TkWqxpcrYoR3bGQXa8VfoU9rQKe0jpZ3SX1ulj/7QabVAC2ZEIdhaHUSlTAsasIAhNy4hJFyT\nnOzfH8udnJzsfc5e6137co7v53l8TMLZO2/2Xuv9vpe11w4ZhmGAYRiGYSxI89sAhmEYJriwSDAM\nwzC2sEgwDMMwtrBIMAzDMLawSDAMwzC2sEgwDMMwtvgqEjU1NZg2bRqmTp2KdevW2X7u9ddfR0ZG\nBp577jkPrWMYhmF8E4lIJILly5ejpqYGhw4dwpYtW3D48GHLz61YsQK33347+JEOhmEYb/FNJPbt\n24eCggLk5+cjHA5j0aJF2LZt24DP/ehHP8Kdd96J8ePH+2AlwzDMBxvfRKKhoQF5eXm93+fm5qKh\noWHAZ7Zt24YHH3wQABAKhTy1kWEY5oOObyLhxOE/9NBDqK6uRigUgmEYXG5iGIbxmAy/fnFOTg7q\n6+t7v6+vr0dubm6/z7zxxhtYtGgRAODMmTN4/vnnEQ6HsWDBgn6fKygowLvvvuu+0QzDMCnElClT\ncPTo0fgfMnyiq6vLmDx5snHs2DHj6tWrxsyZM41Dhw7Zfv6+++4znn32Wct/8/HPkOKb3/ym3yY4\nIhnsTAYbDYPt1A3bqRcnvtO3TCIjIwMbN25EZWUlIpEIli5diqKiImzatAkAsGzZMr9MYxiGYd7H\nN5EAgKqqKlRVVfX7mZ04PP74416YxDAMw0TBT1x7SHl5ud8mOCIZ7EwGGwG2Uzdsp/eE3q9LJTXm\n6ieGYRjGOU58J2cSDMMwjC0sEgzDMIwtLBIMwzCMLSwSDMMwjC0sEgzDMIwtLBIMwzCMLSwSDMMw\njC0sEgzDMIwtLBIMwzCMLSwSDMMwjC0sEgzDMIwtLBIMwzCMLSwSDMMwjC0sEgzDMIwtLBIMwzCM\nLSwSDMMwjC0sEgHCMICPfxy4etU/G7q7gf/3/2jnMAzghRf02KNKczOweLG/Nvzxj8A//qO/Nuzc\nCXz/+/7a8M47wPHjtHMcPgy8/roWc5RZtw549ll/bfADX0WipqYG06ZNw9SpU7Fu3boB/75t2zbM\nnDkTpaWluOmmm7B7924frPSO1lbg5ZeBo0dp5/n614GLF9WOffdd4HOfAy5fVv/9J04AlZXqYnf0\nKPClL6n/fgB4803g97+nnYPKX/4C/PnP/trw+uvA88/TzvHKK8CaNerH/+hHwA9+QLPhpz8F/u//\nVT/+l7+k34vdu8W4+qDhm0hEIhEsX74cNTU1OHToELZs2YLDhw/3+8ytt96KP//5z3jrrbfwxBNP\n4IEHHvDJWuf8n/8DHDqkdmxjo/h/XZ3673/zTeC73wWOHVM7/tQpIBIBDhxQt+HVV8X/z5xRO/7Q\nIeEUmprUbXj7baCjA7hwQe34l18Gli6lZXUnTgDvvQf09KifY8cOmmA2NYlrQeGnPwX27FE//vTp\nvjGhyr59Ymyq8swz9Iyqrq5vjqqwYoUIwpIN30Ri3759KCgoQH5+PsLhMBYtWoRt27b1+8zw4cN7\nv75w4QLGjRvntZnS7N+v7qB1iMQvfiH+39qqdrw5EfftU7fBdAiqk/rsWVGy+vWv1W0wHaOq0Bw4\nADz1FHD33eo2nDghREb1OuzeLUpmO3eq29DYKP5rb1c7/vJlYOtWcU9UOXVKXE/V7LSrSxxPEYmz\nZ4Hf/AZoa1M7/soVcT8pIrF1q/hbkg3fRKKhoQF5eXm93+fm5qKhoWHA57Zu3YqioiJUVVVhw4YN\nXpqoxJgx6gOxsRHIyFAXicuXgaefBkpL1Sf1qVPA8OG0+u+rrwIjR4oIUoWzZ4GiIvG3qPL22+Ja\nqorEuXPAV74C/O53QrBUOHECSE8X/1fhv/8b+Kd/Erao0tQkrsM776gdv2MHkJdHE4nTp4Fhw0QA\npcJf/iKuI1Ukrr9evd/27rvCBopItLUJ/5BsZPj1i0OhkKPPLVy4EAsXLsQf/vAH3HvvvXjHZrSv\nXr269+vy8nKUl5drsFKe0aPVJ3VjI3DzzeoT+uBBID8fmDmTJhIVFeoicfmyKBdVVtIyic98RtSx\nz51Tm1hvvw2UldFE4kMfAsJh4NIlIZyynDghBPvECWGLLG1t4l5euCBKgOnp8udoahK/+513xNiS\n5fnnRdnt618XYulw2vbj1CmgqkoED7Nnyx+/b58Yky+9JH+sSWsr8PDDwN69auU78/qpzk3DEGNq\n9Gi143VRW1uL2tpaqWN8E4mcnBzU19f3fl9fX4/c3Fzbz8+ePRvd3d04e/Ysxo4dO+Dfo0XCT6iZ\nRHk58POfqx3f3g5kZQFjx9LKTR//OPDii+LvkB3U+/cD06cLB0vJJG68UfwdKiJx9qwo89x4o7pI\nmA561Cjg/Hl5kejsFNfyU59SzyTOnxd/+8iRwh6LYR+XSETYsGSJel/i7Flg8mQhUBcvAiNGyNtw\n7hzwyU+qrwx6/XXg1ltFVnP5MjB0qNzxXV3C9vx8kRmqUFcH3HKLGN9XrgBDhsgdf/myyOgGD1b7\n/bqIDaDXOFiR4Fu5adasWThy5AiOHz+Ozs5OPPPMM1iwYEG/z7z77rsw3s/133x/WYGVQAQJaiZx\n441iQKmco71dOJSsLFomMWkSMG2ammM5cQKYOhUYP56WSYwdK/4WlVr6O+8I+6+5hpZJjB7dJxKy\nnDwJTJwITJlCE4lRo4RQqIyHM2fE8TfcoC4S5pgaO1ZtTLW2iuOLitSvw+HDwIwZwIQJaoFHa6u4\nhqNGqfdm6upoYyoIWYQqvolERkYGNm7ciMrKShQXF+Ouu+5CUVERNm3ahE2bNgEAnn32WcyYMQOl\npaX4l3/5FzxNKVJ7BDWTyMkBCguBI0fkj6dOaEA49gkT1CdURweQmak+oQG6SLz9tpjQkyap15DN\nDEZVJE6cAK69VvynQyRUxlRTU5/gxywcdAx1TJ0+LQKGzEwxNlRtGD2aJhKU8QQIkSgsVB9TydqP\nAHwsNwFAVVUVqqqq+v1s2bJlvV8/8sgjeOSRR7w2iwQ1k5g0SaT3x44BH/mI3PHnz/dNaEq5acIE\nUVZQWT5qisT48TSRGDdOfVI3NQG5ufRMIkgioTKmGhvFNcjNVb8OpkiMG6cuEhMm0ETiwgUxHidM\nUMtOo4MOlXsJiPk4ebK6SHAmwfSiOqF7eoCWFlGiGDVKbULpKjdRJnV0JuFXuenCBWGDDpEYPdpf\nkRg9Wn1MNTWJa5CZqf5wJTWTOHWKnklQx1Rrq5gTlEyio0PMS4pIJGsmwSKhGdXSwOnTYhAOHqwe\nxbe3i3OoTuiurr7mN1UkVDMJw9AjEiNGiAmtI5NQuZ9m6XDMmL7GqSxtbbRMwiw3DRokrmtnp/w5\nOjro5aYJE0Tj/8oV0chWsYEiEtHjqaNDfkmzYYj7N3w4rdzEmQQDQL3cZDoVgCYSlHLTmTPi2LQ0\nMSkp5SbVCX3xolgFMmRI36SWxRSJrCxxPtmHuDo7xX8jRqiXmy5cEPaHQmrXsrtbONURI+iZBCDO\nIytU3d1ildiwYfRMIhQSTlb2OnR2iix78GC6SKSni5VRstfh8mXx+9PTxRzlTIIhoZpJNDcD2dni\na6pImOUm2YjJLDWZNlAc9MiRwsFcuSJ3vDmhAeFcKZlEKCTKd83NcsebUV8opC4SZuQJiP/LOqb2\ndvH3h0K0wMMUCRUH3dHRdx2pjWtAbUxF30tquQlQy05NGwAxnlSyU84kmF5Gjux7+EkGM60H1JwK\n0CcSQ4f2rWuXIVokqOWmUEit5BQtEqrlpo6OPgedlSUv2tFRHyWTiBYJWQdtNq0B9Uyira3POao4\naHM8AbRMgjKmzPEE0DMJQG1MRQu+aobNmQTTi1mqURmIw4aJr6mZBKBWctIpEoCaSJglL4DekwDE\nNZUVSx0iQc0kdIgEdUzFjieVDRujMwm/RMJcAgvQMwmV8QRwJsHEoDKpo7d+0CESKiucYks9lJ4E\noPZAnY5MInpSDx8urq0MsSKhUj6MfjpZRSTMpjWgXsKkjqno7FZHuUllTEWPJ1Ubzp7VV25SGU8A\nZxJMDCo15OjIU1cmITuhYp0KNZMwS28yuCESKpmEGfWpLoGNvZ8qmYRpAyWToIwpHeWmaKFRzSSo\nDpo6pqjjCeDnJJgYVCK/IJSbokVCR7lJZVLrFgmV8kD007G6yk1+9CR0l5tURII6psxnXgB1kQhK\nuYkzCaYXlUyCWhowjL4VMYBauenSpT6nokMkhg2Tn9TRk4m6BBbQU27S0bim9CRUVzdRx1S0SJgP\neMouyKCOqejxNHSoWI4qu2rPjXKTrA2cSTD9UM0kKBP68mXx0FQ4LL5Xqf9GR56qa/u7uvp26VQR\niVinIjuhe3r6n8OPxrVh9HfQOkTi/Hm5N9yZNpj3QlUkTAedliaeXZFZ0tzT03/HVKpIpKWJMS5j\nQyTS96wHQBeJjAzxn+wbCzmTYPqh2pMwB7JKeSI66gPoDlqlJxG9rl6HDSoT2nSM5rsXqJmEud+P\nTOQY/fAVoNaTiG5cZ2SIv0PmWly5MtAGSuMakL+fpkCkve9lqD0JFRvMrcXNMakqEtFbxcuKfne3\nsNkUu2SDRcIFVDKJ2NKAysNXsRNa9kljamkgun5s2iD7d8QK1cWLchF0dNSnakP0csVwWDg6GQcb\nnRUC9J4EID+mooMOgF5uAuQddKwNusaUikiYqD4nQRlT5sabaUnqbZPU7GCjstuk1bp6meg1dkIP\nHUqL4ocO7SsfOSW6NACoZRKXL/fZkJ4uvpZxbrEioVLquXy5v5OXXeFkJRKU1U2AmoOOtkGXSMgE\nHtHjCaCXm0wbZK5DrA3UchMgn53GXsdkg0XCBcwGmwzRUVd6uigVyJxDd7kpFJJ3LDpEIrqODshP\nauqEBsR1j37zmGxfQodQxWYSKs5Rt0jIBh6pLBIy9zN2TCcbLBIuoCIS1EltNaEp5SbTBplJTa0f\nW9kgu8JJR7kp9vWUsiKhK5OIFgnZ+xmEchN1PAH6ehImOkRCdkxFZ8fJCIuEC6j0A6jlAR2ZRKwN\nspGf7nIT4F8mEe1YZK+DjlJPrHOUFQk3Mgk/yk2xPQmVKN7vcpPKe7mDBIuEC1DLTYB8s1N34xqQ\nXwbrRrlJdhmsG5nEkCHyUTw1k4h1LLKlHh2ZROz9TNZyk45MgnI/WSSYAQSl3EQt9aRKJqEiErEO\nWlYkdDTPo22QFX23GtfJJhLU8QTQxxSLBIGamhpMmzYNU6dOxbp16wb8+1NPPYWZM2fihhtuwMc+\n9jEcPHjQByvlUXHQ1EltVbv1oyehI5OIndTUpjG1cS0rEtTI07SBIlS6yk2x99OP1U2UnoSOvohV\ndkrJZpIN30QiEolg+fLlqKmpwaFDh7BlyxYcPny432cmT56Ml19+GQcPHsSjjz6KBx54wCdr5ZCd\n0OaTqdEDSfZZCavIU2Ygxz6hC/iTScTaIOuY3Cg3qWQSVAdNFQkd5aZYodFRbpK1QfdzEoMHi2Xd\nMtuLUDNDblwrsm/fPhQUFCA/Px/hcBiLFi3Ctm3b+n3mlltuwaj3l3iUlZXh5MmTfpgqjaxjMyPX\n6IdtZCe1lWOTmUxdXeL3m9t6APKTmjqhu7vF5B00qO9nKlG87sY1VSRknUokIl7bSbmf1Eyip0fY\nMHhw38+oy3CHDhXjrLvb+Tl0L4ENhcTfJLOtBpebfKKhoQF5eXm93+fm5qKhocH287/4xS9wxx13\neGEaGapTAeQnNbWGHTuZAO8zCTPiMrdQAOT3C6JmEpGIcGLRYul1T8IU/OjroNKTiL6fQ4eK8zqN\noM1tPSg2WDlomXKPKSjRYqmj1EMNPFSWwCazSGT49YtD0aMvAXv27MEvf/lLvPLKK7afWb16de/X\n5eXlKC8vJ1hHg7oSBaCLhC4bZJd+Rp8jCBNa1kFfvTrQQcteywsX+l60A4jzmSUOcy+leFg5laFD\n5e9F9IZyaWl918LJ07+x5U/TBpk9yawCD9MGJ5vdRb/f2mTYMLl3TFuVemTGVHf3wKxu+HDx/nCn\nBKknUVtbi9raWqljfBOJnJwc1NfX935fX1+P3NzcAZ87ePAg7r//ftTU1GBMnJEVLRJ+Q20yAvJL\nYGPLTSpRX6wNw4bJNY3tVgUZRv+JbofdhJZ5L0asSITD4vd3dfXPDuLZYOUcZWyIzQxDob7ok+Kg\nZd7yd+kSkJPT/2dm4OHEBqvrMGwYECfZt7QhdntsmczQTmRkAw9zm3AVG8x7GT1+VcpNQdncLzaA\nXrNmTcJjfCs3zZo1C0eOHMHx48fR2dmJZ555BgsWLOj3mffeew+f+tSn8OSTT6KgoMAnS+WRbY65\nUW4yHaLTvZesJqRsqSfWhrQ0cS0oToFabgqF5CZ1rNgC3pcP7YSKsneTig2x14HaDwDkrqXVvaA2\nrmVtiB1Ppg1cbvLiF2dkYOPGjaisrEQkEsHSpUtRVFSETZs2AQCWLVuGb33rWzh37hwefPBBAEA4\nHMa+ffv8MtkxoVBfDTh2olrhRrkJ6HMs0ds72EGd0ED8Se1kkrhRbgL6ok8nL32hOhVgYE/CtMGp\nY7GL4qmZocyYsstmqH0uGdG3uw5eClW88eQUFgkCVVVVqKqq6vezZcuW9X7985//HD//+c+9NksL\n5kB0IhLUCQ1YT2rTsaiKBDWTMG24eLHv9ZGJjqcKldXfIRP5uZVJUEWCugRWhw3UrcIB7zMJauAR\n+8wLwKubGE3IlAesnIqsU7AqD8jYYBdxyYgEdVLrECorsfS63ER1LLpEItYG2SjejXKTjA12gQ/l\niWsVGyhiC1hfh2SCRcIlZCa1nUjoiOKd2mA3oWWFijKp3S55OcGtcpPXPQm3HDQ1q5MZ16ncF0km\nWCRcwmsHTY267EoD1ExCpn6rw0Hb2ZDs5Sbq3k2A3N/hplDJOGi78qVTqGOKOp7sbEgmWCRcwo9M\nguLcgppJqJSbKEKlQyTiPR/gBB1iadXnks0k3Iri/c4kqNeBRYLRArUn4YeDpjgVwJ2ehEomEb2V\nhGmDlw7aKgIeMsT5VhBuNa5lHbQb5SbZTIIi+KYNujMJ2WwmSA/TqcAi4RI6oninE9owBj4VCnjr\noA3DnX6ArkzCy3KT1Tm8XvpJDTyoCyGAYCyBpa6YiydUTt9Bzxv8MZboKDfJDOTYfXZkz0Gd0F1d\nYsuJ2G0nvBSqSETYEb1BoKwN1Ci+p8f66W6qc5QV7CCsLLLKTqkO2hQqpw7ajUwiPV2MMcr9TCZY\nJFxCJjWnLtOzivpMG7xaAms1mXTZ4PQ6Wu27BHibSVy9ai3YMk+eU0Xi6lXhyDJinoLS0bg2t1lJ\nhNXW8wBdqMJh8SS/VzsJxBvXlGuZTLBIuIRMam5VR6fWj81zyGQzlPqxnQ1elpvsJjRV7KiRJ6An\nk7hyxZmDtlrbr2JD7N+RkSHEp7Mz8fFWW88D9MY14LwnYBjurG4C5LebYZFgBkAdiNSlgoC3K4vc\nziScOkc3HPSgQX3vuvDLhrQ05yUOXWJJGVN2D5BRG9cyNnR1iYzOSqi8En2zV8ciwQyAOhBlHJNb\n5SZZG9wQKrNs4iR61RH1WZ0jFHLu3HSJhJ2Td2pDbGZq2qAjM3RyDjuR0JEhOx1Tdg1jHcGP03Nc\nvSpEyskW8UGFRcIlqCJhOiYnA1FHuckqJZaxQUcmYfd3UG2gRvGAnINOFRvshCpZMgm7Mo+XmUSy\n9yMAFgnXkGlsmQ3XWGScIzWKtzuH0wkVz6k4bRrHiz69co7xSjVUGyjPSeiwQdY5UstNFMEH6EED\ndTwB9PvJIsHYItu4ptSQ45WbvIqY7JyKjHNMdZHwqszitg1eChU1incrm6EKVTLBIuESuiaD0yje\nLvL0W6i8jByDEMVTs0I3bdCxssjpmNIl2NRMwu46etWT4EyCsUWHSDgdzPFKAzpKXk4jR2p5gZpJ\n6HDQOu6FW85RRzbjVblJRyYRL/BwWupxs9zEIsGQCEomQXmIzLTByyg+CA46qOUmHT0JHTY4EQk3\nBVtHJsEi4RwWCZeQbRpTB6KdU3DqoKnOkVoqMm2wO0eyO+ig9CS8iuLdFCodfTKZMWm3nJgiVMkE\ni4RL6Co3eVXqcTOTSKYoPgg2BEGoqGNKV8nLjTHp5RPXdiWvZMJXkaipqcG0adMwdepUrFu3bsC/\nv/3227jlllswZMgQrF+/3gcL1XE6EM0nMinRiq4ontq4TgWhCoKDDsIS2CBkEm4JFZeb5MhI/BF3\niEQiWL58OV588UXk5OTg5ptvxoIFC1BUVNT7mbFjx+JHP/oRtm7d6peZyjgdiHa7p5rn8GJlUXe3\n+H/shnDmObxwjoZhvYMrwJlEtA1+L4H1MpOgjms3x8MHSSR8yyT27duHgoIC5OfnIxwOY9GiRdi2\nbVu/z4wfPx6zZs1COHbzlSSAOqEB71YWxbPBK6Gy2z3VtCGZRMIqK6TuAmva4PR+WtkQhCg+CCUv\n8156sR8YiwSBhoYG5OXl9X6fm5uLhoYGv8zRjtOmsd0qEMC7clPQhYp6Dl0O2guhMrfAtoqLdFwH\np87R7SjeTxt07AcmU3ZLdpHwrdwUsgoZCaxevbr36/LycpSXl2s9vyy6ongvVhbZRZ4y57Cb0E4d\ntI7rcOUKkJU18OdeZxKjR6vbEC/yHDIE6OhwZkNm5sCfm1t925X1TBIJVXu7Mxus/g5zN9t4wRFg\n/6ZDQIypM2ec2ZBoTNmN+0Tn0DG3/KC2tha1tbVSx/gmEjk5Oaivr+/9vr6+Hrm5ucrnixaJIBCE\nCNpLobJzCqZIGIZ1KUm3DXZOpbNTvDUuLU7ubL5/wE4kzp1TtyEcFrvpdndb935MEonE6dPObBg/\n3vrfzGsZTyTiRb8yY2rMGHsb4t1vQNwvU9QoNlgFDbLnoM6tIGUSsQH0mjVrEh7jW7lp1qxZOHLk\nCI4fP47Ozk4888wzWLBggeVnDafvKgwQgweLaCmR6W5mEhkZ4vebjWkVG6iZRHq6cJCJUns3xTIU\n6hOKeHR12TsmqlCZO+omKlHYXUdArr9DOYcOG6glTDfHA+DsfkYi4j9K6S9RxpQM+JZJZGRkYOPG\njaisrEQkEsHSpUtRVFSETZs2AQCWLVuG5uZm3HzzzWhvb0daWhoee+wxHDp0CCNGjPDLbMeYb+Xq\n7IyfbiaaDE6i10TR59Wr8aPXRJOptTWxDU6iT9XrMHQo0NzszIZEjiXehHXbMZn3Iva9z7HH64ji\nKQsREo0nL2zw4jokEgm71+HK2hCkcpMKvokEAFRVVaGqqqrfz5YtW9b79cSJE/uVpJINHc6xqSnx\n73Hi3OI5pkSRp9NsJpENo0bZH69jhRXVyTsRW7dt0LGQQUcU76aDdmJDovHkxb1wO2hIFviJaxfR\nMRAp5SYdNuhy0Ikmta4VVm45BR0NeKc2UBcR6BBLv0teQcgkdIhEKpSbWCRcxKtohTqpdTloN4XK\nb5HwykEHoRbvRbmJmkn4LRIyQUOyl5tYJFzES+doN6mdDOZUEiq/y03UCNqLcpPfQuWlDZSsjMtN\nAhYJF/FqIOpI7d0UKh1lFr9r0MlWbrI7h9OmsZvXIQjNcx0lUC43MWS87Af4HTG5nUkkSy0+KBE0\ntXGd6jZ4lWFzuYmJi9PyQjwH73ctXkao3OpJeJlJfBBWN/ltQxCWwAZhTCYLLBIu4pWD1lFuogpV\nvC0OkqnU42aj0mn06ubqJqcNW7dXWFEa17rGA5ebnJFQJN555x3MnTsX06dPBwAcPHgQ3/72t103\nLBXwomFrGGIg2m2zEISehJepfTzH4uRp56BHr373qFKlaczlJuckFIn7778f3/nOdzDofS80Y8YM\nbNmyxXXDUgEvJkNnp3iy225PImrE5MS5xtu+wLTB79Q+WWwIQqknkQ06roPfUXwQhCpZSCgSly5d\nQllZWe/3oVAoKd/v4AdeRPGJ0lkvJkO8d0F4ZYOOc3hR4vC73PRBaxq7JVRO92b7QJSbxo8fj6NH\nj/Z+/5vf/AbXXHONq0alCl44x0TprI7olTKZnNpAdSo9PSKropbdKI1rs/RHcfJO7kU8xxTvdbiA\n86ax3fHhsNgwMhJJfA63MqqMDBGQUDaupApV9N5sic6R7OWmhHs3bdy4EQ888ADefvttTJo0CR/+\n8Ifx1FNPeWFb0uNF49ptB02d0OY5qOWFRMe7nc042fJcV+lv5Ejrf3OyaWR3t/ic3YaOQ4Yk3jTy\n6lXAbg/N6N1shw2zt8Ew4tuQ6J0UToMfOzsNI/51oo6H6HOo7s2WLCQUiSlTpuCll17CxYsX0dPT\ng0yrt5kwlnjhmNwuN1EjLl02dHbGvw46bIhXboqOXu2qrbqugxPnaPcZXTaMG5f4HHYiEW/3VBkb\nxo5NbIOdSJiLOeLZQM2Qzblht3FlIqFKFhKKxPr16we8RW7UqFG46aabUFJS4pphqQDVOUa/ZjGe\nU6CWm+LZEP1OCrvI0IkNid73HU/sQiHhmON9xolzdBK9Wr1VLvocV6/SRCLRtutORd/OMSWygboE\nNtqGeMc7ca7xoAY/OmygCq754qR4L7pKBhKa/8Ybb+CnP/0pGhoacPLkSWzatAnPP/887r//fqxb\nt84LG5MWHSltokntdhTv5GU5bmcz5jni2eD2dXByjqDY4GaPyqkNOsqPbgqVF722VCg1AQ5Eor6+\nHm+++SbWr1+PH/zgB3jjjTdw6tQp7N27F0888YQHJiYvXjiFeI1SXTYkirqC4hx1lJvivWrSq+vg\npnP0os+VDOOB+mCjExtSYWUT4EAkTp8+3fuMBACEw2G0tLRg2LBhGJIKV8BFhgyhL2FNNKm9mpCJ\novgPilC5nc14EcVzuSkY4yFZSNiT+OxnP4uysjIsXLgQhmHgd7/7HRYvXoyLFy+iuLjYCxuTFl2R\noxflJrdQBez3AAAgAElEQVRTe78nJLVxDaRGJhEUoaJeBx33wotyU7I3rQEHIvHoo4/i9ttvxyuv\nvIJQKIRNmzZh1qxZAMBLYROgqycR9HKTVz0JL5xCvHITtbzgVfmR0uPSYUNQHLSOcpOb9yJZcNR3\nv/nmm3H33Xdj4cKFmDBhAt577z0tv7ympgbTpk3D1KlTbZvgX/nKVzB16lTMnDkTb731lpbf6xW6\nnIKfjWvzHJRyk44JSY0cdTmFVCg3eZHNUMdDUK4DN64diMT27dsxdepUTJ48GeXl5cjPz0dVVRX5\nF0ciESxfvhw1NTU4dOgQtmzZgsOHD/f7zM6dO3H06FEcOXIEP/vZz/Dggw+Sf6+XBGEgJpMNfpdZ\ndDSudYhl0BvXqVJ243KTMxKKxL//+7/j1VdfRWFhIY4dO4aXXnqp315Oquzbtw8FBQXIz89HOBzG\nokWLsG3btn6f2b59O5YsWQIAKCsrQ1tbG1paWsi/2yt0lZviZRKJyk06oraglJuCsAw3FQTb7f3A\nvHLQfme3XG56n3A4jHHjxqGnpweRSARz5szB/v37yb+4oaEBeXl5vd/n5uaioaEh4WdOnjxJ/t1e\nERSn4He5yYu+iK5MgstN7kfxXG5KLhI2rseMGYOOjg7Mnj0bn/3sZzFhwgSMsHsWXoLYp7jtMGJ2\nM7M7bvXq1b1fl5eXo7y8XNU0bXjRuE6GyRCERqXT6/BBeE7C7ca1rqwu6OUmavnRD2pra1FbWyt1\nTEKR2LZtG4YMGYIf/vCHeOqpp9De3o5vfvObqjb2kpOTg/r6+t7v6+vrkZubG/czJ0+eRE5OjuX5\nokUiKCQayN3dYvdSu+0uzHNQyk2JbOjpAbq67HdPdXIOqlNItHuqeY5UeOI6GcQyWcpNyZ7N+EFs\nAL1mzZqExyQsN33rW99Ceno6wuEw7rvvPnzlK1/B9773PZKhADBr1iwcOXIEx48fR2dnJ5555hks\nWLCg32cWLFiAX/3qVwCA1157DaNHj0Z2djb5d3uFU+caL6ly2ykk2j0VSPziIWrUl2j3VNMGLjfR\nm6WDBiXe6tvJ/aRchyA4aC+Chg9MT+KFF14Y8LOdO3eSf3FGRgY2btyIyspKFBcX46677kJRURE2\nbdqETZs2AQDuuOMOTJ48GQUFBVi2bBl+8pOfkH+vl+iINNzeu8mJDW5PyCDYYJ7Dz3JTondBODlH\nIhvMvbj8vJ9OXtjj9nWI3rhS9RxUwU4WbAsd//mf/4mf/OQnePfddzFjxozen3d0dOBjH/uYll9e\nVVU1YDntsmXL+n2/ceNGLb/LD3REGk4zAdXjdThoL9JyJ9Froh1c49kQidDLbleu2G9d7eT4ri6x\n8296evxzxNvNVuZ+Dh8+8N96eoTjTHQd4u1mm8gGc3fjeNfbiYOmXIdQqE+s4u1unMgGynVIFmxF\nYvHixaiqqsLKlSuxbt263gZyZmYmxsbb6J3pRVcmcfGi+jmcONdE0Y6TcpPbIqHrYTq7d1I4Lf0l\nug7x3sOQ6L0YToOGU6fi22C3jbhJvOw00XsYTBsS3Yt41yH6HFYi0d0tfn+8Xp2TZdl2L2+KtcFK\nLAEuN5nYlpsikQhGjhyJH//4x8jMzMTIkSMxcuRIhEIhtCbaFJ8BkDitduKgqQ42HBYRW0+P2vFO\nbYj3d5iT3S6196LcZEavFBuoQhUKCadoJzQ6xgM1O/XiXgDxr6UX88I8h9290LGgI+XLTTfeeKPt\nctNQKIS//e1vrhmVKqSl9TkFqwHrNJOglJui3wdhVW93OpkuXIhvg1OnYFWO0WGDjHOzemlQoqa1\nefzp03psUB0PurJTu3PoKIE6dfLxxNJvoXKyoMOJDalQdLEViePHj3toRuqiwylQGtfRNqiKxODB\nwNmzemxQFQlqFB99Dqs38CZqWgPOyk0U56bLQVPGlJdRfBCug5tClSrlpoTPSQDiWYmXX34ZoVAI\nH//4xzF//ny37UoZgpDaezEhKY4lCNfBK6FKZIMXDjpeJhGEKJ6aiTi1wYsxmQrlpoRLYFeuXIkN\nGzZg+vTpKCoqwoYNG7Bq1SovbEsJqAORuneTDhuC4KDddgpOy02U0h+Q2Dn6nUl4GcX7fR2CcC+S\ngYSZxI4dO3DgwAGkv78u77777kNJSQm++93vum5cKhCEyaAjgqZsrqfLBrevwwep3OR3NhPvWiZL\nuYm68WWykDCTCIVCaGtr6/2+ra3N8b5LjJ5MIhlKPZTyQBCco5NMIlnKTYnOES879aoWH4TVTV5k\nEqlQbrLNJL70pS9h8eLF+PrXv44bb7wRc+bMgWEY2Lt3L6qrq720ManR4aATlZuSIbUPernJaSYR\nhOuQDD2qZL8OXG7qw1YkCgsL8fDDD6OxsRG33norrr32WpSUlGDdunWYOHGilzYmNUEYiG47aB1C\nRanlm+fw+zoki4NO1Lj26l4EIbN0e3VTKmQStuWmhx56CK+++ir27t2LqVOn4rnnnsPDDz+MTZs2\noa6uzksbkxqqU3Cyd5Pb5SYdWyIHXSy9LDe5+TAdNTsNStM4WcpN8YKGRG86TBYS9iTy8/OxcuVK\nHDhwAE8//TR++9vfoqioyAvbUoKgO8dkskFHFB/PQadC45p6Di436bXhAyES3d3d2L59OxYvXozb\nb78d06ZNw3PPPeeFbSkBdSA6WQLrRbM01Vc36VgCGxTHRBlTXmYzlHKTF1kd9V44GVPJgG1P4oUX\nXsDTTz+NHTt24CMf+Qjuvvtu/OxnP9PyVroPEomcQqLH9uMd390t9oWKtxEakDitTrQhXLzjzRcG\nxdvjBkh8HRINqyA46MGD9T39bne8Vw763Dna8clQbqI+s+LFvUgGbN1LdXU17r77bnz/+99HVlaW\nlzalFFSnQH061okNid7jlKg8MWhQ/BcGAYknpJNdQ+2iPsMQu6tS+yKJSgNDh8a3QUdvJpEN0ZtG\nWq1Ed5pJNDVZ/5vTKL6rK74NbveoBg0SNkQi1lurexE0RG9caRWopUq5yVYkdu/e7aUdKYuOgWju\n8R87EJ0+rONmP8ArGxJtxpZoe+tE57h8OXFGFa/h290thDJRVkcteaWliQ0KrUQxEhF2WG1gGGsD\npdwUvZttrL09Pc4FmzKmojeuHDas/7/JCPalS9b/JhuAWWXCqVJuStiTYGhQnWO8N4k5mQiJbNDx\n4JNXQkXJyJycw0km4fZ1cBJ52jlYJ+/EcGID5e9wsnuqThusroP5Otx4L28CgjGukwEWCZfRMYjs\nGo26nGMQHLQTobJ7N4dXE9rMErq63LHBaeQZL2igjCeAnhk6tYHaD9Bhg465afd3mFldol5dMsAi\n4TJuRm0ykaeO+q+Vg5ZxKpSVJBkZotTit4OmCnaikhflfuoSbMo5dIwHr4TK7bnpJKtLBnwRidbW\nVlRUVKCwsBC33XZbv72hovnCF76A7Ozsfu/YTjbczCRknArFQcd7o1qQJiTVBqqDTpbrEK9spkOo\n/L4OTkWGuodVPBtSpdQE+CQS1dXVqKioQF1dHebOnWu7F9TnP/951NTUeGydXtysY1MntA4bvCo3\nAfGj+CBkEjps8MpB2zlHr2wIQrnJTZFIlaetAZ9EYvv27ViyZAkAYMmSJdi6davl52bPno0xY8Z4\naZp2qE1jwF5ovCo3mecIQibhloOmXkuvVnnFO0cy9UV0zIugiARlXiQDvohES0sLst9fnJ+dnY2W\nlhY/zPAEN50jdULL2mDnHL3MJKiOiVJ2M20Iaiahq8yS7OWmoAhVqmQSjl5fqkJFRQWam5sH/Hzt\n2rX9vg+FQlreT7F69erer8vLy1FeXk4+pw7cnAy6yk1OG67UvkiqlJvcFCq/HXRQehKURQBBKTcF\nMZOora1FbW2t1DGuicSuXbts/y07OxvNzc2YOHEimpqaMGHCBPLvixaJIBGUxrVbUXyqiISMg/Zb\nqNwss3glEkG3IVUb17EB9Jo1axIe40u5acGCBdi8eTMAYPPmzVi4cKEfZniC22m13w7ay2wmKJlE\nUMtNXtrgZhSfKiKRKuUmX0Ri5cqV2LVrFwoLC7F7926sXLkSANDY2Ih58+b1fu7uu+/GRz/6UdTV\n1SEvLw+PP/64H+aS0OUcKSmtmyJx6RLNqeiwIVXq4F7ZkGgJLNUGp2PabkuMIIhlqpabVHCt3BSP\nrKwsvPjiiwN+PmnSJOzYsaP3+y1btnhpliu43bimRvEyzU6rSR2UZbhelZtSIZMwBdtqgz6v+iLx\noningQd1ZZGOTIKaUSUD/MS1y9hNJqc7l8Y7B9WpON0IDXCv3GRuNe6FDYmedg6CUHlhQ3q6eIK9\ns3Pgv3klVMOGxS83xW7a54YNiUpeXG4SsEi4jN0gcrpzKRA/eqVM6K4u4SwSbYQG2E9qqlNxunsq\nEL/kRXEqplj6XfLyalsOwD3RT6aehJmhW203Q7UhlcpNLBIuo2P1A3Ug6rDBra1BvLaBKlRuZRIy\nG8K5NaYMw7tnNczx4IaDdnodzADJKqOiBh6cSTCOoU4mwP+oL5ENXpQG4tlAndAyUZ9bmYR5vJPM\nUte1jD1HV5f4/U7FkiL6aWlCEN0QKup1AOjBD2cSjGPcziS8WK4IBEeo3OjNyER98WyQeQAsNoKW\nsUHXmIq9n17bYDWmOjudl0DdKrt5LVRBh0XCZQYPFgPfyil45Rx12UARCXO78Z4edRvirfJykkmY\nb/mLRAYer8OG4cMTH5+ebr2jrqwN1OzU6hwym9K5JRJBsMHsF1KFistNjCPsttnW4RydDsR4NshE\nXJQlsKFQ34uDYm3QUW5yaoNVecDLkhcgPhd7LYPgHINgg9N7CbiXIcvYwI1rRgtWA8nLxrUOG6iZ\nRNBtoDoFGcdiJRI6xgP1HEEQCadZoS4b7K6DlzYEHRYJD7AbiEFwjqlgg0wUb5WV6bgXMjZYZWW6\nHLRMZkgZk5zN9B1vlWFzuYmRwmowX7rkrIZtdzwQDActY4NVecDL3ox5DjcattRyk45MgiqWuhrX\nlKZxEERCJpOI9/wQZxKMY6wG88WLcpEntTlmZYNMo5P6MJ2dDTp6Mzr6AV4tBTZtcMM5UgOPoDho\nGRvcePZGtnR48SLNhqDDIuEBdpkEJeoD5MsDbjRsky2bGT584KT2Oop3K5OQDTyCGsVTbZBd5UXN\nJCgLOpIBFgkPCGq5yenafiDYIqHDQVPKVTps0JVJUBquXouEjoyK8mAjYJ2ly2QSw4fb9yQ4k2Ac\no6Pc5IaDlhEq6hJY8xxWdXCvMwlqucmt1U1elpvcalxTS3fU6wh435PgxjVDRke5KfZ4c1M6imO5\neFHOqVAdtFX9lroix7RBZlJTy01+90V0lJuojWu7ZxSoY0rmXlqVDoFg9CS4cc1IQRUJq4Hc1SWe\nCHXyVKidDdQJ3d3tfFM6gN4PoG6hANBLPUFeAhuEcpPsmKJcB7dEQlcmwSLBOIbqoKnPWeiwIV6T\n0cmmdIC9SDjNJKyi36tXgXBYbBhHsYESxUciQrSd/h1uNq513E+nNliJpZc26BAJq79DJpMwA6Su\nroE2cLmJcYyOclPs3kuyqyesJoOXExqw7gfI1tGtJrTT6wi407g2I0+nYunGEtiuLjE+wmH1c8hm\nZHYZlVdjynTQsVt9yy7IoDxxDdDLh0GHRcIDqCJh7r0UfQ7ZSMUq6vJyyaSdDRcuACNGeGeDrn5A\ntGDrEiqnNljtJGva4FSo7K6ljA1mBmViOmun5Udd99NqXFPGlEwmYWcDl5s00NraioqKChQWFuK2\n225DW1vbgM/U19djzpw5mD59Oq6//nps2LDBB0vpUEXC6hyyk2nEiIEDWSbqGzxYOIToHVR1iIRM\nNmNGyd3dfT+TvY7UclNGhihtRTtHFadCqcWnpYlrEW2DzHUE7JcjO7UhFBp4LWVtcCPwMMco9alv\n2TEVfT/NPhmLBJHq6mpUVFSgrq4Oc+fORXV19YDPhMNh/PCHP8Rf//pXvPbaa/jxj3+Mw4cP+2At\nDWo/ABg4mGUH4fDhImpXtSEUsrbBy0wCoNtALTcBA++n15mEDhuo5SZA3LfoMaVDJGQF106onGZU\n1J4EMPB+motKnLy8KRnwTSS2b9+OJUuWAACWLFmCrVu3DvjMxIkTUVJSAgAYMWIEioqK0NjY6Kmd\nOrAbiF5nEhSRAKwdNDWKp9qgw0FfvCh3Ld2wgVpmkckKAXeieF2ZBCWKVwk6dPQkoq9DKmURgI8i\n0dLSguzsbABAdnY2Wlpa4n7++PHjeOutt1BWVuaFeVqxco6yjiV2QslGv26JhNeZRKzg6rIhM9P5\nOYIgElZRfCpkEtT7Sc1MVWyIvZ8yPZFkwNWEqKKiAs3NzQN+vnbt2n7fh0IhhOLkhxcuXMCdd96J\nxx57DCNsrv7q1at7vy4vL0d5ebmSzW6QmQkcPdr/Z9RJ7XU/AHBHJGQnFDWbsXLQsiJhdS8ogg/I\nl5syM/s7aGrQAchHwLF9riCIhK6SFyWb6eiQG09eUltbi9raWqljXBWJXbt22f5bdnY2mpubMXHi\nRDQ1NWHChAmWn+vq6sKnP/1p3HPPPVi4cKHt+aJFImhYRfGy5YGglpt0RPGyNsTW4qkrUTo6aELl\nVybR0dH3vdeNa2Bgn0vWBupSYNOGoGUSsjZ4SWwAvWbNmoTH+FZuWrBgATZv3gwA2Lx5s6UAGIaB\npUuXori4GA899JDXJmojM7P/hAbokZ+OxrUOG4KQSVCf1ZCd1LF/h66+iMw5YkVf5V7qKDf5nUnE\nij61fAmo3c9oG4KcSajgm0isXLkSu3btQmFhIXbv3o2VK1cCABobGzFv3jwAwCuvvIInn3wSe/bs\nQWlpKUpLS1FTU+OXycrYZRKUcpNKTyKI5SaVTEJ3FC87qWNFX8cS2I4OYORImg2y40lHFB+0noSK\nDVSxpDbPg45vi7SysrLw4osvDvj5pEmTsGPHDgDA3//936Onp8dr07QTO6Fl9zwC6A46Vqh6etRq\n6dGTIRkzCatyk+ykpjpoHUJFbRrraly70Q/wu9xEvZ+cSTDSWJUGZNZyAwMntWx5IjbqM8tVTvc8\nAgbWkKkiYW41IiOWsREwtcloGPKOZeRIoL1d3QYrkWhvl8skdJSbqI3rIGYS1NKhig3J1JNQgUXC\nA6iRJzAwLW5vB0aNcn48NeozbdApEiqTKXZVD3VCX74sRErmwSfdmYRhyGdUVjZQMwnZVV5uLYGl\niL6sDZmZYi5Rt1nhngRDgrqmHRgYQVMjTz9FwpyQKjaMGgWcP9/3vaqDNm1QFaroTEJ1CWz0dRgy\nxPm27wB9TIXDouRobnFiGPJjStfyU8rGldTAY/Bgcd2py8s5k2BImMsVzcmgkknERn7nz8tlEuZO\nsubeS7KRJ0AXCXNLb3MjOJXJNHJkf5GQtSE9Xdhhvu9bNno2baBkEmlpInsxbZB1zgC93BQK9R9T\nFy8Km5zuImtlg6xImO9DMceD7LtBAD3ZaXTgoWID9yQYMuGw+M+ckDoctKxjid2QTSWbiU2rVZxb\nrA0qmQSlHwD0/ztkn5EA6KubTBtMx6LiVGJtULmW0SIhW74E6JkE0F9wr1wR80Qmo4odk6o2mGPq\n6lUhlrK9Os4kGDLRk1pXJkGJPlUm0+jR/aP4tjbxMxmiHYsfmQTQf1LrKDepChVFJKiZBNA/8JDN\nTK1sUB1T5gbQ58/TxhOgPqbM+6lyHWNt4EyCUSLWQVMmNKAe+VFFInpHd1WRMJ2jjkxCRSSibfCj\n3AT0Fwk/yk3AwEyCkhWaNlDGFDXoAOjlJmrQoWpDkGGR8AgdmQSl3AT0X+Gk4qDHjKGLRHR5gDqh\nAbVykRvlJq8zCR3lpuigQVcmIXsdRo3qLxJjxsgdr6vkFZ1JUEWCMwlGiegJpRpxRTtHlXKTjkzi\n3Ln+NlAiP5XdMmPLTefOAVlZcueglptin5OQXd1k2mCKvuzT1oCeTCIrq+9+qpYvqQ46elxTM1NA\nPfAw76eKUHEmwWghOvJTibiysoDWVvG1ynJFQE9PIjaToDQ7ZbfkAAaWm1pb5UUi1gZqFK+j3ETt\nSVDHFLV8adqQjOWm6MCDOp4AziQYRWIzCcqEvnxZPPwl86SyaYM5mKn140hE/D3U1U3UTKK1lRb5\n6Sg3dXSolXrMc+goN6nczzFj+saUarlJRyahUySo5SYVkeBMgtECtScRG/XJOmdgYLlJ1oboCW1G\nvzJLBU0bdGUSnZ1iyaKsg40tN6k0rqOzmbNngXHj5M4xbpw4DghGuUm1ca0zkzh3jtbjAujlJh0i\nwZkEowR1dRO1NGBlg4qDbmsT5S6VqA+gZxJm9BqJCKcyZozcHlixNqg4laFDxXuMu7qEUF26JH8/\nxo0DzpwRX6uUm4YMEb/ffGJa5X5GjymVTGLo0P4PaPqRSZi9HXMfUD/LTYahthdY0GGR8IjoTOLs\nWfmBOGqUGHzd3WpNRoAuEoMHi4edLl3SIxIqmURaWt8T7CoTGuj/nINKuSkU6rPh7Flg7Fh5oYoW\nCZXI07TBHBNXrtACD5UxFQr1RfKRiMjqZFcGxa5ukh1T6eliXF6+rLZhJEAvN2VkiL+7vV1cA/OJ\n+lSBRcIjojema2kB3n+9t2PS0vomFKXcRFkCC/RFfiorm6xsUIm4zEltZhKyZGeLewColZtMGzo6\nhKOXLTUB4pjTp8XXKuUmoE8kTp8WQiXzpDIgrl10uUk1O714sa/cJSuW1NVNQN+YMse0rA3Ry6pV\nAjigb0ypjqcgwyLhEdGvmzx1Sl4kgL7IT6U0YNpgCpVqSmw+K6GysgmgZxJA36RWzSSiRUIlkwD6\nMkOKSFDKTUDfmFIJOgB6uQno60tQgw5Abfkp0HcdVMc0NZMAxPU/dUp9PAUZFgmPoGYSQN+kVs0k\nokWiqQm45hr5c5jPSqhGfdHOkZpJqE7oiRP7ZxIUG06fBsaPlz8+ttykcj/NMdXSIv4mWXQshjAz\niTNnRDYjC7UnAYhx3Nysfi+pjWsgtTMJ395M90EjeidYVZEYO5YmEtFR/MmTQE6O/DnMSa06oXNz\nxe8G9GQSquWm5uY+G1Qmtc5MQnU1jCn6zc1q44m6BBboyyQuXADy8uSP1yESOTlAQ4PoTaiMJ2rj\nGugTiWuuSb1MgkXCI8yor71dNH9lm4wAvdw0apTIArq7RWqsmklQRaK+Xnzd0qIWhZuRn8rT1kD/\nTMLPclN0T4JablLNJChLYAFx/1paxLjMzZU/ntq4BoRInDwp/h6Vv0FHuWnChNTNJHwpN7W2tqKi\nogKFhYW47bbb0Bb9GO/7XLlyBWVlZSgpKUFxcTFWrVrlg6X6oNaPAXq56cMfBo4dEzaMHSv37gAT\nauPaFInOThEBq0SfZuSnOqHHjxcNSvOBQNXGdXu7ukiMHi2avZ2d6vfTDDxUM4nMTLEqqrNTPfCY\nPBn429+Ek1YRicxMcR0iEfU+V26uyCT+9jdhjyzmIoSeHvpiCO5JaKK6uhoVFRWoq6vD3LlzUV1d\nPeAzQ4YMwZ49e3DgwAEcPHgQe/bswR//+EcfrNWDGcXrEAnVJbCTJwPHjwPvvadWagLomcSoUWKl\n1sGDYnKrCBW1cZ2RIRxBU5O62FEziVBICPWZM+qZxLhxYjypZhKhkLgOp08LsVAp1UyZ0icSKoKf\nlib+9pYW8bXMO7ZNzHLT0aNAQYH88RkZolTV3Cx+v8ryVVMk2trU5maQ8UUktm/fjiVLlgAAlixZ\ngq1bt1p+btj7NZnOzk5EIhFkqXiEgFBQIBx0fb1ITVWIziRUIq6hQ4Vjee01/0QCEOKwd69a1AfQ\nl8ACYlLv3Qtce62aY6KKBCCOO3lSCKXMO7ZNrr8e+N//Vc8kAHH9TpwQ11R26SjQl0nU16tlEoAY\nR8ePq48ns9x09KgQLRVGjhQ2qLoYUyT++legqEjtHEHFF5FoaWlB9vujOjs7Gy1mgTiGnp4elJSU\nIDs7G3PmzEFxcbGXZmpl6FAxofbs8a/cBAix2ruXNqEpS2AB8btfflldJKiZBCAi7127gBkz1I7P\nzRVO6cwZtb4KIETif/5HXbBvuEFkZKqZBCCu37Fj6veSWm4C6CJhlpvefVctkwDE308ViVOngLfe\nAkpL1c4RVFxrXFdUVKDZXEISxdq1a/t9HwqFELIJYdLS0nDgwAGcP38elZWVqK2tRXl5ueVnV69e\n3ft1eXm57ef8pKQE+O//Bj7/ebXjs7JELb2hQX0wFxQAv/0t8K//qnZ89HMSqpM6L0/YsGKF2vEj\nRwrnTBGJ7GwhEv/0T2rHz50LrF0rom9KJrFliziXCtOnA4cOiUyIEngcOaIedFx7rShfhsNq5SZA\nOOhjx9SzwkmTgMZGUTZTzSSysoA//5k2npqbxfycOVPtHF5QW1uL2tpaqWNcE4ldu3bZ/lt2djaa\nm5sxceJENDU1YUKC+suoUaMwb9487N+/35FIBJXSUuCpp2gT+pVXRNT4kY+onaOgQDhXSrmprk5E\nr5TI79w59Uzi1luFyF25QsskGhtFNK7C1KniCef33qOJxLPPqgt2ZqZYoXbihNozCoC4fhs3AsuW\nqR0/ZIgon1Jq8aNHi+xWdTwNHSqaxenp6hnRZz8LrFoFVFaqHZ+ZKVYNjhypPr+9IDaAXrNmTcJj\nfCk3LViwAJs3bwYAbN68GQsXLhzwmTNnzvSuerp8+TJ27dqF0iTP40pKxP8pItHRAaxcKb8Fg4kZ\naamWBqZNExHj4sXq5zCPUxWJ3Fzgn/9ZrIpRdSzmPVAtN4VCwG23CQelspwZECKRlgZ84hNqxwNC\n5MaPVx8PY8aIfsjKleo2TJ4s7olKTwMAli4V91HVQQPi96tmEQDwhS+I+6gadIRCYkwluYuyxJfn\nJFauXInPfOYz+MUvfoH8/Hz813/9FwCgsbER999/P3bs2IHGxkbcd9996OnpQU9PD+69917MVc3L\nAzEE3mUAAAnFSURBVAJVJCZNAqqqgHvuUbfBrNmqZhK5ucCOHeq/3zwHQJvUjzwi/q+yOgoQmcSI\nEUB+vroNFRWifKjKuHHArFnqZRZAiMTx4+rHz58vxhRlbf+UKbQN7ebPF/9RyMlRz6YAIfbf/jbN\nhuzsvjmeSvgiEllZWXjxxRcH/HzSpEnY8b4HuuGGG/Dmm296bZqrjB0LFBeLOq4KI0YAO3fSbDAd\ns6pI6CAvT0SOqlkAIK7Ft76lfvy11wI33ij/Poxo7rhD7Pqpyrx5YoUShVmzgAMH1I+vqKD9fkBk\nEoZBPw+F3FwRRFH44hdpx0+ZAtxyC+0cQSRkGH7fXjqhUAjJ8mcYhnparovXXgP+7u/8+/09PcCr\nrwIf+5h/NhiG6GnIbm0dNAxDCJXKMl5dNDeLMujUqf7ZcOyYKBf52Q8wXZDf81sGJ76TRYJhGOYD\nihPfybvAMgzDMLawSDAMwzC2sEgwDMMwtrBIMAzDMLawSDAMwzC2sEgwDMMwtrBIMAzDMLawSDAM\nwzC2sEgwDMMwtrBIMAzDMLawSDAMwzC2sEgwDMMwtrBIMAzDMLawSDAMwzC2sEgwDMMwtrBIMAzD\nMLb4IhKtra2oqKhAYWEhbrvtNrS1tdl+NhKJoLS0FPOpL8FlGIZhpPFFJKqrq1FRUYG6ujrMnTsX\n1dXVtp997LHHUFxcjFAyvRPQhtraWr9NcEQy2JkMNgJsp27YTu/xRSS2b9+OJUuWAACWLFmCrVu3\nWn7u5MmT2LlzJ774xS+mxOtJk2XgJIOdyWAjwHbqhu30Hl9EoqWlBdnvv7E8OzsbLS0tlp/76le/\niv/4j/9AWhq3ThiGYfwgw60TV1RUoLm5ecDP165d2+/7UChkWUr6/e9/jwkTJqC0tDSlVJlhGCap\nMHzguuuuM5qamgzDMIzGxkbjuuuuG/CZVatWGbm5uUZ+fr4xceJEY9iwYca9995reb4pU6YYAPg/\n/o//4//4P4n/pkyZktBfhwzD+2L/I488grFjx2LFihWorq5GW1tb3Ob13r178f3vfx+/+93vPLSS\nYRiG8aXYv3LlSuzatQuFhYXYvXs3Vq5cCQBobGzEvHnzLI9JhdVNDMMwyYYvmQTDMAyTHKTUsqH1\n69cjLS0Nra2tfptiyaOPPoqZM2eipKQEc+fORX19vd8mWfLwww+jqKgIM2fOxKc+9SmcP3/eb5Ms\n+fWvf43p06cjPT0db775pt/mDKCmpgbTpk3D1KlTsW7dOr/NseQLX/gCsrOzMWPGDL9NiUt9fT3m\nzJmD6dOn4/rrr8eGDRv8NmkAV65cQVlZGUpKSlBcXIxVq1b5bVJcHD+orN5+DhbvvfeeUVlZaeTn\n5xtnz5712xxL2tvbe7/esGGDsXTpUh+tseeFF14wIpGIYRiGsWLFCmPFihU+W2TN4cOHjXfeecco\nLy833njjDb/N6Ud3d7cxZcoU49ixY0ZnZ6cxc+ZM49ChQ36bNYCXX37ZePPNN43rr7/eb1Pi0tTU\nZLz11luGYRhGR0eHUVhYGMjrefHiRcMwDKOrq8soKysz/vCHP/hskT3r1683Fi9ebMyfPz/u51Im\nk/ja176G733ve36bEZfMzMzery9cuIBx48b5aI09FRUVvc+mlJWV4eTJkz5bZM20adNQWFjotxmW\n7Nu3DwUFBcjPz0c4HMaiRYuwbds2v80awOzZszFmzBi/zUjIxIkTUVJSAgAYMWIEioqK0NjY6LNV\nAxk2bBgAoLOzE5FIBFlZWT5bZI3Mg8opIRLbtm1Dbm4ubrjhBr9NScg3vvENfOhDH8LmzZt7G/ZB\n5pe//CXuuOMOv81IOhoaGpCXl9f7fW5uLhoaGny0KHU4fvw43nrrLZSVlfltygB6enpQUlKC7Oxs\nzJkzB8XFxX6bZInMg8quPUynm3gP5333u9/FCy+80PuzRMroJnZ2fuc738H8+fOxdu1arF27FtXV\n1fjqV7+Kxx9/3AcrE9sJiGs7aNAgLF682GvzenFiZxDh1XjucOHCBdx555147LHHMGLECL/NGUBa\nWhoOHDiA8+fPo7KyErW1tSgvL/fbrH7IPqicNCKxa9cuy5//5S9/wbFjxzBz5kwAIo266aabsG/f\nPkyYMMFLEwHY2xnL4sWLfY3QE9n5xBNPYOfOnXjppZc8ssgap9czaOTk5PRbmFBfX4/c3FwfLUp+\nurq68OlPfxr33HMPFi5c6Lc5cRk1ahTmzZuH/fv3B04k/vSnP2H79u3YuXMnrly5gvb2dnzuc5/D\nr371K+sDPOmQeEiQG9d1dXW9X2/YsMG45557fLTGnueff94oLi42Tp8+7bcpjigvLzf279/vtxn9\n6OrqMiZPnmwcO3bMuHr1amAb14ZhGMeOHQt847qnp8e49957jYceeshvU2w5ffq0ce7cOcMwDOPS\npUvG7NmzjRdffNFnq+JTW1trfPKTn4z7mZToSUQT5DR/1apVmDFjBkpKSlBbW4v169f7bZIlX/7y\nl3HhwgVUVFSgtLQUX/rSl/w2yZLf/va3yMvLw2uvvYZ58+ahqqrKb5N6ycjIwMaNG1FZWYni4mLc\nddddKCoq8tusAdx999346Ec/irq6OuTl5flW/kzEK6+8gieffBJ79uxBaWkpSktLUVNT47dZ/Whq\nasInPvEJlJSUoKysDPPnz8fcuXP9NishiXwmP0zHMAzD2JJymQTDMAyjDxYJhmEYxhYWCYZhGMYW\nFgmGYRjGFhYJhmEYxhYWCYZhGMYWFgmGkeDs2bO96/SvueYa5ObmorS0FJmZmVi+fLnf5jGMdvg5\nCYZRZM2aNcjMzMTXvvY1v01hGNfgTIJhCJgxVm1tbe+Gg6tXr8aSJUvwD//wD8jPz8dzzz2Hf/u3\nf8MNN9yAqqoqdHd3AwDeeOMNlJeXY9asWbj99tstNzJkGL9hkWAYFzh27Bj27NmD7du345577kFF\nRQUOHjyIoUOHYseOHejq6sKXv/xlPPvss9i/fz8+//nP4xvf+IbfZjPMAJJmF1iGSRZCoRCqqqqQ\nnp6O66+/Hj09PaisrAQAzJgxA8ePH0ddXR3++te/4tZbbwUgXiU5adIkP81mGEtYJBjGBQYNGgRA\nvF8gHA73/jwtLQ3d3d0wDAPTp0/Hn/70J79MZBhHcLmJYTTjZC3Iddddh9OnT+O1114DIN6VcOjQ\nIbdNYxhpWCQYhoC5zXIoFLL8Ovoz0d+Hw2H85je/wYoVK1BSUoLS0lK8+uqr3hnOMA7hJbAMwzCM\nLZxJMAzDMLawSDAMwzC2sEgwDMMwtrBIMAzDMLawSDAMwzC2sEgwDMMwtrBIMAzDMLawSDAMwzC2\n/H+jHCBTOHebZwAAAABJRU5ErkJggg==\n", + "text": [ + "<matplotlib.figure.Figure at 0xb278fbec>" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.5 Page No.173 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "#Given data\n", + "\n", + "w = 10000\n", + "Apeak = 20\n", + "A = 3\n", + "C = 0.1*10**-6\n", + "\n", + "# Solution\n", + "\n", + "Rf = math.sqrt(1/((10**-4)**2))\n", + "R1 = Rf/10\n", + "\n", + "# Displaying the values \n", + "\n", + "print \"The value of Rf = \",int(Rf/10**3),\"Kilo Ohms\"\n", + "print \"The value of R1 = \",int(R1/10**3),\"Kilo Ohms\"\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of Rf = 10 Kilo Ohms\n", + "The value of R1 = 1 Kilo Ohms\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.9 Page No.178" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import numpy as np\n", + "# defining two functions \n", + "\n", + "def x(t):\n", + " \n", + " return 10*np.sin(3*t)\n", + "\n", + "def x1(t):\n", + "\n", + " return 30*np.cos(3*t)\n", + "\n", + "print \" The value of x(0) = \",int(x(0))\n", + "print \" The value of defferential x(0) =\",int(x1(0))\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The value of x(0) = 0\n", + " The value of defferential x(0) = 30\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Linear_Integrated_Circuits/Chapter5.ipynb b/Linear_Integrated_Circuits/Chapter5.ipynb new file mode 100755 index 00000000..29abc9bb --- /dev/null +++ b/Linear_Integrated_Circuits/Chapter5.ipynb @@ -0,0 +1,215 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 5 : Comparators and Waveform generators" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.1 Page No.212" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "%matplotlib inline\n", + "import matplotlib.pylab as plt\n", + "import numpy as np\n", + "# Given Data \n", + "\n", + "Vz1 = 9.0\n", + "Vz2 = 9.0\n", + "\n", + "x = np.array([-1, -1, -1, -1, -1, 0, 1, 1, 1, 1, 1]) \n", + "plt.plot(9.7*x)\n", + "plt.xlabel('Time')\n", + "plt.ylabel('Voltage')\n", + "plt.show()\n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "display_data", + "png": "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\niIIAALTo/wG+er38RMFoaAAAAABJRU5ErkJggg==\n", + "text": [ + "<matplotlib.figure.Figure at 0xb659de2c>" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.2 Page No.215" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data \n", + "\n", + "R2 = 100.0\n", + "R1 = 50.0*10**3\n", + "Vref = 0\n", + "vi = 1\n", + "Vsat = 14.0\n", + "\n", + "# Solution \n", + "\n", + "VUT = (R2*Vsat)/(R1+R2)\n", + "VLT = (R2*-Vsat)/(R1+R2)\n", + "\n", + "# Displaying the values\n", + "\n", + "print \"The value of Upper threshold voltage = \",int(round(VUT*10**3,0)),\"mV\"\n", + "print \"The value of Lower threshold voltage = \",int(round(VLT*10**3,0)),\"mV\"\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of Upper threshold voltage = 28 mV\n", + "The value of Lower threshold voltage = -28 mV\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.3 Page No.216" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import numpy as np \n", + "# Given data\n", + "\n", + "VUT = 0\n", + "VH = 0.2\n", + "f = 10.0**3\n", + "# Solution \n", + "\n", + "VLT = VUT - VH\n", + "theta = round(np.arcsin(VH/2),1)\n", + "T = 1/f\n", + "Ttheta = theta/(2*np.pi*f) \n", + "T1 = (T/2) + Ttheta\n", + "T2 = (T/2) - Ttheta \n", + "\n", + "# Displayig the values \n", + "\n", + "print \"The value of Lower threshold voltage = \",VLT,\"V\"\n", + "print \"The value of angle theta = \",theta,\"Radian\"\n", + "print \"The value of Timeperiode = \",round(Ttheta*10**3,3),\"ms\"\n", + "print \"The value of T1 = \",round(T1*10**3,3),\"ms\"\n", + "print \"The value of T2 = \",round(T2*10**3,3),\"ms\"\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of Lower threshold voltage = -0.2 V\n", + "The value of angle theta = 0.1 Radian\n", + "The value of Timeperiode = 0.016 ms\n", + "The value of T1 = 0.516 ms\n", + "The value of T2 = 0.484 ms\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5.4 Page No.225 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "# Given data \n", + "\n", + "f = 100\n", + "C = 0.1*10**-6\n", + "\n", + "# Solution \n", + "\n", + "R = 1/(math.sqrt(6)*2*math.pi*(10**-7)*100)\n", + "R1 = 10*R\n", + "Rf = 29*R1\n", + "\n", + "# Displaying the solutions \n", + "\n", + "print \"The value of R =\",round(R*10**-3,3),\"Kilo Ohms\"\n", + "print \"The value of R1 =\",int(round(R1*10**-3,0)),\"Kilo Ohms\"\n", + "print \"The value of Rf =\",int(round(Rf*10**-3,0)),\"Kilo Ohms\"\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of R = 6.497 Kilo Ohms\n", + "The value of R1 = 65 Kilo Ohms\n", + "The value of Rf = 1884 Kilo Ohms\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Linear_Integrated_Circuits/Chapter6.ipynb b/Linear_Integrated_Circuits/Chapter6.ipynb new file mode 100755 index 00000000..4ddd3b93 --- /dev/null +++ b/Linear_Integrated_Circuits/Chapter6.ipynb @@ -0,0 +1,147 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 6 : Voltage Regulators" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.1 Page No.246" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data \n", + "\n", + "Veb = 1.0\n", + "beta = 15.0\n", + "Vc = 5.0\n", + "Io = 1.0 # for 7805 maximum value of I b is 1 Ampere \n", + "R1 = 7.0\n", + "# Solution \n", + "\n", + "# for Load = 100ohms \n", + "\n", + "Rl = 100.0\n", + "\n", + "Il=Ic=Ii = Vc/Rl\n", + "# voltage across R1\n", + "V1 = R1*(50*10**-3)\n", + "# for load = 5 ohms\n", + "\n", + "Rl1 = 5.0\n", + "Il1 = Vc/Rl1\n", + "V12 = Il1 * Rl1 # Finding the Voltage drop across R1 when Rl = 5 Ohms \n", + "# Finding the value of Io\n", + "Io = (Il1 + (beta*(Veb/R1)))/(beta + 1)\n", + "Ic = beta*(Io - (Veb/R1))\n", + "\n", + "# for load = 1 Ohm\n", + "\n", + "Rl2 = 1.0\n", + "Il2 = Vc/Rl2\n", + "# Finding the value of Io\n", + "Io1 = (Il2 + (beta*(Veb/R1)))/(beta + 1)\n", + "Ic1 = beta*(Io1 - (Veb/R1))\n", + "\n", + "print \" The value of load current when Rl = 100 ohms is =\",int(Il*10**3),\"mA\"\n", + "print \" The voltage across R1 when load is 100 ohms =\",int(V1*10**3),\"mV\"\n", + "print \" The value of load current when Rl = 5 ohms =\",int(Il1),\"A\"\n", + "print \" The voltage across R1 when load is 5 Ohms =\",int(V12),\"V\"\n", + "print \" The value of output current when load is 5 ohms =\",int(Io*10**3),\"mA\"\n", + "print \" The value of collector current is =\",int(round(Ic*10**3)),\"mA\"\n", + "print \" The value of output current when load is 1 Ohm =\",int(Io1*10**3),\"mA\"\n", + "print \" The value of collector current is =\",round(Ic1,2),\"A\" \n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The value of load current when Rl = 100 ohms is = 50 mA\n", + " The voltage across R1 when load is 100 ohms = 350 mV\n", + " The value of load current when Rl = 5 ohms = 1 A\n", + " The voltage across R1 when load is 5 Ohms = 5 V\n", + " The value of output current when load is 5 ohms = 196 mA\n", + " The value of collector current is = 804 mA\n", + " The value of output current when load is 1 Ohm = 446 mA\n", + " The value of collector current is = 4.55 A\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.2 Page No.247" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data\n", + "\n", + "Vo = 7.5\n", + "Iq = 4.2*10**-3\n", + "Ir1 = 25*10**-3\n", + "Vr = 5\n", + "\n", + "# Solution \n", + "\n", + "R1 = Vr/Ir1\n", + "R2 = 2.5/(Ir1 + Iq)\n", + "\n", + "# Displaying the outputs \n", + "\n", + "print \"The value of R1 =\",int(R1),\"Ohms\" \n", + "print \"The value of R2 =\",int(R2),\"Ohms\"\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of R1 = 200 Ohms\n", + "The value of R2 = 85 Ohms\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Linear_Integrated_Circuits/Chapter7.ipynb b/Linear_Integrated_Circuits/Chapter7.ipynb new file mode 100755 index 00000000..9a6ddc8f --- /dev/null +++ b/Linear_Integrated_Circuits/Chapter7.ipynb @@ -0,0 +1,448 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 7 : Active Filters" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.1 Page No.269" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import numpy as np\n", + "import math\n", + "# Given Data\n", + "fh = 10**3\n", + "C = 0.1*10**-6\n", + "Rf = 5.86*10**3\n", + "Ri = 10**4\n", + "\n", + "# Solution \n", + "\n", + "R = 1/(2*np.pi*C*fh)\n", + "Ao = (1 + Rf/Ri)\n", + "\n", + "a = np.array([100, 200, 500, 1000, 5000, 10000])\n", + "print \" The value of R is =\",round(R/1000,1),\"Kilo ohms\"\n", + "print \" The value of Ao =\",Ao\n", + "print \" Frequency in Hz Gain magnitude in dB 2o log (Vo/Vi)\"\n", + "print \" ========================================================\" \n", + "for i in a:\n", + "\n", + " val = round(20 * math.log10(Ao/(math.sqrt(1 + (i/fh)**4))),3)\n", + " print i,\" || \",val\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The value of R is = 1.6 Kilo ohms\n", + " The value of Ao = 1.586\n", + " Frequency in Hz Gain magnitude in dB 2o log (Vo/Vi)\n", + " ========================================================\n", + "100 || 4.006\n", + "200 || 4.006\n", + "500 || 4.006\n", + "1000 || 0.996\n", + "5000 || -23.96\n", + "10000 || -35.994\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.2 Page No.270" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Design of a 4th order Butter worth Low pss filter \n", + "\n", + "fh = 10**3\n", + "C = 0.1*10**-6\n", + "a1 = 0.765\n", + "a2 = 1.848\n", + "\n", + "Ao1 = 3 - a1\n", + "Ao2 = 3 - a2\n", + "\n", + "# let Rf1 = 12.35 kilo Ohm and Rf2 = 15.2 kilo ohm finding the Ri1 and Ri2 \n", + "\n", + "Rf1 = 12.35*10**3\n", + "Rf2 = 15.2*10**3\n", + "\n", + "Ri1 = Rf1/(Ao1 - 1)\n", + "Ri2 = Rf2/(Ao2 - 1)\n", + "\n", + "print \" The value of Ao1 = \",Ao1\n", + "print \" The value of Ao2 = \",Ao2\n", + "print \" The value of Rf1 = \",Rf1/1000,\"Kilo Ohm\"\n", + "print \" The value of Rf2 = \",Rf2/1000,\"Kilo Ohm\"\n", + "print \" The value of Ri1 = \",int(Ri1/1000),\"Kilo Ohm\"\n", + "print \" The value of Ri2 = \",int(Ri2/1000),\"Kilo Ohm\"\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The value of Ao1 = 2.235\n", + " The value of Ao2 = 1.152\n", + " The value of Rf1 = 12.35 Kilo Ohm\n", + " The value of Rf2 = 15.2 Kilo Ohm\n", + " The value of Ri1 = 10 Kilo Ohm\n", + " The value of Ri2 = 100 Kilo Ohm\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.3 Page No.271 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "# Solution to fing out the value of n or order\n", + "\n", + "# We know the equation is 20 log|(H(jw)| = 20 log (Ao/(math.sqrt(1+(w/wh)**n))\n", + "# putig the values into the equation we will get 0.01**2 = 1/(1 + 2**2*n)\n", + "# solving the equation to get the value of n\n", + "\n", + "# 2**(2*n) = 1/(1 + (0.01)**2)\n", + "# taking log to the base 2 on both sides\n", + "n = math.log(((10**4)-1),2)/2\n", + "\n", + "print \" The order of the filter will be =\",int(math.ceil(n))\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The order of the filter will be = 7\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.4 Page No.272" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import numpy as np\n", + "import math\n", + "# Given Data\n", + "fl = 10**3\n", + "C = 0.1*10**-6\n", + "Rf = 5.86*10**3\n", + "Ri = 10**4\n", + "\n", + "# Solution \n", + "\n", + "R = 1/(2*np.pi*C*fl)\n", + "Ao = (1 + Rf/Ri)\n", + "\n", + "a = np.array([100, 200, 500, 1000, 5000, 10000])\n", + "print \" The value of R is =\",round(R/1000,1),\"Kilo ohms\"\n", + "print \" The value of Ao =\",Ao\n", + "print \" Frequency in Hz Gain magnitude in dB 2o log (Vo/Vi)\"\n", + "print \" ========================================================\" \n", + "for i in a:\n", + "\n", + " val = round(Ao/math.sqrt(1 + (fl/i)**4),3)\n", + " print i,\" || \",val\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The value of R is = 1.6 Kilo ohms\n", + " The value of Ao = 1.586\n", + " Frequency in Hz Gain magnitude in dB 2o log (Vo/Vi)\n", + " ========================================================\n", + "100 || 0.016\n", + "200 || 0.063\n", + "500 || 0.385\n", + "1000 || 1.121\n", + "5000 || 1.586\n", + "10000 || 1.586\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.5 Page No.276" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "# Given Data \n", + "\n", + "fl = 400\n", + "fh = 2*10**3\n", + "Ao = 4\n", + "\n", + "# For design top get Ao = 2 the values of Rf = Ri\n", + "\n", + "Rf = Ri = 10*10**3\n", + "\n", + "# for LPF \n", + "\n", + "C1 = 0.01*10**-6\n", + "R1 = 1/(2*math.pi*fh*C1)\n", + "\n", + "# for HPF \n", + "\n", + "C2 = 0.01*10**-6\n", + "R2 = 1/(2*math.pi*fl*C2)\n", + "\n", + "fo = math.sqrt(fh*fl)\n", + "Q = fo/(fh - fl)\n", + "\n", + "print \"The value of c1 =\",C1*10**6,\"uF\"\n", + "print \"The value of R1 =\",round(R1/1000,1),\"kilo Ohms\"\n", + "print \"The value of c2 =\",C2*10**6,\"uF\"\n", + "print \"The value of R2 =\",round(R2/1000,1),\"Kilo Ohms\"\n", + "print \"The value of Q =\",round(Q,2)\n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of c1 = 0.01 uF\n", + "The value of R1 = 8.0 kilo Ohms\n", + "The value of c2 = 0.01 uF\n", + "The value of R2 = 39.8 Kilo Ohms\n", + "The value of Q = 0.56\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.6 Page No.279" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "# Given Data \n", + "\n", + "fo = 50\n", + "C = 0.1*10**-6\n", + "\n", + "# Solution \n", + "\n", + "R = 1/(2*math.pi*fo*C)\n", + "\n", + "print \"The value of Capasitor = \",C*10**6,\"uF\"\n", + "print \"The value of Resistor = \",round(R/1000,1),\"Kilo Ohm\"\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of Capasitor = 0.1 uF\n", + "The value of Resistor = 31.8 Kilo Ohm\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.7 Page No.280" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "# Given Data \n", + "\n", + "fl = 400\n", + "fh = 2*10**3\n", + "Ao = 4\n", + "\n", + "# For design top get Ao = 2 the values of Rf = Ri\n", + "\n", + "Rf = Ri = 10*10**3\n", + "\n", + "# for LPF \n", + "\n", + "C1 = 0.1*10**-6\n", + "R1 = 1/(2*math.pi*fh*C1)\n", + "\n", + "# for HPF \n", + "\n", + "C2 = 0.1*10**-6\n", + "R2 = 1/(2*math.pi*fl*C2)\n", + "\n", + "fo = math.sqrt(fh*fl)\n", + "Q = fo/(fh - fl)\n", + "\n", + "print \"The value of c1 =\",C1*10**6,\"uF\"\n", + "print \"The value of R1 =\",round(R1/1000,1),\"kilo Ohms\"\n", + "print \"The value of c2 =\",C2*10**6,\"uF\"\n", + "print \"The value of R2 =\",round(R2/1000),\"Kilo Ohms\"\n", + "print \"The value of Q =\",round(Q,2)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of c1 = 0.1 uF\n", + "The value of R1 = 0.8 kilo Ohms\n", + "The value of c2 = 0.1 uF\n", + "The value of R2 = 4.0 Kilo Ohms\n", + "The value of Q = 0.56\n" + ] + } + ], + "prompt_number": 17 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.10 Page No.298 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# given data \n", + "\n", + "fc = 400\n", + "Ao = -2\n", + "Vcc = 5\n", + "R1 = 10*10**3\n", + "HoLP = 2\n", + "\n", + "R2 = HoLP * R1 \n", + "\n", + "# for second order butterworth filter Q = 0.707\n", + "Q = 0.707\n", + "R3 = Q * R2\n", + "\n", + "fclock = 50 * fc\n", + "\n", + "# Dispalying the outputs \n", + "\n", + "print \"The value of R1 =\",R1/1000,\"Ohms\"\n", + "print \"The value of R2 =\",R2/1000,\"Kilo Ohms\"\n", + "print \"The value of R3 =\",R3/1000,\"Kilo Ohms\"\n", + "print \"The value of clock frequency =\",fclock/1000,\"Kilo Hertz\"\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of R1 = 10 Ohms\n", + "The value of R2 = 20 Kilo Ohms\n", + "The value of R3 = 14.14 Kilo Ohms\n", + "The value of clock frequency = 20 Kilo Hertz\n" + ] + } + ], + "prompt_number": 18 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Linear_Integrated_Circuits/Chapter8.ipynb b/Linear_Integrated_Circuits/Chapter8.ipynb new file mode 100755 index 00000000..fe8ef90b --- /dev/null +++ b/Linear_Integrated_Circuits/Chapter8.ipynb @@ -0,0 +1,125 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 8 - 555 Timer " + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.1 Page No.315" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given data \n", + "\n", + "R = 100*10**3\n", + "T = 100*10**-3\n", + "\n", + "# Solution \n", + "\n", + "C = T/(1.1*R)\n", + "\n", + "print \"The value of C =\",round(C*10**6,1),\"uF\"\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of C = 0.9 uF\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.2 Page No.322" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Given Data\n", + "\n", + "Ra = 6.8*10**3\n", + "Rb = 3.3*10**3\n", + "C = 0.1*10**-6\n", + "\n", + "# Solution \n", + "# Solution of part a\n", + "\n", + "tHIGH = round(0.69*(Ra + Rb)*C,5)*10**3\n", + "\n", + "# Solution pf part b\n", + "\n", + "tLOW = round(0.69*(Rb)*C,5)*10**3\n", + "\n", + "# Solution of part c\n", + "\n", + "f = int(1.45/((Ra + 2*Rb)*C))*10**-3\n", + "\n", + "# Solution for part d\n", + "\n", + "D = round(Rb/(Ra + 2*Rb),2)\n", + "\n", + "\n", + "# Displaying the answers \n", + "\n", + "print \"The value of tHIGH =\",tHIGH,\"ms\"\n", + "print \"The value of tLOW =\",tLOW,\"ms\"\n", + "print \"The value of frequency f =\",f,\"kHz\"\n", + "print \"The value of Duty cycle D =\",D,\"or\",D*100,\"%\" \n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of tHIGH = 0.7 ms\n", + "The value of tLOW = 0.23 ms\n", + "The value of frequency f = 1.082 kHz\n", + "The value of Duty cycle D = 0.25 or 25.0 %\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Linear_Integrated_Circuits/README.txt b/Linear_Integrated_Circuits/README.txt index f34d66f4..59462772 100755 --- a/Linear_Integrated_Circuits/README.txt +++ b/Linear_Integrated_Circuits/README.txt @@ -1,10 +1,10 @@ -Contributed By: Sagar Shinde -Course: btech -College/Institute/Organization: Vishwakarma institute of Technology, Pune. -Department/Designation: ENTC +Contributed By: Aswin Venu +Course: be +College/Institute/Organization: Pavai College of technology +Department/Designation: ECE Book Title: Linear Integrated Circuits -Author: S Shalivahanan, V S Kanchana Bhaaskaran -Publisher: Tata McGraw-Hill Publishing Company Limited, New Dehli -Year of publication: 2008 -Isbn: 0-07-064818-2 -Edition: 1st
\ No newline at end of file +Author: D.Roy Choudhury, Shail B. Jain +Publisher: New age international publishers,New Delhi +Year of publication: 2012 +Isbn: 9788122430981 +Edition: 4th
\ No newline at end of file diff --git a/Linear_Integrated_Circuits/screenshots/design_of_voltage_regulator.png b/Linear_Integrated_Circuits/screenshots/design_of_voltage_regulator.png Binary files differnew file mode 100755 index 00000000..bc470f78 --- /dev/null +++ b/Linear_Integrated_Circuits/screenshots/design_of_voltage_regulator.png diff --git a/Linear_Integrated_Circuits/screenshots/filter_design.png b/Linear_Integrated_Circuits/screenshots/filter_design.png Binary files differnew file mode 100755 index 00000000..8823d86e --- /dev/null +++ b/Linear_Integrated_Circuits/screenshots/filter_design.png diff --git a/Linear_Integrated_Circuits/screenshots/op-amp_differentator_design.png b/Linear_Integrated_Circuits/screenshots/op-amp_differentator_design.png Binary files differnew file mode 100755 index 00000000..4edec474 --- /dev/null +++ b/Linear_Integrated_Circuits/screenshots/op-amp_differentator_design.png |