{
 "metadata": {
  "name": "",
  "signature": "sha256:a49a8ec12fc3b73c3ede4bd700b2981c396abe3970143184cc460eca3744fac1"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "heading",
     "level": 1,
     "metadata": {},
     "source": [
      "CHAPTER04:ANGLE MODULATION"
     ]
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example E03 : Pg 4.9"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# Page Number: 4.9\n",
      "# Example 4.3\n",
      "# Given\n",
      "fc=1.*10.**6.; # Hz\n",
      "kf=5.;\n",
      "mt=1.*10.**5.; # Hz\n",
      "\n",
      "# (a) mi(t) with fm\n",
      "mi=(fc+(kf*mt));\n",
      "print\"Max, Inst. Frequency with FM\",mi,\"Hz\"\n",
      "import math \n",
      "kp=3.;\n",
      "# (b) mi2(t) with pm\n",
      "mi2=fc+(mt*(kp/(2*math.pi)));\n",
      "\n",
      "print\"Max, Inst. Frequency with PM\",mi2,\"Hz\""
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Max, Inst. Frequency with FM 1500000.0 Hz\n",
        "Max, Inst. Frequency with PM 1047746.48293 Hz\n"
       ]
      }
     ],
     "prompt_number": 1
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example E09 : Pg 4.13"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# Page Number: 4.13\n",
      "# Example 4.9\n",
      "# Given\n",
      "delf=20.*10.**3.; # hz\n",
      "fm=10.*10.**3.; # Hz\n",
      "\n",
      "B=delf/fm;\n",
      "print\"Beta: \",B"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Beta:  2.0\n"
       ]
      }
     ],
     "prompt_number": 2
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example E13 : Pg 4.16"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# Page Number: 4.16\n",
      "# Example 4.13\n",
      "# Given\n",
      "# x(t)=10cos((2*pi*10**8*t)+(200cos(2*pi*10**3*t)))\n",
      "# on differentiating\n",
      "# wi=2*pi*(1D+8)-4*pi*sin(2*pi*(1D+3)*t)\n",
      "# Therefore\n",
      "import math \n",
      "delw=4.*math.pi*(1.*10.**5.);\n",
      "wm=2.*math.pi*(1.*10.**3.);\n",
      "B=delw/wm;\n",
      "wb=2.*(B+1.)*wm;\n",
      "fb=wb/2.*math.pi;\n",
      "print\"Wb\",wb,\"rad/s\"\n",
      "print\"Fb\",fb,\"Hz\""
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Wb 2525840.49349 rad/s\n",
        "Fb 3967580.96924 Hz\n"
       ]
      }
     ],
     "prompt_number": 3
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example E14 : Pg 4.17"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# Page Number: 4.17\n",
      "# Example 4.14\n",
      "# Given\n",
      "delf=100.*10.**3; # Hz\n",
      "fc=20.*10.**6.; # Hz\n",
      "\n",
      "# As B=delf/fm;\n",
      "# (a) fm1=1*10.**3hz\n",
      "print'Part a'\n",
      "fm1=1.*10.**3.; # Hz\n",
      "B1=delf/fm1;\n",
      "print'Modulation Index',B1\n",
      "fb1=2.*delf;\n",
      "print'Bandwidth',fb1,'Hz'\n",
      "# (b) fm2=100*10.**3hz\n",
      "print'\\nPart b'\n",
      "fm2=100.*10.**3.; # Hz\n",
      "B2=delf/fm2;\n",
      "print'Modulation Index',B2\n",
      "fb2=2.*(B2+1.)*fm2;\n",
      "print'Bandwidth',fb2,'Hz'\n",
      "# (c) fm3=500*10.**3hz\n",
      "print'\\nPart c'\n",
      "fm3=500.*10.**3.; # Hz\n",
      "B3=delf/fm3;\n",
      "print'Modulation Index',B3\n",
      "fb3=2.*fm3;\n",
      "print'Bandwidth',fb3,'Hz'"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Part a\n",
        "Modulation Index 100.0\n",
        "Bandwidth 200000.0 Hz\n",
        "\n",
        "Part b\n",
        "Modulation Index 1.0\n",
        "Bandwidth 400000.0 Hz\n",
        "\n",
        "Part c\n",
        "Modulation Index 0.2\n",
        "Bandwidth 1000000.0 Hz\n"
       ]
      }
     ],
     "prompt_number": 4
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example E15 : Pg 4.17"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# Page Number: 4.17\n",
      "# Example 4.15\n",
      "# Given\n",
      "# x(t)=10cos(wct+3sinwmt)\n",
      "# Comparing with standard equation\n",
      "B=3.;\n",
      "fm=1.*10.**3.; # hz\n",
      "fb=2.*(B+1.)*fm;\n",
      "\n",
      "# (a)fm is doubled\n",
      "fma=2.*fm;\n",
      "fba=2.*(B+1.)*fma;\n",
      "print\"fb with 2fm: \",fba\n",
      "\n",
      "# (b)fm is one halved\n",
      "fmb=fm/2.;\n",
      "fbb=2.*(B+1.)*fmb;\n",
      "print\"fb with 0.5fm: \",fbb"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "fb with 2fm:  16000.0\n",
        "fb with 0.5fm:  4000.0\n"
       ]
      }
     ],
     "prompt_number": 5
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example E16 : Pg 4.18"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# Page Number: 4.18\n",
      "# Example 4.16\n",
      "# Given\n",
      "# x(t)=10cos(wct+3sinwmt)\n",
      "# Comparing with standard equation of fm\n",
      "B=3.;\n",
      "fm=1.*10.**3.; # hz\n",
      "fb=2.*(B+1.)*fm;\n",
      "\n",
      "# B is inversaly proportional to fm\n",
      "\n",
      "# (a)fm is doubled\n",
      "Ba=B/2.;\n",
      "fma=2.*fm;\n",
      "fba=2.*(Ba+1.)*fma;\n",
      "print\"fb with 2fm: \",fba\n",
      "\n",
      "\n",
      "\n",
      "# (b)fm is one halved\n",
      "Bb=2.*B;\n",
      "fmb=fm/2.;\n",
      "fbb=2.*(Bb+1.)*fmb;\n",
      "print\"fb with 0.5fm: \",fbb"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "fb with 2fm:  10000.0\n",
        "fb with 0.5fm:  7000.0\n"
       ]
      }
     ],
     "prompt_number": 6
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example E17 : Pg 4.18"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# Page Number: 4.18\n",
      "# Example 4.17\n",
      "\n",
      "# Given\n",
      "fm=2.*10.**3.; # Hz\n",
      "delf=5.*10.**3.; # Hz\n",
      "\n",
      "# (a) Bandwidth of modulated signal\n",
      "B=delf/fm;\n",
      "\n",
      "fb=2.*(B+1.)*fm;\n",
      "print'Bandwidth',fb,'Hz'\n",
      "\n",
      "# (b)Max. frequency deviation and Bandwidth of new signal\n",
      "# Given\n",
      "fm1=fm-(1.*10.**3.);\n",
      "delf1=3.*delf;\n",
      "\n",
      "B1=delf1/fm1;\n",
      "\n",
      "fd=B1*fm1;\n",
      "print'Maximum frequency deviation',fd,'Hz'\n",
      "\n",
      "fb1=2.*(B1+1.)*fm1;\n",
      "print'Bandwidth',fb1,'Hz'"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Bandwidth 14000.0 Hz\n",
        "Maximum frequency deviation 15000.0 Hz\n",
        "Bandwidth 32000.0 Hz\n"
       ]
      }
     ],
     "prompt_number": 8
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example E18 : Pg 4.19"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# Page Number: 4.19\n",
      "# Example 4.18\n",
      "# Given\n",
      "delf=75.*10.**3.; # Hz\n",
      "fM=15.*10.**3.; # Hz\n",
      "\n",
      "D=delf/fM;\n",
      "# Given formula fb=2(*10.**2)*fM\n",
      "fb1=2.*10.**2.*fM;\n",
      "print'BW uing formula',fb1,'Hz'\n",
      "\n",
      "# Carsons Rule\n",
      "fb2=2.*10.**1.*fM;\n",
      "print'BW uing Carsons Rule',fb2,'Hz'\n",
      "\n",
      "# High quality Fm radios require minimum 200kHz\n",
      "# Therefore, carsons rule underestimates bandwidth"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "BW uing formula 3000000.0 Hz\n",
        "BW uing Carsons Rule 300000.0 Hz\n"
       ]
      }
     ],
     "prompt_number": 9
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example E19 : Pg 4.19"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# Page Number: 4.19\n",
      "# Example 4.19\n",
      "# Given\n",
      "fm1=50.; # Hz\n",
      "fm2=15.*10.**3.; # Hz\n",
      "\n",
      "delf=75.*10.**3.; # Hz\n",
      "\n",
      "# As B=delf/fm\n",
      "Bmin=delf/fm2;\n",
      "Bmax=delf/fm1;\n",
      "\n",
      "# Let B1=0.5\n",
      "B1=0.5;\n",
      "n=(Bmax/B1);\n",
      "print'Multiplication factor',n\n",
      "\n",
      "delf1=(delf/n);\n",
      "print'Max allowed frequency deviation',delf1,'Hz'"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Multiplication factor 3000.0\n",
        "Max allowed frequency deviation 25.0 Hz\n"
       ]
      }
     ],
     "prompt_number": 10
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example E20 : Pg 4.20"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# Page Number: 4.20\n",
      "# Example 4.20\n",
      "# Given\n",
      "f1=2.*10.**5.; # Hz\n",
      "fLO=10.8*10.**6.; # Hz\n",
      "delf1=25.; # Hz\n",
      "n1=64.;\n",
      "n2=48.;\n",
      "\n",
      "delf=(delf1*n1*n2);\n",
      "print'Maximum frequency deviation',delf,'Hz'\n",
      "\n",
      "f2=n1*f1;\n",
      "\n",
      "f3a=f2+fLO;\n",
      "f3b=f2-fLO;\n",
      "\n",
      "# For f3a\n",
      "fca=n2*f3a;\n",
      "print'Carrier frequency 1',fca,'Hz'\n",
      "\n",
      "# For f3b\n",
      "fcb=n2*f3b;\n",
      "print'Carrier frequency 2',fcb,'Hz'"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Maximum frequency deviation 76800.0 Hz\n",
        "Carrier frequency 1 1132800000.0 Hz\n",
        "Carrier frequency 2 96000000.0 Hz\n"
       ]
      }
     ],
     "prompt_number": 11
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example E21 : Pg 4.20"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# Page Number: 4.20\n",
      "# Example 4.21\n",
      "# Given\n",
      "delf=20.*10.**3.; # Hz\n",
      "fc=200.*10.**3.; # Hz\n",
      "of=96.*10.**6.; # hz\n",
      "# delf=n1*n2 and as only doublers are used, n1*n2 has to be power of 2\n",
      "# By trail and error, we find\n",
      "n1=64.;\n",
      "n2=32.;\n",
      "# Output of first Multiplier\n",
      "o1=n1*fc;\n",
      "print'Output of first multiplier: ',o1,'Hz'\n",
      "i2=of/n2;\n",
      "flo=o1-i2;\n",
      "print'fLO',flo,'Hz'"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Output of first multiplier:  12800000.0 Hz\n",
        "fLO 9800000.0 Hz\n"
       ]
      }
     ],
     "prompt_number": 12
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example E22 : Pg 4.20"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# Page Number: 4.20\n",
      "# Example 4.22\n",
      "# Given\n",
      "B=0.2; \n",
      "f1=200.*10.**3.; # Hz\n",
      "fml=50.; # Hz\n",
      "fmh=15.*10.**3.; # Hz\n",
      "delf=75.*10.**3.; # hz\n",
      "fc=108.*10.**6.; # Hz\n",
      "\n",
      "delf1=B*fml;\n",
      "n1n2=delf/delf1;\n",
      "\n",
      "# Let n2=150\n",
      "n2=150.;\n",
      "flo=((delf*f1)-fc)/n2;\n",
      "print'fLO',flo,'Hz'\n",
      "\n",
      "n1=n1n2/n2;\n",
      "print\"n1 with n2=150:\",n1"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "fLO 99280000.0 Hz\n",
        "n1 with n2=150: 50.0\n"
       ]
      }
     ],
     "prompt_number": 13
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example E23 : Pg 4.21"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# Page Number: 4.21\n",
      "# Example 4.23\n",
      "# Given,\n",
      "\n",
      "delfd1=50.; # Hz\n",
      "f1=120.; # Hz\n",
      "\n",
      "delfd2=20000.; # Hz\n",
      "f2=240.; # Hz\n",
      "# (a)PM\n",
      "delf1=(f2/f1)*delfd1;\n",
      "n1=delfd2/delf1;\n",
      "print'Frequency multiplication factor in PM',n1\n",
      "\n",
      "# (b)FM\n",
      "n2=delfd2/delfd1;\n",
      "print'Frequency multiplication factor in FM',n2"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Frequency multiplication factor in PM 200.0\n",
        "Frequency multiplication factor in FM 400.0\n"
       ]
      }
     ],
     "prompt_number": 14
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example E29 : Pg 4.25"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# Page Number: 4.25\n",
      "# Example 4.29\n",
      "# Given,\n",
      "f1=108.; # MHz\n",
      "f2=157.; # MHz\n",
      "\n",
      "# (a) Image frequency overlaps RF band\n",
      "fIF=12.; # MHz\n",
      "\n",
      "fL01=f1-fIF;\n",
      "print'fL01',fL01,'MHz'\n",
      "fim1=fL01-fIF;\n",
      "print'fim1',fim1,'MHz'\n",
      "\n",
      "fL02=f2-fIF;\n",
      "print'fL02',fL02,'MHz'\n",
      "fim2=fL02-fIF;\n",
      "print'fim2',fim2,'MHz'\n",
      "\n",
      "# Clearly image and RF band overlap"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "fL01 96.0 MHz\n",
        "fim1 84.0 MHz\n",
        "fL02 145.0 MHz\n",
        "fim2 133.0 MHz\n"
       ]
      }
     ],
     "prompt_number": 15
    }
   ],
   "metadata": {}
  }
 ]
}