summaryrefslogtreecommitdiff
path: root/Linear_Integrated_Circuits/Chapter10.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'Linear_Integrated_Circuits/Chapter10.ipynb')
-rwxr-xr-xLinear_Integrated_Circuits/Chapter10.ipynb305
1 files changed, 305 insertions, 0 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