From 92cca121f959c6616e3da431c1e2d23c4fa5e886 Mon Sep 17 00:00:00 2001 From: hardythe1 Date: Tue, 7 Apr 2015 15:58:05 +0530 Subject: added books --- Digital_Communications/Chapter8.ipynb | 1439 +++++++++++++++++++++++++++++++++ 1 file changed, 1439 insertions(+) create mode 100755 Digital_Communications/Chapter8.ipynb (limited to 'Digital_Communications/Chapter8.ipynb') diff --git a/Digital_Communications/Chapter8.ipynb b/Digital_Communications/Chapter8.ipynb new file mode 100755 index 00000000..52d8741e --- /dev/null +++ b/Digital_Communications/Chapter8.ipynb @@ -0,0 +1,1439 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Chpater 8: INFORMATION THEORY

" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.1, Page No 464" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math \n", + "#Find Information Content of Each Symbol\n", + "\n", + "#Variable Declaration\n", + "px1=1/2.0\n", + "px2=1/4.0\n", + "px3=1/8.0\n", + "px4=1/8.0\n", + "\n", + "#Calculation\n", + "#information content of each symbol\n", + "Ix1=math.log(1/px1,2)\n", + "Ix2=math.log(1/px2,2)\n", + "Ix3=math.log(1/px3,2)\n", + "Ix4=math.log(1/px4,2)\n", + "\n", + "#Result\n", + "print(\"Information Content tI(x1)= %.2f bit\" %Ix1)\n", + "print(\" tI(x2)= %.f bits\" %Ix2)\n", + "print(\" tI(x3)= %.f bits\" %Ix3)\n", + "print(\" tI(x4)= %.f bits\" %Ix4)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Information Content tI(x1)= 1.00 bit\n", + " tI(x2)= 2 bits\n", + " tI(x3)= 3 bits\n", + " tI(x4)= 3 bits\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.2, Page No 464" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "#Find amount of Information\n", + "#Variable Declaration\n", + "#Calculation\n", + "pxi=1/4.0\n", + "Ixi=(math.log10(1/pxi))/math.log10(2)\n", + "\n", + "#RESULTS\n", + "print(\"The amount of Information I(Xi)= %.f \" %Ixi)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The amount of Information I(Xi)= 2 \n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.3, Page No 464" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "#Find Amount of Information\n", + "\n", + "#Variable Declaration\n", + "px1=1/2.0\n", + "px2=1/2.0\n", + "\n", + "#Calculation\n", + "Ix1=math.log(1/px1,2) #entropy\n", + "Ix2=math.log(1/px2,2)\n", + "\n", + "#Result\n", + "print(\"The amount of Information I(X1)= %.f bit\" %Ix1)\n", + "print(\"The amount of Information I(X2)= %.f bit\" %Ix2)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The amount of Information I(X1)= 1 bit\n", + "The amount of Information I(X2)= 1 bit\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.4, Page No 465" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "#Find Amount of Information \n", + "\n", + "#Variable Declaration\n", + "px1=1/4.0\n", + "px2=3/4.0\n", + "\n", + "#Calculation\n", + "Ix1=math.log(1/px1,2)\n", + "Ix2=math.log(1/px2,2)\n", + "\n", + "#Result\n", + "print(\"The amount of Information I(X1)= %.f bit\" %Ix1)\n", + "print(\"The amount of Information I(X2)= %.2f bit\" %Ix2)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The amount of Information I(X1)= 2 bit\n", + "The amount of Information I(X2)= 0.42 bit\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.9, Page No 468 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "#Find Entropy,Amount of information\n", + "\n", + "#Variable Declaration\n", + "px1=0.4\n", + "px2=0.3\n", + "px3=0.2\n", + "px4=0.1\n", + "\n", + "#Calculation\n", + "HX=-px1*math.log(px1,2)-px2*math.log(px2,2)-px3*math.log(px3,2)-px4*math.log(px4,2)\n", + "Px1x2x1x3=px1*px2*px1*px3\n", + "Ix1x2x1x3=-math.log(Px1x2x1x3,2)\n", + "Px4x3x3x2=px4*px3*px3*px2\n", + "Ix4x3x3x2=-math.log(Px4x3x3x2,2)\n", + "\n", + "#Result\n", + "print(\" \\n Entropy H(X) = %.2f bits/symbol \" %HX)\n", + "print(\"The amount of Information I(x1x2x1x3)= %.2f bits/symbol\" %Ix1x2x1x3)\n", + "print(\" I(x4x3x3x2) = %.2f bits/symbol \" %Ix4x3x3x2)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " \n", + " Entropy H(X) = 1.85 bits/symbol \n", + "The amount of Information I(x1x2x1x3)= 6.70 bits/symbol\n", + " I(x4x3x3x2) = 9.70 bits/symbol \n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.13, Page No 471" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Find information rate the telegraphic source\n", + "\n", + "#Variable Declaration\n", + "pdash=1/3.0\n", + "pdot=2/3.0\n", + "tdot=0.2\n", + "tdash=0.6\n", + "tspace=0.2\n", + "\n", + "#Calculation\n", + "HX=-pdash*math.log(pdash,2)-pdot*math.log(pdot,2)\n", + "Ts=pdot*tdot+pdash*tdash+tspace\n", + "r=1/Ts\n", + "R=r*HX\n", + "\n", + "#Result\n", + "print('Average rate of information R = %.2f bits/s' %R)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Average rate of information R = 1.72 bits/s\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.14, Page No 471" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "#Find information rate of the source\n", + "\n", + "f=input('Enter the frequncy f=')\n", + "px1=1/8.0\n", + "px2=1/8.0\n", + "px3=3/8.0\n", + "px4=3/8.0\n", + "\n", + "HX=px1*math.log(1/px1,2)+px2*math.log(1/px2,2)+px3*math.log(1/px3,2)+px4*math.log(1/px4,2) #entropy of the source\n", + "R=2*f*HX #r=2*f\n", + "print('information rate R= %.1f bits/sec ' %R) #f=signal bandwidth\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "stream": "stdout", + "text": [ + "Enter the frequncy f=34\n" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "information rate R= 123.2 bits/sec \n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.15, Page No 472" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "#Find information rate of the source\n", + "#all symbols are equally likely\n", + "\n", + "#Variable Declaration\n", + "px1=1/2.0\n", + "px2=1/2.0\n", + "px3=1/2.0\n", + "px4=1/2.0\n", + "\n", + "#Calculation\n", + "f=input('Enter the frequncy of system fm(in Hz) =')\n", + "HX=px1*math.log(1/px1,2)+px2*math.log(1/px2,2)+px3*math.log(1/px3,2)+px4*math.log(1/px4,2)\n", + "\n", + "#Result\n", + "print('\\n Entropy H(X) =%.f bits/symbol ' %HX)\n", + "R=2*f*HX\n", + "print('information rate =%.f bits/sec' %R)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "stream": "stdout", + "text": [ + "Enter the frequncy of system fm(in Hz) =45\n" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " Entropy H(X) =2 bits/symbol \n", + "information rate =180 bits/sec\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.16, Page No 473" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "#Find source entropy ,information rate\n", + "\n", + "#Variable Declaration\n", + "#probability symbols\n", + "px1=1/2.0\n", + "px2=1/4.0\n", + "px3=1/8.0\n", + "px4=1/16.0\n", + "px5=1/16.0\n", + "Tb=10.0**-3\n", + "\n", + "#Calculation\n", + "HX=px1*math.log(1/px1,2)+px2*math.log(1/px2,2)+px3*math.log(1/px3,2)+px4*math.log(1/px4)+px5*math.log(1/px5)\n", + "\n", + "#Result\n", + "print('1. source entropy H(X) = %.2f bits/symbol ' %HX) #source entropy\n", + "r=1.0/Tb\n", + "R=r*HX #information rate\n", + "print(' 2. Information rate R = %.2f bits/sec ' %R)\n", + "print('Approximation error')" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "1. source entropy H(X) = 1.72 bits/symbol \n", + " 2. Information rate R = 1721.57 bits/sec \n", + "Approximation error\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.17, Page No 473" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "#assume if there are 16 outcomes per second\n", + "\n", + "#Variable Declaration\n", + "px1=1/2.0\n", + "px2=1/4.0\n", + "px3=1/8.0\n", + "px4=1/16.0\n", + "px5=1/16.0\n", + "r=16.0\n", + "\n", + "#Calculation\n", + "HX=px1*math.log(1/px1,2)+px2*math.log(1/px2,2)+px3*math.log(1/px3,2)+px4*math.log(1/px4,2)+px5*math.log(1/px5,2)\n", + "\n", + "#Result\n", + "print('1. Entropy H(X) = %.2f bits/symbol ' %HX) #source entropy\n", + "\n", + "R=r*HX\n", + "print('2., Information rate R = %.f bits/sec' %R)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "1. Entropy H(X) = 1.88 bits/symbol \n", + "2., Information rate R = 30 bits/sec\n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.18, Page No 474" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "#determine entropy ,information rate\n", + "\n", + "#Variable Declaration\n", + "px1=1/4.0\n", + "px2=1/5.0\n", + "px3=1/5.0\n", + "px4=1/10.0\n", + "px5=1/10.0\n", + "px6=1/20.0\n", + "px7=1/20.0\n", + "px8=1/20.0\n", + "f=10*10**3.0\n", + "fs=10*2*10**3.0\n", + "\n", + "#Calculation\n", + "#entropy\n", + "HX=px1*math.log(1/px1,2)+px2*math.log(1/px2,2)+px3*math.log(1/px3,2)+px4*math.log(1/px4,2)+px5*math.log(1/px5,2)+px6*math.log(1/px6,2)+px7*math.log(1/px7,2)+px8*math.log(1/px8,2) \n", + "\n", + "#Result\n", + "print('bits/message H(X) = %.2f ' %HX)\n", + "r=fs\n", + "R=r*HX #information rate\n", + "print('bits/sec R = %.2f' %R)\n", + "print('Approximation error')" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "bits/message H(X) = 2.74 \n", + "bits/sec R = 54828.92\n", + "Approximation error\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.19, Page No 476 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "from array import *\n", + "#Find Channel Matrix,joint probability\n", + "\n", + "#Variable Declaration\n", + "px1=0.5\n", + "px2=0.5\n", + "py1x1=0.9\n", + "py2x1=0.1\n", + "py1x2=0.2\n", + "py2x2=0.8\n", + "PYX=[[py1x1,py2x1],[py1x2,py2x2]]\n", + "PX=[[px1,px2]]\n", + "PY = [[0,0],\n", + " [0,0]]\n", + "PXY = [[0,0],\n", + " [0,0]]\n", + "\n", + "for i in range(len(PYX)):\n", + " # iterate through columns of Y\n", + " for j in range(len(PX[0])):\n", + " # iterate through rows of Y\n", + " for k in range(len(PX)):\n", + " PY[i][j] += PYX[i][k] * PX[k][j]\n", + "print(' PY ARRAY = \\n')\n", + "for r in PY:\n", + " print(r)\n", + "PXd=[[px1,0],[0,px2]]\n", + "\n", + "\n", + "for i in range(len(PXd)):\n", + " # iterate through columns of Y\n", + " for j in range(len(PYX[0])):\n", + " # iterate through rows of Y\n", + " for k in range(len(PYX)):\n", + " PXY[i][j] += PXd[i][k] * PYX[k][j]\n", + "\n", + " \n", + "print(' \\n PXY ARRAY = \\n')\n", + "for r in PXY:\n", + " print(r)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " PY ARRAY = \n", + "\n", + "[0.45, 0.45]\n", + "[0.1, 0.1]\n", + " \n", + " PXY ARRAY = \n", + "\n", + "[0.45, 0.05]\n", + "[0.1, 0.4]\n" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.35, Page No 498" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "#Channel is aproximated by the AWGN Channel\n", + "\n", + "#Variable Declaration\n", + "B=4000.0\n", + "S=0.1*10**-3\n", + "n=2*10**-12\n", + "\n", + "#Calculation\n", + "N=n*B\n", + "C=B*math.log(1+(S/N),2) #Capacity of Channel\n", + "C=C/1000.0\n", + "#Result\n", + "print(' Capacity of Channel C=%.3f(10^3) b/s ' %C)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Capacity of Channel C=54.439(10^3) b/s \n" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.36i, Page No 499" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#assume that succeissive samples are statistically independent\n", + "\n", + "#Variable Declaration\n", + "fm=4000.0\n", + "fs=2*fm\n", + "n=1.25\n", + "\n", + "#Calculation\n", + "r=fs*n\n", + "pxi=1/256.0\n", + "HX=-math.log(pxi,2)\n", + "R=r*HX\n", + "R=R/1000\n", + "print('Information Rate R= %.f kb/s' %R)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Information Rate R= 80 kb/s\n" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.36ii, Page No 499" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#assume that succeissive samples are statistically independent\n", + "\n", + "#Variable Declaration\n", + "B=10*10**3.0\n", + "SN=20.0\n", + "\n", + "#Calculation\n", + "SNR=10**(SN/10.0)\n", + "C=B*math.log(1+(SNR),2)\n", + "C=C/1000\n", + "\n", + "#Result\n", + "print('The channel capacity = %.2f 10^3 b/s' %C)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The channel capacity = 66.58 10^3 b/s\n" + ] + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.36iii, Page No 499" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "#assume that succeissive samples are statistically independent\n", + "\n", + "#Variable Declaration\n", + "C=8*10**4.0\n", + "B=10**4.0\n", + "\n", + "#Calculation\n", + "SN=2**(C/B)-1\n", + "SNR=10*math.log(SN,10) #SNR\n", + "\n", + "#Result\n", + "print(' The S/N ratio required for error-free transmission =%.2f dB ' %SNR) #required SNR is greater that 24.064\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The S/N ratio required for error-free transmission =24.07 dB \n" + ] + } + ], + "prompt_number": 16 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.36iv, Page No 499 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "#assume that succeissive samples are statistically independent\n", + "\n", + "#Variable Declaration\n", + "SN=20.0\n", + "\n", + "#Calculation\n", + "SNR=10**(SN/10.0)\n", + "C=8*10**4.0\n", + "B=C/(math.log(1+SNR,2)) #Bandwidth\n", + "B=B/1000\n", + "\n", + "#Result\n", + "print('Bandwidth required for AWGN channel B =%.2f kHz ' %B)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Bandwidth required for AWGN channel B =12.02 kHz \n" + ] + } + ], + "prompt_number": 17 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.37, Page No 502" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "#Find code efficiency,redundancy\n", + "\n", + "#Variable Declaration\n", + "px1=0.9\n", + "px2=0.1\n", + "n1=1.0\n", + "n2=1.0\n", + "\n", + "#Calculation\n", + "L=px1*n1+px2*n2 #code leght\n", + "HX=px1*math.log(1/px1,2)+px2*math.log(1/px2,2)\n", + "n=(HX/L) #code efficiency\n", + "n=n*100\n", + "\n", + "print('Code efficiency = %.1f percent' %n)\n", + "r=(100-n) #code reduncy\n", + "print('Code redundancy = %.1f percent' %r)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Code efficiency = 46.9 percent\n", + "Code redundancy = 53.1 percent\n" + ] + } + ], + "prompt_number": 18 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.38, Page No 502" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "#Find code efficiency,redundancy\n", + "\n", + "#Variable Declaration\n", + "pa1=0.81\n", + "pa2=0.09 \n", + "pa3=0.09\n", + "pa4=0.01 \n", + "n1=1\n", + "n2=2 \n", + "n3=3\n", + "n4=3 \n", + "\n", + "#Calculation\n", + "L=pa1*n1+pa2*n2+pa3*n3+pa4*n4\n", + "HX2=pa1*math.log(1/pa1,2)+pa2*math.log(1/pa2,2)+pa3*math.log(1/pa3,2)+pa4*math.log(1/pa4,2)\n", + "n=HX2/L*100\n", + "\n", + "#Result\n", + "print(' code efficiency = %.2f percent' %n)\n", + "\n", + "r=(100-n) #code reduncy\n", + "print(' code redundancy = %.1f percent' %r)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " code efficiency = 72.71 percent\n", + " code redundancy = 27.3 percent\n" + ] + } + ], + "prompt_number": 19 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.44, Page No 507" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "#Find efficiency of the code\n", + "\n", + "#Variable Declaration\n", + "px1=1/2.0\n", + "px2=1/4.0\n", + "px3=1/8.0\n", + "px4=1/8.0\n", + "n1=1.0\n", + "n2=2.0\n", + "n3=3.0\n", + "n4=3.0\n", + "\n", + "#Calculation\n", + "#information content of each symbol\n", + "Ix1=-math.log(px1,2)\n", + "Ix2=-math.log(px2,2)\n", + "Ix3=-math.log(px3,2)\n", + "Ix4=-math.log(px4,2)\n", + "\n", + "HX=px1*math.log(1/px1,2)+px2*math.log(1/px2,2)+px3*math.log(1/px3,2)+px4*math.log(1/px4,2)\n", + "L=px1*n1+px2*n2+px3*n3+px4*n4\n", + "\n", + "n=HX/L*100\n", + "\n", + "#Result\n", + "print('Ccode efficiency = %.f Percent' %n)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Ccode efficiency = 100 Percent\n" + ] + } + ], + "prompt_number": 20 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.50, Page No 512" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "#Find entropy ,information rate\n", + "#If there are 16 outcomes per second\n", + "\n", + "#Variable Declaration\n", + "P1=1/2.0\n", + "P2=1/4.0\n", + "P3=1/8.0\n", + "P4=1/16.0\n", + "P5=1/32.0\n", + "P6=1/32.0\n", + "r=16 #message rate\n", + "\n", + "#Calculation\n", + "H=P1*math.log(1/P1,2)+P2*math.log(1/P2,2)+P3*math.log(1/P3,2)+P4*math.log(1/P4,2)+P5*math.log(1/P5,2)+P6*math.log(1/P6,2)\n", + "#Entropy of system\n", + "\n", + "#Result\n", + "print('1. Entropy of system H = %.2f bits/message ' %H)\n", + "R=H*r #R=Entropy*message rate\n", + "print(' 2. Information rate R = %.f bits/sec ' %R)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "1. Entropy of system H = 1.94 bits/message \n", + " 2. Information rate R = 31 bits/sec \n" + ] + } + ], + "prompt_number": 21 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.51, Page No 512" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "#Calculate H(X) ,H(Y)\n", + "\n", + "#Variable Declaration\n", + "px1=0.3\n", + "px2=0.4\n", + "px3=0.3\n", + "\n", + "#Calculation\n", + "HX=px1*math.log(1/px1,2)+px2*math.log(1/px2,2)+px3*math.log(1/px3,2) #Entropy of X\n", + "\n", + "\n", + "print(' 1.Entropy of X H(X)=%.3f bits/symbol ' %HX)\n", + "\n", + "PYX=[[0.8, 0.2, 0],[ 0, 1, 0],[ 0, 0.3, 0.7]]\n", + "PX=[[px1, px2, px3]]\n", + "PXY = [[0,0,0],\n", + " [0,0,0],\n", + " [0,0,0]]\n", + "\n", + "for i in range(len(PYX)):\n", + " # iterate through columns of PXd\n", + " for j in range(len(PX[0])):\n", + " # iterate through rows of PYX\n", + " for k in range(len(PX)):\n", + " PXY[i][j] += PYX[i][k] * PX[k][j]\n", + "\n", + "py1=PXY[0][0]\n", + "py2=PXY[0][1]\n", + "py3=PXY[0][2]\n", + "HY=py1*math.log(1/py1,2)+py2*math.log(1/py2,2)+py3*math.log(1/py3,2) #Entropy of Y\n", + "print(' 2. Entropy of Y H(Y)= %.2f bits/symbol ' %HY)\n", + "print('Approximation error')\t\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " 1.Entropy of X H(X)=1.571 bits/symbol \n", + " 2. Entropy of Y H(Y)= 1.51 bits/symbol \n", + "Approximation error\n" + ] + } + ], + "prompt_number": 22 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.52, Page No 513" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "#Find entropy of source ,entropy of second order extension\n", + "\n", + "#Variable Declaration\n", + "P1=0.7\n", + "P2=0.15\n", + "P3=0.15\n", + "\n", + "#Calculation\n", + "HX=P1*math.log(1/P1,2)+P2*math.log(1/P2,2)+P3*math.log(1/P3,2) #Entropy of source\n", + "print(' 1. Entropy of system H(X)=%.2f bits/symbol ' %HX)\n", + "#H(X^n)=n*H(X)\n", + "n=2 #for second order\n", + "HX2=n*HX\n", + "\n", + "#Result\n", + "print(' 2. Entropy of second order system extension of source can be H(X^2)=%.2f bits/symbol ' %(HX*2))\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " 1. Entropy of system H(X)=1.18 bits/symbol \n", + " 2. Entropy of second order system extension of source can be H(X^2)=2.36 bits/symbol \n" + ] + } + ], + "prompt_number": 23 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.54, Page No 514" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "#Find entropy of source \n", + "\n", + "#Variable Declaration\n", + "S0=1/3.0\n", + "S1=1/6.0\n", + "S2=1/4.0\n", + "S3=1/4.0\n", + "\n", + "#Calculation\n", + "HX=S0*math.log(1/S0,2)+S1*math.log(1/S1,2)+S2*math.log(1/S2,2)+S3*math.log(1/S3,2) #EntroSy of source\n", + "\n", + "#Result\n", + "print(' Entropy of system H(X)=%.2f bits/symbol ' %HX)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Entropy of system H(X)=1.96 bits/symbol \n" + ] + } + ], + "prompt_number": 24 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.56, Page No 515" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "#Find Information capacity of telephone\n", + "\n", + "#Variable Declaration\n", + "B=3.4*10**3\n", + "SNR=30.0\n", + "\n", + "#Calculation\n", + "SN=10**(SNR/10)\n", + "C=B*math.log(1+SN,2) #Information capacity\n", + "C=C/1000\n", + "\n", + "#Result\n", + "print(' Information capacity of telephone is C = %.2f kbps ' %C)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Information capacity of telephone is C = 33.89 kbps \n" + ] + } + ], + "prompt_number": 25 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.59, Page No 516" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "#Find entropy of source \n", + "\n", + "#Variable Declaration\n", + "S0=1/3.0\n", + "S1=1/6.0\n", + "S2=1/4.0\n", + "S3=1/4.0\n", + "\n", + "#Calculation\n", + "HX=S0*math.log(1/S0,2)+S1*math.log(1/S1,2)+S2*math.log(1/S2,2)+S3*math.log(1/S3,2) #EntroSy of source\n", + "\n", + "#Result\n", + "print(' Entropy of system H(X)=%.2f bits/symbol ' %HX)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Entropy of system H(X)=1.96 bits/symbol \n" + ] + } + ], + "prompt_number": 26 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.60, Page No 516" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "#Find entropy of source \n", + "\n", + "#Variable Declaration\n", + "m1=1/2.0\n", + "m2=1/4.0\n", + "m3=1/8.0\n", + "m4=1/16.0\n", + "m5=1/16.0\n", + "\n", + "#Calculation\n", + "L=(m1*1)+(m2*2)+(m3*3)+(2*(m4)*4)\n", + "\n", + "#Result\n", + "print(' Average number of bits per message =%.2f bits ' %L)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Average number of bits per message =1.88 bits \n" + ] + } + ], + "prompt_number": 27 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.61, Page No 517" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "#Find Information capacity of telephone\n", + "\n", + "#Variable Declaration\n", + "B=3.4*10**3\n", + "SNR=30.0\n", + "\n", + "#Calculation\n", + "SN=10**(SNR/10)\n", + "C=B*math.log(1+SN,2) #Information capacity\n", + "C=C/1000\n", + "\n", + "#Result\n", + "print(' Information capacity of telephone is C = %.2f kbps ' %C)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Information capacity of telephone is C = 33.89 kbps \n" + ] + } + ], + "prompt_number": 28 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.62, Page No 517" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "#Find entropy of source \n", + "\n", + "#Variable Declaration\n", + "p1=4.0\n", + "m1=0.5\n", + "m2=0.5\n", + "m3=0.375\n", + "m4=0.375\n", + "m5=0.375\n", + "m6=0.375\n", + "\n", + "#Calculation\n", + "I1=p1*math.log(1/p1,2) \n", + "HX=m1*math.log(1/m1,2)+m2*math.log(1/m2,2)+m3*math.log(1/m3,2)+m4*math.log(1/m4,2)+m5*math.log(1/m5,2)+m6*math.log(1/m6,2) #EntroSy of source\n", + "\n", + "#Result\n", + "print(' Entropy of system H(X)=%.2f bits/symbol ' %HX)\n", + "print('Approximation error')\t" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Entropy of system H(X)=3.12 bits/symbol \n", + "Approximation error\n" + ] + } + ], + "prompt_number": 29 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.65, Page No 519" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "#Find entropy of source \n", + "\n", + "#Variable Declaration\n", + "S0=1/2.0\n", + "S1=1/4.0\n", + "S2=1/8.0\n", + "S3=1/8.0\n", + "n=1\n", + "\n", + "#Calculation\n", + "H=S0*math.log(1.0/S0,2)+S1*math.log(1.0/S1,2)+S2*math.log(1.0/S2,2)+S3*math.log(1.0/S3,2) #EntroSy of source\n", + "L=H*n\n", + "\n", + "\n", + "#Result\n", + "print(' Code length =%.2f bits/messages ' %L)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Code length =1.75 bits/messages \n" + ] + } + ], + "prompt_number": 30 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.67, Page No 520" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "#Find channel capacity and new bandwidth\n", + "\n", + "#Variable Declaration\n", + "B=8*10**3\n", + "SNR=31.0\n", + "SNR2=61\n", + "\n", + "#Calculation\n", + "C=B*math.log(1+SNR,2) #Information capacity\n", + "B2=C/math.log(1+SNR2,2)\n", + "#Result\n", + "print(' Channel capacity is C = %.2f x 10^3 bits/sec ' %(C/1000))\n", + "print(' New Bandwidth is C = %.2f x kHz ' %(B2/1000))\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Channel capacity is C = 40.00 x 10^3 bits/sec \n", + " New Bandwidth is C = 6.72 x kHz \n" + ] + } + ], + "prompt_number": 31 + } + ], + "metadata": {} + } + ] +} \ No newline at end of file -- cgit