{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Chapter 10 Introduction to operational amplifiers"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Ex 10_1 PG-10.7"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Refer to the figure-10.5 shown\n",
      "\n",
      " when CMRR=100\n",
      "\n",
      " common mode gain Ac=50 \n",
      "\n",
      " output voltage is Vo=313.5 mV \n",
      "\n",
      "\n",
      " when CMRR=100000\n",
      "\n",
      " common mode gain Ac=0.05 \n",
      "\n",
      " output voltage is Vo=300.0135 mV \n",
      "\n"
     ]
    }
   ],
   "source": [
    "from __future__ import division\n",
    "print \"Refer to the figure-10.5 shown\"\n",
    "V1=300e-6#\n",
    "V2=240e-6#\n",
    "Vd=V1-V2#differential mode voltage \n",
    "Vc=(V1+V2)/2##common mode voltage \n",
    "Ad=5000##differential gain\n",
    "print \"\\n when CMRR=100\"\n",
    "CMRR=100##common mode rejection ratio\n",
    "Ac=Ad/CMRR#\n",
    "print \"\\n common mode gain Ac=%.f \\n\"%(Ac)\n",
    "Vo=Ad*Vd+Ac*Vc##output voltage\n",
    "print \" output voltage is Vo=%.1f mV \\n\"%(Vo*1e3)\n",
    "print \"\\n when CMRR=100000\"\n",
    "CMRR=1e5##common mode rejection ratio\n",
    "Ac=Ad/CMRR#\n",
    "print \"\\n common mode gain Ac=%.2f \\n\"%(Ac)\n",
    "Vo=Ad*Vd+Ac*Vc##output voltage\n",
    "print \" output voltage is Vo=%.4f mV \\n\"%(Vo*1e3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Ex 10_2 PG-10.17"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      " input bias current= 20 microA \n",
      "\n",
      "\n",
      " input offset current= 4 microA \n",
      "\n"
     ]
    }
   ],
   "source": [
    "Ib1=18##in microA\n",
    "Ib2=22##in microA\n",
    "Ib=(Ib1+Ib2)/2##input bias current\n",
    "Ib=Ib\n",
    "print \"\\n input bias current= %.0f microA \\n\"%(Ib)\n",
    "Iios=(Ib1-Ib2)##input offset current\n",
    "Iios=abs(Iios)#\n",
    "Iios=Iios\n",
    "print \"\\n input offset current= %.0f microA \\n\"%(Iios)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Ex 10_3 PG-10.17"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      " Iios=Ib1-Ib2=20\n",
      " ie Ib=(Ib1+Ib2)/2=60 ie Ib=(Ib1+Ib2)=120\n",
      " values of Ib1 andIb2 are\n",
      "  100 & -140 nA \n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "Iios=20##Input offset current in nA\n",
    "Ib=60##Input bias current in nA\n",
    "#Iios=Ib1-Ib2=20\n",
    "#Ib=(Ib1+Ib2)/2=60\n",
    "#ie Ib=(Ib1+Ib2)=120\n",
    "print \" Iios=Ib1-Ib2=20\"\n",
    "print \" ie Ib=(Ib1+Ib2)/2=60 ie Ib=(Ib1+Ib2)=120\"\n",
    "a=np.mat([[1 ,-1],[1, 1]])##coefficient of Ib1 and Ib2 for Iios and Ib\n",
    "b=np.mat([[20], [120]])##value of Iios and Ib\n",
    "x=(a*-1)*b\n",
    "print \" values of Ib1 andIb2 are\"\n",
    "print \"  %.0f & %0.0f nA \"%(x[0,0],x[1,0])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Ex 10_4 PG-10.35"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Refer to the figure-10.32 shown\n",
      "\n",
      " the gain is -4.7 (inverting amplifier) \n",
      "\n"
     ]
    }
   ],
   "source": [
    "print \"Refer to the figure-10.32 shown\"\n",
    "#the circuit is an inverting amplifier\n",
    "R1=10e3#\n",
    "Rf=47e3##feedback resistance\n",
    "A=-Rf/R1##gain of an inverting amplifier\n",
    "print \"\\n the gain is %.1f (inverting amplifier) \\n\"%(A)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Ex 10_5 PG-10.35"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "If Vm=0.5V then\n",
      "\n",
      " peak value of the output voltage Vo=2.5 V \n",
      "\n",
      "\n",
      " if Vm=5V then\n",
      "\n",
      " peak value of the output voltage Vo=25 V \n",
      "\n",
      "but the opamp output saturates at +/- 12V hence portion above +12V and\n",
      " below -12V will be clipped off.So 25V \n",
      " peak output is not practically possible it will show upto +/- 12V\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7ff30d02d110>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7ff2eadf8550>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from numpy import pi, sin\n",
    "import numpy as np\n",
    "%matplotlib inline\n",
    "from matplotlib import pyplot as plt\n",
    "\n",
    "R1=10e3#\n",
    "Rf=50e3##feedback resistance\n",
    "Vcc=12##supply voltage in volts\n",
    "A=-Rf/R1##gain of an inverting amplifier\n",
    "A=abs(A)##magnitude of the gain\n",
    "print \"If Vm=0.5V then\"\n",
    "Vm=0.5##peak value of the input voltage\n",
    "Vo=A*Vm##output voltage\n",
    "print \"\\n peak value of the output voltage Vo=%.1f V \\n\"%(Vo)\n",
    "print \"\\n if Vm=5V then\"\n",
    "Vm=5##peak value of the input voltage\n",
    "Vo1=A*Vm##output voltage\n",
    "print \"\\n peak value of the output voltage Vo=%.0f V \\n\"%(Vo1)\n",
    "print \"but the opamp output saturates at +/- 12V hence portion above +12V and\"\n",
    "print \" below -12V will be clipped off.So 25V \\n peak output is not practically possible it will show upto +/- 12V\"\n",
    "plt.subplot(2,1,1)        #input voltage Vin=0.5V peak\n",
    "x=np.arange(0,9,pi/100)\n",
    "y=0.5*sin(x)\n",
    "plt.plot(x,y)\n",
    "#plt.xtitle(\"(Vin)m=0.5V\" ,\"time\"%(\"Input voltage Vin= 0.5V peak\"\n",
    "plt.grid()\n",
    "plt.subplot(2,1,2)         #output voltage Vo=2.5V peak                  \n",
    "x=np.arange(0,9,pi/100)\n",
    "y=-Vo*sin(x)        #output is inverted \n",
    "plt.plot(x,y)\n",
    "plt.title(\"(Vin)m=0.5V\" )\n",
    "plt.xlabel(\"time\")\n",
    "plt.ylabel(\"Output voltage(inverted) Vo=2.5V peak\")\n",
    "plt.grid()\n",
    "plt.show()\n",
    "\n",
    "plt.subplot(2,1,1)        #input voltage Vin=5V peak\n",
    "x=np.arange(0,9,pi/100)\n",
    "y=5*sin(x)\n",
    "plt.plot(x,y)\n",
    "plt.title(\"(Vin)m=5V\" )\n",
    "plt.xlabel(\"time\")\n",
    "plt.ylabel(\"Input voltage Vin=5V peak\")\n",
    "plt.grid()\n",
    "plt.subplot(2,1,2)        #output voltage Vo=25V peak but clipped at + or-12V \n",
    "x=np.arange(0,9,pi/100)\n",
    "y=-Vo1*sin(x)       #output is inverted\n",
    "#y(find(y > 12)) =  12# \n",
    "#y(find(y < -12))= -12#\n",
    "plt.plot(x,y)\n",
    "plt.title(\"(Vin)m=5V\")\n",
    "plt.xlabel(\"time\")\n",
    "plt.ylabel(\"Output voltage(inverted) Vo=12V clipped\")\n",
    "plt.grid()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Ex 10_6 PG-10.36"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      " Reading on the AC voltmeter is 3.3234 V \n",
      "\n"
     ]
    }
   ],
   "source": [
    "from numpy import sqrt\n",
    "R1=10e3#\n",
    "Rf=47e3##feedback resistance\n",
    "Vcc=12##supply voltage\n",
    "A=-Rf/R1##gain of an inverting amplifier\n",
    "A=abs(A)##magnitude of the gain of an inverting amplifier\n",
    "Vin=2##peak to peak input voltage\n",
    "Voo=Vin*A##peak to peak output voltage\n",
    "#the AC voltmeter measures the rms value\n",
    "Vo=Voo/2##peak output voltage\n",
    "Vrms=Vo/sqrt(2)##rms value of the output voltage\n",
    "print \"\\n Reading on the AC voltmeter is %.4f V \\n\"%(Vrms)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Ex 10_7 PG-10.37"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      " peak to peak value of the output voltage Vo = -1 V \n",
      "\n",
      "\n",
      " voltage gain of the inverting amplifier  Af = -10 \n",
      " \n"
     ]
    },
    {
     "data": {
      "image/png": "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\nOOv5f1OiawJv4ryfAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f459d07d310>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "from matplotlib.pyplot import plot, subplot, title, xlabel, ylabel, show, grid\n",
    "subplot(2,1,1)    #input voltage Vin=0.5V peak\n",
    "from numpy import arange, pi, sqrt, sin\n",
    "\n",
    "R1=1e3#\n",
    "Rf=10e3##feedback resistance\n",
    "Vin=100e-3##input voltage peak to peak\n",
    "A=-Rf/R1##gain of an inverting amplifier\n",
    "Vo=A*Vin#\n",
    "print \"\\n peak to peak value of the output voltage Vo = %.0f V \\n\"%(Vo)\n",
    "print \"\\n voltage gain of the inverting amplifier  Af = %.0f \\n \"%(A)\n",
    "#plotting of the waveforms\n",
    "x=arange(0,9,pi/100)\n",
    "y=50*sin(x)\n",
    "plot(x,y)\n",
    "title(\"Input voltage Vin \")\n",
    "xlabel(\"time\")\n",
    "ylabel(\"Vin=100mV peak to peak\")\n",
    "grid()\n",
    "subplot(2,1,2)      #output voltage Vo=2.5V peak\n",
    "x=arange(0,9,pi/100)  \n",
    "y=-500*sin(x)\n",
    "plot(x,y)\n",
    "#xtitle(\"Output voltage Vo\" ,\"time\"%(\"Vo=1000mV peak to peak\"\n",
    "grid()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Ex 10_8 PG-10.40"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Refer to the figure-10.36 shown\n",
      "\n",
      " \n",
      " The gain of the non inverting amplifier is A=1+Rf/R1\n",
      "\n",
      "\n",
      " Therefore feedback resistance Rf=60 kohm \n",
      "\n"
     ]
    }
   ],
   "source": [
    "A=61##gain required for the non inverting amplifier\n",
    "R1=1e3#\n",
    "print \"Refer to the figure-10.36 shown\\n\"\n",
    "print \" \\n The gain of the non inverting amplifier is A=1+Rf/R1\"\n",
    "#the gain of the non inverting amplifier is A=1+Rf/R1\n",
    "x=A-1##x=Rf/R1\n",
    "Rf=x*R1#\n",
    "print \"\\n\\n Therefore feedback resistance Rf=%.0f kohm \\n\"%(Rf*1e-3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Ex 10_9 PG-10.40"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Gain is 11\n",
      "\n",
      "For Vin =0.5V \n",
      " Output voltage Vo=5.5 V \n",
      "\n",
      "For Vin =-3V \n",
      " Output voltage Vo=-33.0 V \n",
      "\n",
      "\n",
      " but Vo=-33V is not possible. Output will saturate at -12V \n",
      "\n",
      " And the remaining portion will be clipped from output.\n"
     ]
    }
   ],
   "source": [
    "R1=1e3#\n",
    "Rf=10e3##feedback resistance\n",
    "A=1+Rf/R1##gain of a non-inverting amplifier\n",
    "print \"Gain is %.0f\\n\"%(A)\n",
    "print \"For Vin =0.5V \"\n",
    "Vin=0.5##input voltage\n",
    "Vo=A*Vin#\n",
    "print \" Output voltage Vo=%.1f V \\n\"%(Vo)\n",
    "print \"For Vin =-3V \"\n",
    "Vin=-3##input voltage\n",
    "Vo=A*Vin#\n",
    "print \" Output voltage Vo=%.1f V \\n\"%(Vo)\n",
    "print \"\\n but Vo=-33V is not possible. Output will saturate at -12V \\n\"\n",
    "print \" And the remaining portion will be clipped from output.\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Ex 10_10 PG-10.48"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Refer to the figure-10.43 shown\n",
      " \n",
      "\n",
      " Vb=Va=0  ................(1)\n",
      "\n",
      " Vb=0 \n",
      " I1=(Vin-Vb)/R1=Vin/R1 \n",
      " I1=(Vb-Vx)/R2=-Vx/R2 \n",
      " \n",
      "   Vin/Rf=-Vx/R2\n",
      "\n",
      " =>Vx=-R2/R1*Vin........(2) \n",
      " \n",
      " now Vx=I2*R4 and (I1-I2)=(Vx-Vo)/R3 \n",
      "\n",
      " =>I2=Vx/R4 and I1-Vx/R4=(Vx-Vo)/R3 \n",
      " Therefore \n",
      " Vin/R1-Vx/R4=(Vx-Vo)/R3 ....\n",
      ".......using I1=Vin/R1 \n",
      " Vin/R1-Vx(1/R4+1/R3)=-Vo/R3 \n",
      " \n",
      " \n",
      "Vin/R1-(-R2/R1)*Vin*(1/R4+1/R3)=-Vo/R3 ........using (2) \n",
      "\n",
      " Vin*(1/R1+R2/R1*(1/R4+1/R3))=-Vo/R3 \n",
      " \n",
      " \n",
      "Vin=-(R1*R4/(R3*R4+R2*R3+R2*R4))*Vo \n",
      " \n",
      "\n",
      " Acl=Vo/Vin=-(R3*R4+R2*R3+R2*R4)/(R1*R4) \n",
      "\n",
      "\n",
      " closed loop gain Acl=-260 \n",
      "\n",
      "\n",
      " equivalent feedback resistance Rf= 260 kohm \n"
     ]
    }
   ],
   "source": [
    "print \"Refer to the figure-10.43 shown\\n \"\n",
    "#A is grounded so B is virtual ground\n",
    "#Vb=Va=0\n",
    "Vb=0#\n",
    "R1=1e3#\n",
    "R2=5e3#\n",
    "R3=5e3#\n",
    "R4=100#\n",
    "print \"\\n Vb=Va=0  ................(1)\"\n",
    "print \"\\n Vb=0 \\n I1=(Vin-Vb)/R1=Vin/R1 \\n I1=(Vb-Vx)/R2=-Vx/R2 \\n \\n   Vin/Rf=-Vx/R2\"\n",
    "print \"\\n =>Vx=-R2/R1*Vin........(2) \\n \\n now Vx=I2*R4 and (I1-I2)=(Vx-Vo)/R3 \\n\"\n",
    "print \" =>I2=Vx/R4 and I1-Vx/R4=(Vx-Vo)/R3 \\n Therefore \\n Vin/R1-Vx/R4=(Vx-Vo)/R3 ....\"\n",
    "print \".......using I1=Vin/R1 \\n Vin/R1-Vx(1/R4+1/R3)=-Vo/R3 \\n \\n \"\n",
    "print \"Vin/R1-(-R2/R1)*Vin*(1/R4+1/R3)=-Vo/R3 ........using (2) \\n\"\n",
    "print \" Vin*(1/R1+R2/R1*(1/R4+1/R3))=-Vo/R3 \\n \\n \"                 \n",
    "print \"Vin=-(R1*R4/(R3*R4+R2*R3+R2*R4))*Vo \\n \\n\"\n",
    "print \" Acl=Vo/Vin=-(R3*R4+R2*R3+R2*R4)/(R1*R4) \\n\"\n",
    "Acl=-(R3*R4+R2*R3+R2*R4)/(R1*R4)#\n",
    "print \"\\n closed loop gain Acl=%.0f \\n\"%(Acl)\n",
    "Acl=abs(Acl)#\n",
    "Rf=R1*Acl##equivalent feedback resistance\n",
    "print \"\\n equivalent feedback resistance Rf= %.0f kohm \"%(Rf*1e-3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Ex 10_11 PG-10.50"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Refer to the figure-10.45 and figure-10.45(a)shown\n",
      "\n",
      " output voltage Vo=30 V \n",
      "\n"
     ]
    }
   ],
   "source": [
    "print \"Refer to the figure-10.45 and figure-10.45(a)shown\"\n",
    "#the circuit is a non inverting amplifier\n",
    "Vin=10##input voltage\n",
    "#opamp input current is zero...\n",
    "R1=10e3##resistance connected to the -ve terminal of the amplifier\n",
    "R2=1e3##resistance connected to the +ve terminal of the amplifier to the input voltage \n",
    "R3=1e3###resistance connected to the +ve terminal of the amplifier to the gound\n",
    "Rf=50e3##feedback resistance\n",
    "I=Vin/(R2+R3)#\n",
    "Vb=I*R3#\n",
    "V0=(1+Rf/R1)*Vb##output voltage\n",
    "print \"\\n output voltage Vo=%.f V \\n\"%(V0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Ex 10_12 PG-10.51"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Refer to the figure-10.46 and figure-10.46(a)shown\n",
      "We split the circuit of the figure-10.46 as shown in figure-10.46(a)\n",
      "For first stage the circuit is a non-inverting amplifier\n",
      "Therefore Vo1 = 1.1*V1\n",
      "\n",
      " For the second stage we use superposition principle.\n",
      " We use each input at one time\n",
      "\n",
      "First we assume Vo1 is active and V2 is grounded as shown in figure10.46(b)\n",
      "Therefore Vo_ = -11.0*V1\n",
      "then we assume V2 is active and Vo1 is grounded as shown in figure10.46(c)\n",
      "Therefore Vo__ = 11.0*V2\n",
      "\n",
      "   Therefore output voltage Vo = Vo_ + Vo__= 11V2-11V1 \n",
      "  =>Vo=11(V2-V1)\n"
     ]
    }
   ],
   "source": [
    "print \"Refer to the figure-10.46 and figure-10.46(a)shown\"\n",
    "print \"We split the circuit of the figure-10.46 as shown in figure-10.46(a)\" \n",
    "print \"For first stage the circuit is a non-inverting amplifier\"\n",
    "Rf=10e3##feedback resistance for the first stage of the circuit\n",
    "R1=100e3##value of R1 for the first stage of the circuit \n",
    "from sympy import symbols\n",
    "V1=symbols('V1')##V1=Vin\n",
    "Vo1=(1+Rf/R1)*V1#\n",
    "print \"Therefore Vo1 =\",Vo1\n",
    "\n",
    "print \"\\n For the second stage we use superposition principle.\\n We use each input at one time\\n\"\n",
    "print \"First we assume Vo1 is active and V2 is grounded as shown in figure10.46(b)\"\n",
    "Rf1=100e3##feedback resistance for figure-10.46(b)\n",
    "R11=10e3##value of R1 for figure1-10.46(a)\n",
    "Vo_=-Rf1/R11*Vo1##when V2=0V as shown in figure-10.46(b)\n",
    "print \"Therefore Vo_ =\",Vo_\n",
    "\n",
    "print \"then we assume V2 is active and Vo1 is grounded as shown in figure10.46(c)\"\n",
    "V2=symbols('V2')##V2=Vin\n",
    "Vo__=(1+Rf1/R11)*V2##when Vo1=0V as shown in figure-10.46(c),it is a non inverting amplifier\n",
    "print \"Therefore Vo__ =\",Vo__\n",
    "print \"\\n   Therefore output voltage Vo = Vo_ + Vo__= 11V2-11V1 \"\n",
    "print \"  =>Vo=11(V2-V1)\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Ex 10_13 PG-10.62"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Refer to the figure-10.55 and shown\n",
      "\n",
      " output voltage Vout=-7 V \n",
      "\n"
     ]
    }
   ],
   "source": [
    "print \"Refer to the figure-10.55 and shown\"\n",
    "R1=1e3#\n",
    "Rf=1e3##feedback resistance\n",
    "Vin1=2#\n",
    "Vin2=1#\n",
    "Vin3=4#\n",
    "Vout=-(Vin1+Vin2+Vin3)*Rf/R1\n",
    "print \"\\n output voltage Vout=%.f V \\n\"%(Vout)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Ex 10_14 PG-10.62"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "   Vo = -(3V1 + 4V2 + 5V3)\n",
      "\n",
      "\n",
      "   R1= 40kohm  R2= 30kohm R3 = 24kohm\n",
      "\n",
      "\n",
      "   The circuit design is shown\n"
     ]
    }
   ],
   "source": [
    "print \"\\n   Vo = -(3V1 + 4V2 + 5V3)\\n\\n\"\n",
    "Rf=120##we assume feedback resistance to be equal to 120kohm\n",
    "R1=Rf/3##Rf/R1=3 given \n",
    "R2=Rf/4##Rf/R2=4 given \n",
    "R3=Rf/5##Rf/R3=5 given \n",
    "print \"   R1= %.0fkohm  R2= %.0fkohm R3 = %.0fkohm\\n\"%(R1,R2,R3)\n",
    "print \"\\n   The circuit design is shown\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Ex 10_16 PG-10.64"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      " Therefore output voltage is Vo=12 V \n",
      "\n",
      "\n",
      " Vo=12 \n",
      "\n"
     ]
    }
   ],
   "source": [
    "## print \"Refer to the figure-10.58 and figure-10.58(a)shown\"\n",
    "R1=1e3#\n",
    "R2=R1#\n",
    "Rf=5e3##feedback resistance\n",
    "R=1e3##resistance connected to the inverting terminal\n",
    "V1=1##first input voltage at the non inverting terminal\n",
    "V2=3##second input voltage at the non inverting terminal\n",
    "Vb=(V1*R2+V2*R1)/(R1+R2)##voltage at the non inverting terminal\n",
    "Vo=(1+Rf/R)*Vb##output voltage \n",
    "print \"\\n Therefore output voltage is Vo=%.0f V \\n\"%(Vo)\n",
    "#alternatively we can find the output voltage by the following equation\n",
    "Vo1=(R2*(R+Rf))/(R*(R1+R2))*V1+(R1*(R+Rf))/(R*(R1+R2))*V2 \n",
    "print \"\\n Vo=%.0f \\n\"%(Vo1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Ex 10_17 PG-10.65"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Refer to the figure-10.59 shown\n",
      "\n",
      " Therefore output voltage is Vo=-0.5 V \n",
      "\n"
     ]
    }
   ],
   "source": [
    "print \"Refer to the figure-10.59 shown\"\n",
    "Rf=10e3##feedback resistance\n",
    "R1=10e3#\n",
    "R2=20e3#\n",
    "R3=30e3#\n",
    "R4=40e3#\n",
    "V1=-1##first input voltage at the inverting terminal\n",
    "V2=2##second input voltage at the  inverting terminal\n",
    "V3=3##third input voltage at the inverting terminal\n",
    "V4=-2##fourth input voltage at the inverting terminal\n",
    "Vo=-(Rf/R1*V1+Rf/R2*V2+Rf/R3*V3+Rf/R4*V4)##output voltage\n",
    "print \"\\n Therefore output voltage is Vo=%.1f V \\n\"%(Vo)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Ex 10_18 PG-10.66"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      " Therefore output voltage is Vo=-20 V \n",
      "\n"
     ]
    }
   ],
   "source": [
    "Rf=1e6##feedback resistance\n",
    "R1=200e3#\n",
    "R2=250e3#\n",
    "R3=500e3#\n",
    "V1=-2##first input voltage at the inverting terminal\n",
    "V2=2##second input voltage at the  inverting terminal\n",
    "V3=11##third input voltage at the inverting terminal\n",
    "Vo=-(Rf/R1*V1+Rf/R2*V2+Rf/R3*V3)##output voltage\n",
    "print \"\\n Therefore output voltage is Vo=%.0f V \\n\"%(Vo)\n",
    "#in the book the output Vo=-20V if the value of V3=11V \n",
    "#but in the question the value of V3=1V so\n",
    "#I have taken V3=11V so that the Vo=-20V "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Ex 10_19 PG-10.66"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      " Therefore output voltage is Vo= 6 V \n",
      "\n"
     ]
    }
   ],
   "source": [
    "Rf=60e3##feedback resistance\n",
    "R1=10e3#\n",
    "R2=20e3#\n",
    "R3=30e3#\n",
    "V1=-1##first input voltage at the inverting terminal\n",
    "V2=-2##second input voltage at the  inverting terminal\n",
    "V3=3##third input voltage at the inverting terminal\n",
    "Vo=-(Rf/R1*V1+Rf/R2*V2+Rf/R3*V3)##output voltage\n",
    "print \"\\n Therefore output voltage is Vo= %.0f V \\n\"%(Vo)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Ex 10_20 PG-10.67"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "   Vo = -(0.1V1 + 0.5V2 + 20V3)\n",
      "\n",
      "\n",
      "   R1= 100 kohm  R2= 20 kohm R3 = 500 ohm\n",
      "\n",
      "\n",
      "   The circuit design is shown\n"
     ]
    }
   ],
   "source": [
    "from __future__ import division\n",
    "print \"\\n   Vo = -(0.1V1 + 0.5V2 + 20V3)\\n\\n\"\n",
    "Rf=10##we assume feedback resistance to be equal to 10kohm\n",
    "R1=Rf/0.1##Rf/R1=0.1 given \n",
    "R2=Rf/0.5##Rf/R2=0.5 given \n",
    "R3=Rf/20##Rf/R3=20 given \n",
    "print \"   R1= %.0f kohm  R2= %.0f kohm R3 = %.0f ohm\\n\"%(R1,R2,R3*1e3)\n",
    "print \"\\n   The circuit design is shown\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Ex 10_21 PG-10.70"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "   Vo = (2V1 - 3V2 + 4V3 - 5V4)\n",
      "\n",
      "\n",
      "   The positive terms and negative terms can be added separately\n",
      "\n",
      "\n",
      "\n",
      "   Vo1 = (2V1 + 4V3 )\n",
      "\n",
      "   Therefore R1= 50kohm   R3 = 25kohm\n",
      "\n",
      "\n",
      "   Vo2 = -(3V2 + 5V4)\n",
      "\n",
      "   Therefore R2= 40kohm   R4 = 24kohm\n",
      "\n",
      "\n",
      "   The output voltage is Vo = Vo2-Vo1 = (2V1 - 3V2 + 4V3 - 5V4)\n",
      "\n",
      "   The circuit design is shown\n",
      "\n",
      "   For the subtractor we use R = 100kohm  \n"
     ]
    }
   ],
   "source": [
    "from __future__ import division\n",
    "print \"\\n   Vo = (2V1 - 3V2 + 4V3 - 5V4)\\n\\n\"\n",
    "print \"   The positive terms and negative terms can be added separately\\n\\n\"\n",
    "print \"\\n   Vo1 = (2V1 + 4V3 )\\n\"\n",
    "Rf1=100##we assume feedback resistance to be equal to 100kohm\n",
    "R1=Rf1/2##Rf/R1=2 given \n",
    "R3=Rf1/4##Rf/R3=4 given \n",
    "print \"   Therefore R1= %.0fkohm   R3 = %.0fkohm\\n\"%(R1,R3)\n",
    "\n",
    "print \"\\n   Vo2 = -(3V2 + 5V4)\\n\"\n",
    "Rf2=120##we assume feedback resistance to be equal to 120kohm\n",
    "R2=Rf2/3##Rf/R2=3 given \n",
    "R4=Rf2/5##Rf/R4=5 given \n",
    "print \"   Therefore R2= %.0fkohm   R4 = %.0fkohm\\n\"%(R2,R4)\n",
    "print \"\\n   The output voltage is Vo = Vo2-Vo1 = (2V1 - 3V2 + 4V3 - 5V4)\"\n",
    "print \"\\n   The circuit design is shown\"\n",
    "print \"\\n   For the subtractor we use R = 100kohm  \""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Ex 10_22 PG-10.76"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "   We integrate Vin ie Vo = -0.06*integrate(sin4*pi*100)\n",
      "\n",
      "\n",
      "Enter the value of t (between 0 and 1) :  0.2451\n",
      "-0.000913414734457563\n"
     ]
    }
   ],
   "source": [
    "from __future__ import division\n",
    "R1=100e3#\n",
    "Cf=1e-6#\n",
    "Vm=6e-3##peak value of the input voltage\n",
    "fr=2e3##frequency  supplied at the input\n",
    "w=2*pi*fr##angular frequency in rad/s\n",
    "a=-Vm/(R1*Cf)#constant \n",
    "print \"\\n   We integrate Vin ie Vo = %.2f*integrate(sin4*pi*100)\\n\\n\"%(a)\n",
    "def f(x):\n",
    "    y=sin(w*x)\n",
    "    return y\n",
    "t=input('Enter the value of t (between 0 and 1) :  ')\n",
    "#the limit is from 0 to t\n",
    "from sympy.mpmath import quad, sin,pi\n",
    "I=quad(f,[0,t])##we should enter the value of t \n",
    "x=I*a#\n",
    "print x#                    "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
