{
 "metadata": {
  "name": "",
  "signature": "sha256:d28d6fefe327ad9c35c91c07dc65a3c9786e6cbf8dfe4609fa49a329edf25284"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "heading",
     "level": 1,
     "metadata": {},
     "source": [
      "Chapter10-Feedback Amplifier"
     ]
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Ex1-pg338"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "##Ex10_1\n",
      "import math\n",
      "Av = 80.##voltage gain\n",
      "beta = 0.001##feedback ratio\n",
      "print'%s %.2f %s'%(\"Av = \",(Av),\"\")\n",
      "print'%s %.4f %s'%(\"beta = \",(beta),\"\")\n",
      "Avf = Av/(1+beta*Av)##gain with negative feedback\n",
      "print'%s %.2f %s'%(\"Avf = Av/(1+beta*Av) = \",(Avf),\"\")\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Av =  80.00 \n",
        "beta =  0.0010 \n",
        "Avf = Av/(1+beta*Av) =  74.07 \n"
       ]
      }
     ],
     "prompt_number": 1
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Ex2-pg338"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "##Ex10_2\n",
      "import math\n",
      "Av = 50.##voltage gain\n",
      "beta = 0.01##feedback ratio\n",
      "BW = 100.*10**3##bandwidth\n",
      "print'%s %.2f %s'%(\"Av = \",(Av),\"\")\n",
      "print'%s %.2f %s'%(\"beta = \",(beta),\"\")\n",
      "print'%s %.2f %s'%(\"Bandwidth = \",(BW),\"Hz\")\n",
      "Avf = Av/(1+beta*Av)##gain with negative feedback\n",
      "print'%s %.2f %s'%(\"Avf = Av/(1+beta*Av) = \",(Avf),\"\")\n",
      "BWf = BW*(1+beta*Av)##bandwidth with negative feedback\n",
      "print'%s %.2f %s'%(\"(B.W)f = \",(BWf),\"Hz\")\n",
      "\n",
      "\n",
      "## note : using variable \"BW\" instad of \"B.W\" ... as, if using B.W the software takes it as a function.\n",
      "## similarly using \"BWf\" instead of (B.W)f.\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Av =  50.00 \n",
        "beta =  0.01 \n",
        "Bandwidth =  100000.00 Hz\n",
        "Avf = Av/(1+beta*Av) =  33.33 \n",
        "(B.W)f =  150000.00 Hz\n"
       ]
      }
     ],
     "prompt_number": 2
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Ex3-pg341"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "##Ex10_3\n",
      "import math\n",
      "Av = 200.## voltage gain\n",
      "D = 0.05## harmonic distortion in amplifier\n",
      "Df = 0.02##final reduced distortion\n",
      "beta = (D/Df-1.)/Av##feedback gain\n",
      "print'%s %.2f %s'%(\"Av = \",(Av),\"\")\n",
      "print'%s %.2f %s'%(\"D = \",(D),\"\")\n",
      "print'%s %.2f %s'%(\"Df = \",(Df),\"\")\n",
      "print'%s %.2f %s'%(\"beta = (D/Df - 1)/Av = \",(beta),\"\")\n",
      "print'%s %.2f %s'%(\"beta = \",(beta*100.),\"%\")\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Av =  200.00 \n",
        "D =  0.05 \n",
        "Df =  0.02 \n",
        "beta = (D/Df - 1)/Av =  0.01 \n",
        "beta =  0.75 %\n"
       ]
      }
     ],
     "prompt_number": 3
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Ex4-pg341"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "##Ex10_4\n",
      "import math\n",
      "Av1 = 100.##initial voltage gain\n",
      "beta = 0.001##feedback ratio\n",
      "print'%s %.2f %s'%(\"Av1 = \",(Av1),\"\")\n",
      "print'%s %.4f %s'%(\"beta = \",(beta),\"\")\n",
      "Af1 = Av1/(1+beta*Av1)##initial gain with negative feedback\n",
      "print'%s %.2f %s'%(\"Af1 = Av1/(1+beta*Av1) = \",(Af1),\"\")\n",
      "\n",
      "Av2 = 150.##final voltage gain\n",
      "beta = 0.001##feedback ratio\n",
      "print'%s %.2f %s'%(\"Av2 = \",(Av2),\"\")\n",
      "print'%s %.4f %s'%(\"beta = \",(beta),\"\")\n",
      "Af2 = Av2/(1+beta*Av2)##final gain with negative feedback\n",
      "print'%s %.2f %s'%(\"Af2 = Av2/(1+beta*Av2) = \",(Af2),\"\")\n",
      "\n",
      "change_in_gain = Af2 - Af1##required change in gain\n",
      "print'%s %.2f %s'%(\"change in gain required = Af2 - Af1 = \",(change_in_gain),\"\")\n",
      "delta_Avf = change_in_gain/Af1\n",
      "print'%s %.2f %s'%(\"delta_Avf = Af2-Af1/Af1 = \",(delta_Avf),\"%\")\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Av1 =  100.00 \n",
        "beta =  0.0010 \n",
        "Af1 = Av1/(1+beta*Av1) =  90.91 \n",
        "Av2 =  150.00 \n",
        "beta =  0.0010 \n",
        "Af2 = Av2/(1+beta*Av2) =  130.43 \n",
        "change in gain required = Af2 - Af1 =  39.53 \n",
        "delta_Avf = Af2-Af1/Af1 =  0.43 %\n"
       ]
      }
     ],
     "prompt_number": 4
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Ex5-pg342"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "##Ex10_5\n",
      "import math\n",
      "Av = 40.##voltage gain in decibles\n",
      "print'%s %.2f %s'%(\"Av = \",(Av),\"dB\")\n",
      "Av = 10**(Av/20.)##voltage gain in V/V\n",
      "print'%s %.2f %s'%(\"Av = \",(Av),\"\")\n",
      "Avf = 20##voltage gain with negative feedback in decibles\n",
      "print'%s %.2f %s'%(\"Avf = \",(Avf),\"dB\")\n",
      "Avf = 10^(Avf/20)##voltage gain with negative feedback in V/V\n",
      "print'%s %.2f %s'%(\"Avf = \",(Avf),\"\")\n",
      "beta = ((Av/Avf)-1)/Av##feedback ratio\n",
      "print'%s %.2f %s'%(\"beta = (Av/Avf - 1)/Av = \",(beta),\"\")\n",
      "\n",
      "\n",
      "\n",
      "## note: solution in the textbook for the above problem is wrong.\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Av =  40.00 dB\n",
        "Av =  100.00 \n",
        "Avf =  20.00 dB\n",
        "Avf =  11.00 \n",
        "beta = (Av/Avf - 1)/Av =  0.08 \n"
       ]
      }
     ],
     "prompt_number": 5
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Ex6-pg342"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "##Ex10_6\n",
      "import math\n",
      "Av = 100.##voltage gain\n",
      "beta = 0.05##feedback ratio\n",
      "BW = 400.*10**3 ##bandwidth\n",
      "print'%s %.2f %s'%(\"Av = \",(Av),\"\")\n",
      "print'%s %.2f %s'%(\"beta = \",(beta),\"\")\n",
      "print'%s %.2f %s'%(\"B.W. = \",(BW),\"Hz\")\n",
      "Af = Av/(1+beta*Av)##gain with negative feedback\n",
      "print'%s %.2f %s'%(\"Af = Av/(1+beta*Av) = \",(Af),\"\")\n",
      "BWf = BW*(1+beta*Av)##bandwidth with negative feedback\n",
      "print'%s %.2f %s'%(\"(B.W)f = \",(BWf),\"Hz\")\n",
      "\n",
      "\n",
      "## note : using variable \"BW\" instad of \"B.W\" ... as, if using B.W the software takes it as a function.\n",
      "## similarly using \"BWf\" instead of (B.W)f.\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Av =  100.00 \n",
        "beta =  0.05 \n",
        "B.W. =  400000.00 Hz\n",
        "Af = Av/(1+beta*Av) =  16.67 \n",
        "(B.W)f =  2400000.00 Hz\n"
       ]
      }
     ],
     "prompt_number": 6
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Ex7-pg343"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "##Ex10_7\n",
      "import math\n",
      "Po = 100.##output power\n",
      "RL = 10.##load resistance\n",
      "print'%s %.2f %s'%(\"Po = \",(Po),\"W\")\n",
      "print'%s %.2f %s'%(\"RL = \",(RL),\"ohm\")\n",
      "vo = (RL*Po)**0.5##output voltage\n",
      "vi = 2##input voltage\n",
      "print'%s %.2f %s'%(\"vo = (Rl*Po)^0.5 = \",(vo),\"V\")\n",
      "print'%s %.2f %s'%(\"vi = \",(vi),\"V\")\n",
      "Av = vo/vi##voltage gain\n",
      "print'%s %.2f %s'%(\"Av = vo/vi = \",(Av),\"\")\n",
      "D = 0.04## harmonic distortion in amplifier\n",
      "Df = 0.0002##distortion after feedback\n",
      "beta = (D/Df-1.)/Av##feedback gain\n",
      "print'%s %.2f %s'%(\"D = \",(D),\"\")\n",
      "print'%s %.4f %s'%(\"Df = \",(Df),\"\")\n",
      "print'%s %.2f %s'%(\"beta = (D/Df - 1)/Av = \",(beta),\"\")\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Po =  100.00 W\n",
        "RL =  10.00 ohm\n",
        "vo = (Rl*Po)^0.5 =  31.62 V\n",
        "vi =  2.00 V\n",
        "Av = vo/vi =  15.81 \n",
        "D =  0.04 \n",
        "Df =  0.0002 \n",
        "beta = (D/Df - 1)/Av =  12.59 \n"
       ]
      }
     ],
     "prompt_number": 7
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Ex8-pg343"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "##Ex10_8\n",
      "import math\n",
      "BW = 500.*10**3##bandwidth\n",
      "A = 200.##gain of amplifier\n",
      "BWf = 2.*10**6##bandwidth with negative feedback\n",
      "print'%s %.2f %s'%(\"B.W = \",(BW),\"HZ\")\n",
      "print'%s %.2f %s'%(\"A = \",(A),\"\")\n",
      "print'%s %.2f %s'%(\"(B.W)f = \",(BWf),\"Hz\")\n",
      "beta = ((BWf/BW)-1)/A##feedback ratio\n",
      "print'%s %.2f %s'%(\"beta = ((B.W)f/B.W - 1)/A = \",(beta),\"\")\n",
      "print'%s %.2f %s'%(\"beta = \",(beta*100.),\"%\")\n",
      "\n",
      "## note : using variable \"BW\" instad of \"B.W\" ... as, if using B.W the software takes it as a function.\n",
      "## similarly using \"BWf\" instead of (B.W)f.\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "B.W =  500000.00 HZ\n",
        "A =  200.00 \n",
        "(B.W)f =  2000000.00 Hz\n",
        "beta = ((B.W)f/B.W - 1)/A =  0.01 \n",
        "beta =  1.50 %\n"
       ]
      }
     ],
     "prompt_number": 8
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Ex9-pg344"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "##Ex10_9\n",
      "import math\n",
      "A = 150.##gain of amplifier\n",
      "beta = 0.05##feedback ratio\n",
      "print'%s %.2f %s'%(\"A = \",(A),\"\")\n",
      "print'%s %.2f %s'%(\"beta = \",(beta),\"\")\n",
      "Af = A/(1.+beta*A)##gain with negative feedback\n",
      "print'%s %.2f %s'%(\"Af = A/(1+beta*A) = \",(Af),\"\")\n",
      "fL = 20*10^3##lower 3dB frequency\n",
      "fU = 160*10^3##upper 3dB frequency\n",
      "print'%s %.2f %s'%(\"fL = \",(fL),\"Hz\")\n",
      "print'%s %.2f %s'%(\"fU = \",(fU),\"Hz\")\n",
      "fLf = fL/(1.+beta*A)##lower 3dB gain with negative feedback\n",
      "print'%s %.2f %s'%(\"fLf = fL/(1+beta*A) = \",(fLf),\"Hz\")\n",
      "fUf = fU*(1+beta*A)##upper 3dB gain with negative feedback\n",
      "print'%s %.2f %s'%(\"fUf = fU*(1+beta*A) = \",(fUf),\"Hz\")\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "A =  150.00 \n",
        "beta =  0.05 \n",
        "Af = A/(1+beta*A) =  17.65 \n",
        "fL =  203.00 Hz\n",
        "fU =  1603.00 Hz\n",
        "fLf = fL/(1+beta*A) =  23.88 Hz\n",
        "fUf = fU*(1+beta*A) =  13625.50 Hz\n"
       ]
      }
     ],
     "prompt_number": 9
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Ex10-pg344"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "##Ex10_10\n",
      "import math\n",
      "##parameters of emitter follower circuit:\n",
      "hie = 1.1*10**3##input resistance\n",
      "hfe = 80.##current gain\n",
      "hoe = 2.*10**-5##output conductance\n",
      "Re = 2.2*10**3##emitter resistance\n",
      "print'%s %.2f %s'%(\"hie = \",(hie),\"ohm\")\n",
      "print'%s %.2f %s'%(\"hfe = \",(hfe),\"\")\n",
      "print'%s %.2e %s'%(\"hoe = \",(hoe),\"mho\")\n",
      "print'%s %.2f %s'%(\"Re = \",(Re),\"ohm\")\n",
      "gm = hfe/hie\n",
      "Rif = hie*(1.+gm*Re)##input resistance with feedback\n",
      "print'%s %.2f %s'%(\"Rif = hie*(1+gm*Re) = \",(Rif),\"ohm\")\n",
      "Rof = hie/(1.+hfe)##output resistance with feedback\n",
      "print'%s %.2f %s'%(\"Rof = hie/(1+hfe) = \",(Rof),\"ohm\")\n",
      "Avf = gm*Re/(1+gm*Re)##voltage gain with negative feedback\n",
      "print'%s %.2f %s'%(\"Avf = gm*Re/(1+gm*Re) = \",(Avf),\"\")\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "hie =  1100.00 ohm\n",
        "hfe =  80.00 \n",
        "hoe =  2.00e-05 mho\n",
        "Re =  2200.00 ohm\n",
        "Rif = hie*(1+gm*Re) =  177100.00 ohm\n",
        "Rof = hie/(1+hfe) =  13.58 ohm\n",
        "Avf = gm*Re/(1+gm*Re) =  0.99 \n"
       ]
      }
     ],
     "prompt_number": 10
    }
   ],
   "metadata": {}
  }
 ]
}