{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Chapter 3 - Analog to Digital Converters & Digital Voltmeters"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example 1 - pg 3_5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Resolution (mV/LSB) =  20.0\n",
      "digital output voltage (LSBs) =  64.0\n",
      "Binary equivalent of 64 is 0b1000000\n"
     ]
    }
   ],
   "source": [
    "#Chapter-3,Example3_1,pg 3_5\n",
    "#calculate the Resolution and digital output voltage\n",
    "#given\n",
    "n=8\n",
    "Vifs=5.1\n",
    "Vi=1.28\n",
    "#calculations\n",
    "Res1=2**n\n",
    "Res2=Vifs/((2**n)-1)\n",
    "Res=Res2*1000#in mv/LSB\n",
    "D=Vi/Res2\n",
    "strin=bin(64)\n",
    "#results\n",
    "print\"Resolution (mV/LSB) = \",Res\n",
    "print\"digital output voltage (LSBs) = \",D\n",
    "print\"Binary equivalent of 64 is\",strin"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example 2 - pg 3_6"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "quantisation error (mV) =  0.5\n"
     ]
    }
   ],
   "source": [
    "#Chapter-3,Example3_2,pg 3_6\n",
    "#calculate the quantisation error\n",
    "#given\n",
    "Vifs=4.095\n",
    "n=12.\n",
    "#calculations\n",
    "Qe=Vifs/(((2**n)-1)*2)\n",
    "#results\n",
    "print\"quantisation error (mV) = \",round(Qe*1000.,1)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example 3 - pg 3_10"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "In case 1, t2 (ms) =  83.33\n",
      "In case 2, t2 (ms) =  166.66\n"
     ]
    }
   ],
   "source": [
    "#Chapter-3,Example3_3,pg 3_10\n",
    "#calculate the value of t2 in both cases\n",
    "#given\n",
    "V1=100.*10**-3\n",
    "Vr=100.*10**-3\n",
    "t1=83.33\n",
    "Vi=200.*10**-3#input voltage\n",
    "#calculations\n",
    "t2=(V1/Vr)*t1\n",
    "t22=(Vi/Vr)*t1\n",
    "#results\n",
    "print\"In case 1, t2 (ms) = \",t2\n",
    "print\"In case 2, t2 (ms) = \",t22\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example 4 - pg 3_10"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "digital output (counts) =  1000.0\n"
     ]
    }
   ],
   "source": [
    "#Chapter-3,Example3_4,pg 3_10\n",
    "#calculate the digital output\n",
    "#given\n",
    "fclk=12.*10**3#clock frequency\n",
    "t1=83.33*10**-3\n",
    "V1=100.*10**-3\n",
    "Vr=100.*10**-3\n",
    "#calculations\n",
    "D=fclk*t1*(V1/Vr)\n",
    "#results\n",
    "print\"digital output (counts) = \",round(D,0)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example 5 - pg 3_13"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "conversion time (musec) =  9.0\n"
     ]
    }
   ],
   "source": [
    "#Chapter-3,Example3_5,pg 3_13\n",
    "#calculate the conversion time\n",
    "#given\n",
    "F=1*10**6\n",
    "n=8\n",
    "#calculations\n",
    "T=1./F\n",
    "Tc=T*(n+1)\n",
    "#results\n",
    "print\"conversion time (musec) = \",Tc*10**6\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example 6 - pg 3_15"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "maximum input frequency (Hz) =  69.08\n"
     ]
    }
   ],
   "source": [
    "#Chapter-3,Example3_6,pg 3_15\n",
    "#calculate the maximum input frequency\n",
    "import math\n",
    "#given\n",
    "Tc=9*10**-6\n",
    "n=8\n",
    "#calculations\n",
    "fmax=1./(2*math.pi*Tc*(2**n))\n",
    "#results\n",
    "print\"maximum input frequency (Hz) = \",round(fmax,2)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example 7 - pg 3_37"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "least diffrence in readings for 50V range (V) =  0.05\n"
     ]
    }
   ],
   "source": [
    "#Chapter-3,Example3_7,pg 3_37\n",
    "#calculate the least difference in readings\n",
    "#given\n",
    "n=3.#3 full digits\n",
    "#calculations\n",
    "R=1./(10**n)\n",
    "#for 1V range\n",
    "Res1=1*R\n",
    "#for 50V range\n",
    "Res2=50*R\n",
    "#results\n",
    "print\"least diffrence in readings for 50V range (V) = \",Res2\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example 8 - pg 3_38"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "error when reading is 5V (V) =  0.035\n",
      "percent error when reading is 0.1V (percent) =  10.5\n"
     ]
    }
   ],
   "source": [
    "#Chapter-3,Example3_8,pg 3_38\n",
    "#calculate the percent error \n",
    "#given\n",
    "n=3.\n",
    "#calculations and results\n",
    "R=1./(10**n)\n",
    "#for 10V range\n",
    "R=R*10.\n",
    "err1=R#1-digit error\n",
    "#reading is 5V\n",
    "err=(0.5/100)*5#error due to reading\n",
    "errt=err1+err#total error\n",
    "print\"error when reading is 5V (V) = \",errt\n",
    "\n",
    "#reading is 0.1V\n",
    "err=(0.5/100)*0.1#error due to reading\n",
    "errt=err+err1#total error\n",
    "errp=(errt/0.1)*100\n",
    "print\"percent error when reading is 0.1V (percent) = \",errp"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example 9 - pg 3_38"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "senstivity of meter (V) =  1e-06\n"
     ]
    }
   ],
   "source": [
    "#Chapter-3,Example3_9,pg 3_38\n",
    "#calculate the senstivity of meter\n",
    "#given\n",
    "n=4.\n",
    "fsmin=10*10**-3#full scale value on min. range\n",
    "#calculations\n",
    "R=1/(10**n)\n",
    "S=fsmin*R\n",
    "#results\n",
    "print\"senstivity of meter (V) = \",S\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example 10 - pg 3_39"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "resolution =  0.0001\n",
      "12.98 would be displayed as 12.980 for 10V range\n",
      "\n",
      "0.6973 would be displayed as 0.6973 for 1V range\n",
      "\n",
      "0.6973 would be displayed as 0.697 for 10V range\n",
      "\n"
     ]
    }
   ],
   "source": [
    "#Chapter-3,Example3_10,pg 3_39\n",
    "#calculate the resolution\n",
    "#given\n",
    "n=4.\n",
    "#calculations\n",
    "R1=1./(10**n)\n",
    "#for 10V range\n",
    "R=10*R1\n",
    "#results\n",
    "print \"resolution = \",R1\n",
    "print\"12.98 would be displayed as 12.980 for 10V range\\n\"\n",
    "#for 1V range\n",
    "R=1*R\n",
    "print\"0.6973 would be displayed as 0.6973 for 1V range\\n\"\n",
    "#for 10V range\n",
    "print\"0.6973 would be displayed as 0.697 for 10V range\\n\"\n"
   ]
  }
 ],
 "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
}