{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Chapter 1: Introduction to Differential Amplifier and Op-amp" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "example 1.1, Page No. 4" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# output voltage of differential amplifier\n", "\n", "import math\n", "#Variable declaration\n", "v1 = 300*10**-6 # voltage at terminal 1\n", "v2 = 240*10**-6 # voltage at terminal 2\n", "Aid = 5000.0 # differential gain of amplifier \n", "cmmr1 = 100 # CMMR for case 1\n", "cmmr2 = 10**5 # CMMR for case 2\n", "\n", "\n", "#Calculations\n", "# case 1\n", "Vid = v1-v2\n", "Vcm = (v1+v2)/2\n", "Acm = Aid/cmmr1\n", "Vout = Aid*Vid+Acm*Vcm\n", "Vout = Vout*1000 # mV\n", "\n", "# case 2\n", "Acm2 = Aid/cmmr2\n", "Vout2 = Aid*Vid+Acm2*Vcm\n", "Vout2 = Vout2*1000 # mV\n", "\n", "Vout_ideal = Aid*Vid*1000 # mV\n", "#Result\n", "print(\"(i) CMMR = %d:\\nVout = %.1f mV\\n\\n(ii) CMMR = %d:\\nVout = %.4f mV\\n\\nIdeal Vout = %.0f mV\"%(cmmr1,Vout,cmmr2,Vout2,Vout_ideal))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "(i) CMMR = 100:\n", "Vout = 313.5 mV\n", "\n", "(ii) CMMR = 100000:\n", "Vout = 300.0135 mV\n", "\n", "Ideal Vout = 300 mV\n" ] } ], "prompt_number": 3 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "example 1.2, Page No.9" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Operating point values\n", "\n", "import math\n", "#Variable declaration\n", "Rc = 4.7*10**3 # collector resistor\n", "Re = 3.3*10**3 # emitter resistor\n", "Vcc = 12 # + supply voltage\n", "Vee = -12 # - supply voltage\n", "Vbe = 0.7 # base-emitter junction voltage\n", "\n", "\n", "#Calculations\n", "Ie = (Vcc-Vbe)/(2*Re)\n", "Ic = Ie\n", "Vce = Vcc+Vbe-(Ic*Rc) \n", "\n", "#Result\n", "print(\"Q point is (%.3f mA, %.3f V)\"%(Ic*1000,Vce))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Q point is (1.712 mA, 4.653 V)\n" ] } ], "prompt_number": 4 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "example 1.3, Page No. 14" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# differential amplifier parameters(refer fig. 1.14)\n", "\n", "import math\n", "#Variable declaration\n", "hie = 2.8*10**3 # input impedance\n", "Rc = 4.7*10**3 # collector resistance\n", "Vcc = 15 # supply voltage\n", "hfe = 100 # transistor current gain\n", "Re = 6.8*10**3 # emitter resistance\n", "Vbe = 0.7 # emitter-base junction voltage drop\n", "Rin = 100 # input resistance\n", "v1 = 70*10**-3 # input voltage 1\n", "v2 = 40*10**-3 # input voltage 2\n", "\n", "# Calculations\n", "# Operating point values\n", "Ie = Ic = (Vcc-Vbe)/( (2*Re) + (Rin/hfe))\n", "Vce = Vcc+Vbe-Ic*Rc\n", "# Differential gain\n", "Aid = (hfe*Rc)/(Rin+hie)\n", "Aid = math.floor(Aid*1000)/1000\n", "#Common mode gain\n", "Acm = hfe*Rc/(2*Re*(1+hfe)+Rin+hie)\n", "#CMMR\n", "CMMR = 20*math.log10(Aid/Acm)\n", "CMMR = math.floor(CMMR*1000)/1000\n", "#output voltage\n", "Vid = v1-v2\n", "Vcm = (v1+v2)/2\n", "Vout = Aid*Vid+Acm*Vcm\n", "\n", "#Result\n", "print(\"(i) Operating point values:\\nIcq = %.3f mA\\nVcq = %.3f V\\n\\n(ii) Differential gain:\\nAid = %.3f\"%(Ic*1000,Vce,Aid))\n", "print(\"\\n(iii) Common mode gain:\\nAcm = %.4f\"%(math.floor(Acm*10000)/10000))\n", "print(\"\\n(iv) CMMR:\\nCMMR in dB = %.3f dB\\n\\n(v) Output Voltage:\\nVout = %.2f V\"%(CMMR,Vout))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "(i) Operating point values:\n", "Icq = 1.051 mA\n", "Vcq = 10.758 V\n", "\n", "(ii) Differential gain:\n", "Aid = 162.068\n", "\n", "(iii) Common mode gain:\n", "Acm = 0.3414\n", "\n", "(iv) CMMR:\n", "CMMR in dB = 53.527 dB\n", "\n", "(v) Output Voltage:\n", "Vout = 4.88 V\n" ] } ], "prompt_number": 19 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "example 1.4, Page No. 16" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# operating point , voltage gain and input/output impedance(refer fig 1.15)\n", "\n", "import math\n", "#Variable declaration\n", "Rc = 3.3*10**3 # collector resistor\n", "Rin = 150 # inputr resistance\n", "Re = 8.2*10**3 # emitter resistor\n", "Vcc = 12 # supply voltage\n", "beta = 100 # beta value\n", "Vbe = 0.7 # emitter-base junction voltage drop\n", "\n", "#Calculations\n", "# opearating point\n", "Ie = Ic = (Vcc-Vbe)/( (2*Re) + (Rin/beta))\n", "Ie = Ic = math.floor(Ic*10**6)/10**6\n", "Vce = Vcc+Vbe-Ic*Rc\n", "# Voltage gain\n", "re = (26*10**-3)/Ie\n", "Aid = Rc/re\n", "# input and output impedance\n", "Ri = 2*re*beta\n", "Ro = Rc\n", "\n", "#Result\n", "print(\"(i) Operating point values:\\nIcq = %.3f mA\\nVcq = %.4f V\\n\\n(ii) Voltage gain:\\nAid = %.2f\"%(Ic*1000,Vce,Aid))\n", "print(\"\\n(iii)input and output impedances:\\nRi = %.3f k-ohm\\nRo = %.1f k-ohm\"%(Ri/1000,Ro/1000)) " ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "(i) Operating point values:\n", "Icq = 0.688 mA\n", "Vcq = 10.4296 V\n", "\n", "(ii) Voltage gain:\n", "Aid = 87.32\n", "\n", "(iii)input and output impedances:\n", "Ri = 7.558 k-ohm\n", "Ro = 3.3 k-ohm\n" ] } ], "prompt_number": 35 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "example 1.5, Page No. 19" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# constant current in the circuit(refer fig 1.19(a)\n", "\n", "import math\n", "#Variable declaration\n", "Vee = 20.0 # supply voltage\n", "R1 = 4.7*10**3 # resistor R1\n", "R2 = 4.7*10**3 # resistor R2\n", "R3 = 2.2*10**3 # resistor R3\n", "Vbe = 0.7 # emitter-base junction voltage drop\n", "\n", "#Calcualtions\n", "Vb = (-Vee*R1)/(R1+R2)\n", "Ve = Vb - Vbe\n", "Ie = (Ve-(-Vee))/(R3) \n", "I = Ie = math.floor(Ie*10**5)/10**5\n", "\n", "#Result\n", "print(\"I = %.2f mA\"%(I*1000))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "I = 4.22 mA\n" ] } ], "prompt_number": 47 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "example 1.6, Page No.23" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Widlar current source(refer fig. 1.24)\n", "\n", "import math\n", "#Variable declaration\n", "Ic2 = 20*10**-6 # required collector current of 2nd Trasistor\n", "Vbe = 0.7 # emitter-base junction voltage drop\n", "Vcc = 30 # supply voltage\n", "R = 33.3*10**3 # Resistor R\n", "Vt = 26*10**-3 # thermal voltage \n", "\n", "#Calculations\n", "Ic1 = (Vcc-Vbe)/R\n", "Re = Vt*math.log(Ic1/Ic2)/Ic2\n", "\n", "#Result\n", "print(\"Re = %.2f k-ohm\"%(Re/1000))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Re = 4.92 k-ohm\n" ] } ], "prompt_number": 50 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "example 1.7, Page No. 24" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Widlar current source: value of Ic2\n", "\n", "import math\n", "# Variable declaration\n", "Iref = 1*10**-3 # reference current\n", "Re = 5*10**3 # emitter resistor\n", "Vt = 26*10**-3 # thermal voltage \n", "\n", "# Calculations\n", "Ic2_1 = 12*10**-6 # assumed value 1\n", "lhs1 = (Vt*math.log(Iref/Ic2_1))-(Ic2_1*Re)\n", "Ic2_2 = 22*10**-6 # assumed value 2\n", "lhs2 = (Vt*math.log(Iref/Ic2_2))-(Ic2_2*Re)\n", "lhs2 = math.ceil(lhs2*10**5)/10**5\n", "Ic2_3 = 20*10**-6 # assumed value 3\n", "lhs3 = (Vt*math.log(Iref/Ic2_3))-(Ic2_3*Re)\n", "\n", "#Result\n", "print(\"for Ic2 = %.0f micro-A, L.H.S = %.5f\"%(Ic2_1*10**6,lhs1))\n", "print(\"for Ic2 = %.0f micro-A, L.H.S = %.5f\"%(Ic2_2*10**6,lhs2))\n", "print(\"\\nhence actual value is less than but closer to %.0f micro-A\"%(Ic2_2*10**6))\n", "print(\"\\nfor Ic2 = %f micro-A, L.H.S = %.4f\"%(Ic2_3*10**6,lhs3))\n", "print(\"LHS is almost zero, so the value of Ic2 = %.0f micro-A\"%(Ic2_3*10**6))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "for Ic2 = 12 micro-A, L.H.S = 0.05499\n", "for Ic2 = 22 micro-A, L.H.S = -0.01076\n", "\n", "hence actual value is less than but closer to 22 micro-A\n", "\n", "for Ic2 = 20.000000 micro-A, L.H.S = 0.0017\n", "LHS is almost zero, so the value of Ic2 = 20 micro-A\n" ] } ], "prompt_number": 61 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "example 1.8, Page No.34" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# level shifting network (refer fig. 1.42)\n", "\n", "import math\n", "#Variable declaration\n", "Vi = 6.84 # input dc level\n", "R2 = 270 # resistor R2\n", "Vbe = 0.7 # emitter-base junction voltage drop\n", "\n", "# Calculations\n", "R1 = ((Vi-Vbe)*R2)-R2\n", "R1 = R1/1000\n", "#Result\n", "print(\"Required value of R to get 0V output level is %.3f k-ohm\"%(math.floor(R1*10**3)/1000))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Required value of R to get 0V output level is 1.387 k-ohm\n" ] } ], "prompt_number": 69 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "example 1.9, Page No. 36" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# differential and common mode output \n", "\n", "import math\n", "#Variable declaration\n", "Aid = 80.0 # differential gain\n", "CMMR = 95.0 # common mode rejection ratio\n", "V1 = 2*10**-6 # input voltage 1\n", "V2 = 1.6*10**-6 # input voltage 2\n", "\n", "#Calculations\n", "Aid = 10**(Aid/20)\n", "CMMR = 10.0**(CMMR/20)\n", "Vid = Aid*(V1-V2)\n", "Acm = Aid/CMMR\n", "Vcm = Acm*(V1+V2)/2\n", "\n", "#Result\n", "print(\"Vid = %.0f mV\\nVcm = %.2f micro-V\"%(Vid*10**3,Vcm*10**6))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Vid = 4 mV\n", "Vcm = 0.32 micro-V\n" ] } ], "prompt_number": 75 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "example 1.10, Page No. 37" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Common mode output\n", "\n", "import math\n", "#Variable declaration\n", "Aid = 125.0 # differential gain \n", "CMMR = 60.0 # common mode rejection ratio\n", "Vp = 4.0 # peak voltage \n", "#Calculations\n", "x = 10**(CMMR/20) # Aid/Acm\n", "Acm = Aid/x\n", "\n", "#Result\n", "print(\"Commode mode output is given by Acm*Vcm = %.1f*sin(200*pi*t)\"%(Vp*Acm))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Commode mode output is given by Acm*Vcm = 0.5*sin(200*pi*t)\n" ] } ], "prompt_number": 1 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "example 1.11, Page No.37" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Collector voltage and and differential voltage gain(refer fig 1.48)\n", "\n", "import math\n", "#Variable declaration\n", "Vbe = 0.7 # emitter-base junction voltage drop\n", "hfe = 100.0 # current gain\n", "hie = 3.9*10**3 # inpput impedance\n", "Rin = 1*10**3 # Source resistance\n", "Re = 27*10**3 # Emitter resistance\n", "Rc = 6.8*10**3 # collector resistance\n", "Vcc = 15 # supply voltage\n", "\n", "\n", "#Calculations\n", "Ie = Ic = (Vcc-Vbe)/((Rin/hfe)+2*Re)\n", "Vout1 = Vout2 = Vcc-Ic*Rc\n", "Aid = abs(hfe*Rc/(Rin+hie))\n", "\n", "#Result\n", "print(\"Vc1 = Vc2 = %.2f V\\nAid = %f \"%(Vout1,Aid))\n", "#Answer for Aid is wrong in the book" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Vc1 = Vc2 = 13.20 V\n", "Aid = 138.775510 \n" ] } ], "prompt_number": 3 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "example 1.12, Page No. 38" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Value of Resistance Re\n", "\n", "import math\n", "#Variable declaration\n", "Vcc = 10.0 # Supply voltage\n", "Vbe = 0.7 # emitter-base junction voltage drop\n", "Rc = 47*10**3 # Collector resistance\n", "hfe = 100.0 # current gain\n", "Vceq = 8.6 # quiescent collector emitter voltage\n", "\n", "#Calculations\n", "Ic = (Vcc+Vbe-Vceq)/Rc\n", "Re =(Vcc-Vbe)/(2*((1+hfe)/hfe))\n", "Re = math.floor(Re*10000)/10000\n", "Re = Re/(Ic*1000) # k-ohm\n", "\n", "#Result\n", "print(\"Re = %.2f k-ohm\"%(math.floor(Re*100)/100))\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Re = 103.03 k-ohm\n" ] } ], "prompt_number": 19 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "example 1.13, Page No. 38" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Differential amplifier parameter\n", "\n", "import math\n", "#Variable declaration\n", "Vbe = 0.712 # emitter-base junction voltage drop\n", "hfe = 500.0 # current gain\n", "hie = 18 *10**3 # inpput impedance\n", "Rin = 50 # Source resistance\n", "Re = 6.8*10**3 # Emitter resistance\n", "Rc = 4.7*10**3 # collector resistance\n", "Vcc = 10 # supply voltage\n", "\n", "#Calcualtions\n", "#(i)\n", "Ie = (Vcc -Vbe)/(2*Re)\n", "Ic = (hfe/(1+hfe))*Ie\n", "Vce = Vcc+Vbe-Ic*Rc\n", "Vce = math.floor(Vce*1000)/1000\n", "Ic = math.floor(Ic*10**7)/10**7\n", "Ic = Ic *1000 # mA\n", "#(ii)\n", "Ad = hfe*Rc/(2*(Rin+hie))\n", "Ad = math.floor(Ad*100)/100\n", "#(iii)\n", "Ri = 2*(Rin+hie)\n", "Ro = Rc\n", "\n", "#Result\n", "print(\"(i)\\nIcq =%.4f mA\\t\\tVce = %.3f V\\n\\n(ii)\\nAd = %.2f\\n\\n(iii)\\nRi = %.1f k-ohm\\t\\tRo = %.1f k-ohm\"%(Ic,Vce,Ad,Ri/1000.0,Ro/1000))\n", "# answer for Ri is wrong in the book" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "(i)\n", "Icq =0.6815 mA\t\tVce = 7.508 V\n", "\n", "(ii)\n", "Ad = 65.09\n", "\n", "(iii)\n", "Ri = 36.1 k-ohm\t\tRo = 4.7 k-ohm\n" ] } ], "prompt_number": 37 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "example 1.14, Page No. 39" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Current through the transistors(refer fig 1.50)\n", "\n", "import math\n", "#Variable declaration\n", "Q2 = 0.5 # Area of Q2 /Area of Q1\n", "Q3 = 0.25 # Area of Q3 /Area of Q1\n", "Q4 = 0.125 # Area of Q4 /Area of Q1\n", "Vcc = 15 # Supply voltage\n", "Vbe = 0.7 # emitter-base junction voltage drop\n", "R = 20*10**3 # Resistor R\n", "\n", "#Calculations\n", "I1 = (Vcc-Vbe)/R\n", "I2 = I1*Q2\n", "I3 = I1*Q3\n", "I4 = I1*Q4\n", "\n", "\n", "#Result\n", "print(\"I2 = %.3f mA\\nI3 = %.4f mA\\nI4 = %.3f mA\"%(math.floor(I2*10**6)/1000,math.floor(I3*10**7)/10000,I4*1000))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "I2 = 0.357 mA\n", "I3 = 0.1787 mA\n", "I4 = 0.089 mA\n" ] } ], "prompt_number": 50 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ " example 1.15, Page No. 39" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Current calculation in the circuit\n", "\n", "import math\n", "#Variable declaration\n", "Vz = 6.2 # zener voltage\n", "R1 = 4.7*10**3 # resistor R1\n", "R3 = 2.2*10**3 # resistor R3\n", "Vee = -20 # supply voltage\n", "Vbe = 0.7 # emitter-base junction voltage drop\n", "\n", "#Calcualtions\n", "Vb = Vee + Vz\n", "Ve = Vee+Vz-Vbe\n", "I = Ie = (Ve-Vee)/R3\n", "\n", "#Result\n", "print(\"I = %.1f mA\"%(I*1000))\n", "\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "I = 2.5 mA\n" ] } ], "prompt_number": 53 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "example 1.16, Page No.39" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Differential amplifier\n", "\n", "import math\n", "#Variable declaration\n", "Ie = 10**-3 # Emitter current\n", "Vbe = 0.7 # emitter-base junction voltage drop\n", "Rc = 4.7*10**3 # colloector Resistance\n", "Vcc = 12 # Supply voltage\n", "\n", "\n", "#Calculations\n", "Re = (Vcc-Vbe)/(Ie)\n", "Ic = Ic1 = Ic2 = Ie/2\n", "Vout = Vcc-Ic*Rc\n", "\n", "#Result\n", "print(\"(i) Re = %.1f k-ohm\\n\\n(ii) Vout = %.2f V\"%(Re/1000,Vout))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "(i) Re = 11.3 k-ohm\n", "\n", "(ii) Vout = 9.65 V\n" ] } ], "prompt_number": 4 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "example 1.17, Page No. 40" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Ie3, Vce1 and differential mode gain(refer fig. 1.54)\n", "\n", "import math\n", "#Variable declaration\n", "Vbe = 0.7 # emitter-base junction voltage drop\n", "hfe = 250.0 # current gain\n", "hie = 560 # inpput impedance for Q1 and Q2\n", "Rin = 1.0*10**3 # Source resistance\n", "Rb4 = 1.5*10**3 # Emitter resistance\n", "Rc = 1.0*10**3 # collector resistance\n", "Vcc = 12 # supply voltage\n", "\n", "# Calculations\n", "I = (Vcc-Vbe)/Rb4\n", "Ie3 = I\n", "Ie1 = Ie2 = Ie3/2\n", "Ic1 = Ie1\n", "Vce1 = Vcc+Vbe-Ic1*Rc\n", "Aid = hfe*Rc/(Rc+hie)\n", "\n", "#Result\n", "print(\"Ie3 = %.3f mA\\nVce1 = %.3f V\\nAid = %.2f\"%(Ie3*10**3,Vce1,math.floor(Aid*100)/100))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Ie3 = 7.533 mA\n", "Vce1 = 8.933 V\n", "Aid = 160.25\n" ] } ], "prompt_number": 9 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "example 1.18, Page No. 41" ] }, { "cell_type": "code", "collapsed": false, "input": [ "print(\"Theoretical example\")" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Theoretical example\n" ] } ], "prompt_number": 10 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "example 1.19, Page No. 41" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# DC shift and curretn in the circuit (refer fig. 1.55)\n", "\n", "import math\n", "#Variable declaration\n", "Vcc = 15.0 # supply voltage\n", "R1 = 10.0*10**3 # Resistor R1\n", "R2 = 5.0*10**3 # Resistor R2\n", "Vbe = 0.7 # emitter-base junction voltage drop\n", "\n", "#Calculations\n", "shift = (Vcc*R2/R1)+Vbe*(1-(R2/R1))\n", "I = (Vcc-Vbe)/R1\n", "\n", "#Result\n", "print(\"(Vin-Vout) = %.2f V\\n\\t I = %.2f mA\"%(shift, I*10**3))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "(Vin-Vout) = 7.85 V\n", "\t I = 1.43 mA\n" ] } ], "prompt_number": 18 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "example 1.20, Page No. 41" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# maximum possible closed loop gain\n", "\n", "import math\n", "#Variable declaration\n", "sr = 3*10**6 # slew rate in V/sec\n", "dV = 0.4 # input voltage variation\n", "dt = 12*10**-6 # time in which voltage varies\n", "\n", "#Calculations\n", "A = sr/(dV/dt)\n", "\n", "#Result\n", "print(\"Maximum closed loop gain = %.0f\"%A)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Maximum closed loop gain = 90\n" ] } ], "prompt_number": 20 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "example 1.21, Page No. 42" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# input bias and input offset current\n", "\n", "import math\n", "#Variable Declaration\n", "Vbe = 0.7 # emitter-base junction voltage drop\n", "beta1 = 100.0 # current gain for Q1\n", "beta2 = 125.0 # current gain for Q1\n", "Re = 39*10**3 # Emitter resistance\n", "Rc = 4.7*10**3 # collector resistance\n", "Vcc = 12 # supply voltage\n", "\n", "# Calculations\n", "Ie = (Vcc-Vbe)/Re\n", "Ie1 = Ie2 = Ie/2\n", "Ib1 = Ie1/beta1\n", "Ib2 = Ie2/beta2\n", "Ib = (Ib1+Ib2)/2\n", "Iios = abs(Ib1-Ib2)\n", "\n", "#Result\n", "print(\"Ib = %.4f micro-A\\nIios = %.5f micro-A\"%(Ib*10**6,Iios*10**6))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Ib = 1.3038 micro-A\n", "Iios = 0.28974 micro-A\n" ] } ], "prompt_number": 25 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "example 1.22, Page No. 42" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Maximum possible amplitude of output\n", "\n", "import math\n", "#Variable declaration\n", "f = 7000.0 # frequency of input sine wave\n", "Icq = 8*10**-6 # collector current\n", "Cc = 27*10**-12 # Capacitance\n", "\n", "#Calculations\n", "S = Icq/Cc\n", "Vm = S/(2*math.pi*f)\n", "\n", "#Result\n", "print(\"Maximum amplitude of output = %.3f V\"%(math.floor(Vm*1000)/1000))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Maximum amplitude of output = 6.736 V\n" ] } ], "prompt_number": 29 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "example 1.23, Page No. 42" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Slew rate\n", "\n", "import math\n", "#Variable declaration\n", "Vm = 3.8 # output amplitude\n", "tr = 4.5*10**-6 # required rise time\n", "S_741 = 0.5*10**-6 # slew rate of IC741 op-amp\n", "\n", "#Calculations\n", "del_V = (0.9-0.1)*Vm\n", "S = del_V/tr\n", "\n", "#Result\n", "print(\"Required slew rate = %.3f V/micro-s\"%(math.floor(S/10**3)/1000))\n", "print(\"Slew rate of IC 741 is 0.5V/usec which is too low as compared to the required value. Hence Ic 741 cannot be used.\")" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Required slew rate = 0.675 V/micro-s\n", "Slew rate of IC 741 is 0.5V/usec which is too low as compared to the required value. Hence Ic 741 cannot be used.\n" ] } ], "prompt_number": 34 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "example 1.24, Page No.43" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Maximum gain using op-amp\n", "\n", "import math\n", "#Variable declaration\n", "S = 0.4*10**6 # op-amp slew rate in V/sec\n", "Vm = 0.04 # maximum input \n", "w = 1.13*10**5 # freq in rad/sec\n", "\n", "#Calculations\n", "fm = w/(2*math.pi)\n", "V = S/(2*math.pi*fm)\n", "G = V/Vm\n", "\n", "#Result\n", "print(\"Gain = %.1f \"%G)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Gain = 88.5 \n" ] } ], "prompt_number": 36 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "example 1.25, Page No. 43" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# smallest and largest possible input bias current and input offset current\n", "\n", "import math\n", "#Variable declaration\n", "Ie = 400*10**-6 # total emitter bias current\n", "beta_min = 80 # minimum current gain\n", "beta_max = 200 # maximum current gain\n", "\n", "#Calculation\n", "Ie1 = Ie2 = Ie/2\n", "Ib1_1 = Ib2_1 = Ie1/(1+beta_min) # for beta =80\n", "Ib1_2 = Ib2_2 = Ie1/(1+beta_max)\n", "\n", "Ib_max = (Ib1_1+Ib2_1)/2\n", "Ib_min = (Ib1_2+Ib2_2)/2\n", "Iios = Ib_max-Ib_min\n", "\n", "#Result\n", "print(\"Largest input bias current = %.3f micro-A\\nSmallest input bias current = %.3f micro-A\"%(Ib_max*10**6,Ib_min*10**6))\n", "print(\"Largest input offset current = %.3f micro-A\"%(Iios*10**6))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Largest input bias current = 2.469 micro-A\n", "Smallest input bias current = 0.995 micro-A\n", "Largest input offset current = 1.474 micro-A\n" ] } ], "prompt_number": 44 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "example 1.26, Page No.43" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Collector current for each transistor(refer fig. 1.59)\n", "\n", "import math\n", "#Variable declaration\n", "Vbe = 0.715 # emitter-base junction voltage drop\n", "beta = 100.0 # Current gain\n", "Vcc = 10 # input voltage\n", "Rc1 = 5.6*10**3 # Collector resistance\n", "Rc2 = 1.0*10**3 # Collector resistance\n", "\n", "#Calculations\n", "I = (Vcc-Vbe)/Rc1\n", "Ic2 = (beta/(beta+4))*I\n", "\n", "#Result\n", "print(\"I = %.3f mA\\nIc2 = Ic3 = Ic4 = %.4f mA\"%(I*1000,math.floor(Ic2*10**7)/10000))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "I = 1.658 mA\n", "Ic2 = Ic3 = Ic4 = 1.5942 mA\n" ] } ], "prompt_number": 50 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "example 1.27, Page No. 44" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Differential amplifier parameter\n", "\n", "import math\n", "#Variable declaration\n", "beta = 100.0 # current gain\n", "Vbe = 0.715 # emitter-base junction voltage drop\n", "Vz = 6.2 # Zener Voltage\n", "Iz = 41*10**-3 # Zener Current \n", "Rc = 4.7*10**3 # Collector Current\n", "Rin = 500 # input resistance\n", "Rb = 68*10**3 # base voltage \n", "Re = 2.7*10**3 # emitter resistance\n", "Vcc = 10 # Supply Voltage\n", "hie = 1000.0 # input resistance\n", "\n", "#Calculations\n", "I = (Vcc-Vbe-Vz)/Rb\n", "I = math.floor(I*10**8)/10**8\n", "Ie3 = (Vcc-Vbe-Rb*I)/Re\n", "Ie3 = math.ceil(Ie3*10**7)/10**7\n", "Ic3 = (beta/(1+beta))*Ie3\n", "Ic3 = math.floor(Ic3*10**7)/10**7\n", "Ie = Ic3/2\n", "Ie = math.floor(Ie*10**7)/10**7\n", "Ic = beta*Ie/(1+beta)\n", "Ic = math.ceil(Ic*10**7)/10**7\n", "Vce = Vcc+Vbe-Ic*Rc\n", "Vce = math.floor(Vce*10**4)/10**4\n", "Aid = beta*Rc/(Rin+hie)\n", "Ri = Rin+2*hie\n", "\n", "#Result\n", "print(\"(i) Aid = %.3f\\n\\n(ii) input Resistance = %.1f k-ohm\\n\\n(iii) Icq = %.4f mA\\t\\tVceq = %.4f V\"%(Aid,Ri/1000,Ic*1000,Vce))\n", "#Value for input resistance is wrong in the book" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "(i) Aid = 313.333\n", "\n", "(ii) input Resistance = 2.5 k-ohm\n", "\n", "(iii) Icq = 1.1256 mA\t\tVceq = 5.4246 V\n" ] } ], "prompt_number": 77 } ], "metadata": {} } ] }