{
 "metadata": {
  "name": "Chapter_3"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "heading",
     "level": 1,
     "metadata": {},
     "source": "Chapter 3 : Transmission characteristics of\noptical fibers"
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": "Example 3.1,  page 89"
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": "import math\n\n#Variable declaration\nPi=120*10**-6                                      #mean i/p power in uW\nPo=3*10**-6                                        #mean o/p power in uW\nL=8                                                #length of fibre in Km\na1=2                                               #loss in dB\nL1=10                                              #length of fibre in Km\nloss=9                                             #loss in dB\n\n#Calculation \nSA=10*math.log10(Pi/Po)                             #overall signal attenuation\na=SA/L                                              #signal attenuation per kilometer\nal=a1*L1\nSA1=al+loss                                         #signal attenuation for the 10KM link\nP=10**(2.9)                                         #i/o power ratio, 2.9 is numeric value\n\n\n#Result\nprint'Overall signal attenuation = ',round(SA),'dB'\nprint'Signal attenuation per kilometer = ',round(a),'dB Km^-1'\nprint'Overall signal attenuation for the 10KM link  = ',round(SA1),'dB'\nprint'Numeric value for i/o power ratio = %.1f' %P",
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": "Overall signal attenuation =  16.0 dB\nSignal attenuation per kilometer =  2.0 dB Km^-1\nOverall signal attenuation for the 10KM link  =  29.0 dB\nNumeric value for i/o power ratio = 794.3\n"
      }
     ],
     "prompt_number": 1
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": "Example 3.2, page 96"
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": "import math\n\n#Variable declaration\nTf=1400                                        #tempreture in kelvin\nK=1.381*10**-23                                #Boltzmann\u2019s constant\nBc=7*10**-11                                   #isothermal compressibility\nn=1.46                                         #refractive index\np=0.286                                        #refractive index\nh1=0.63*10**-6                                 #wavelength\nh2=10**-6                                      #wavelength\nh3=1.3*10**-6                                  #wavelength\nL=10**3                                        #length in km\n\n#Calculation \na=(8*math.pi**3*n**8*p**2*Bc*K*Tf)/3\nyr=a/h1**4                                     #Rayleigh scattering coefficient \nLk=math.exp(-yr*L)                             #transmission loss factor\nAt=10*math.log10(Lk**-1)                       #attenuation due to Rayleigh scattering\nyr1=a/h2**4                                    #Rayleigh scattering coefficient \nLk1=math.exp(-yr1*L)                           #transmission loss factor\nAt1=10*math.log10(Lk1**-1)                     #attenuation due to Rayleigh scattering\nyr2=a/h3**4                                    #Rayleigh scattering coefficient \nLk2=math.exp(-yr2*L)                           #transmission loss factor\nAt2=10*math.log10(Lk2**-1)                     #attenuation due to Rayleigh scattering\n\n#Result\nprint'Attenuation due to Rayleigh scattering (in 0.63 \u03bcm)= %.1f dB km^-1'%(At)\nprint'Attenuation due to Rayleigh scattering (in 1.0 \u03bcm)= %.1f dB km^-1'%(At1)\nprint'Attenuation due to Rayleigh scattering (in 1.30 \u03bcm)= %.1f dB km^-1'%(At2)",
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": "Attenuation due to Rayleigh scattering (in 0.63 \u03bcm)= 5.2 dB\nAttenuation due to Rayleigh scattering (in 1.0 \u03bcm)= 0.8 dB\nAttenuation due to Rayleigh scattering (in 1.30 \u03bcm)= 0.3 dB\n"
      }
     ],
     "prompt_number": 20
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": "Example 3.3, page 99"
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": "#Variable declaration\nd=6                                                 #diameter in \u03bcm\nh=1.3                                               #wavelength in \u03bcm\nadb=0.5                                             #attenuation in dB\nv=0.6\n\n#Calculation \nPb=4.4*10**-3*d**2*h**2*adb*v                       #for SBS\nPr=5.9*10**-2*d**2*h*adb                            #for SRS\n\n#result\nprint'Threshold optical power for SBS = %.1f mW'%(Pb*1000)\nprint 'Threshold optical power for SRS = %.2f W'%Pr\n",
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": "Threshold optical power for SBS = 80.3 mW\nThreshold optical power for SRS = 1.38 W\n"
      }
     ],
     "prompt_number": 19
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": "Example 3.4, page 101"
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": "import math\n\n#Variable declaration \nn1=1.5                                                 #refractive index\nh=0.82*10**-6                                          #operating wavelength\ndelta=0.03                                             #relative refractive index difference \ndelta1=0.003                                           #relative refractive index difference\nh1=1.55*10**-6                                         #operating wavelength\na=4*10**-6                                             #radius of core\n\n#Calculation\nn2=(n1**2)-(2*delta*n1**2)                               #refractive index\nRc=(3*n1**2*h)/(4*math.pi*(n1**2-n2)**0.5)               #multimode fiber critical radius of curvature\nn21=(n1**2)-(2*delta1*n1**2)                             #refractive index  \nhc=(2*math.pi*a*n1*math.sqrt(2*delta1))/(2.405)          #cutoff wavelength for the single-mode fiber\nb=20*h1/math.sqrt(0.043)\nc=(2.748-(0.996*h1/hc))**-3\nRcs=b*c                                                  #critical radius of curvature for the single-mode\n\n#Result\nprint'Multimode fiber critical radius of curvature = %.2f um'%(Rc*10**6)      #value given in the textbook is wrong              \nprint'Single-mode fiber critical radius of curvature = %.2f um'%(Rcs*10**3)     #value given in the textbook is wrong",
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": "Multimode fiber critical radius of curvature = 1.20 um\nSingle-mode fiber critical radius of curvature = 0.05 um\n"
      }
     ],
     "prompt_number": 36
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": "Example 3.5, page 109"
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": "import math\n\n#Variable declaration \nt=0.1*10**-6                           #total pulse time  \nd=15                                   #distance in Km\n\n#Calculation\nBt=1/(2*t)                              #Maximum Bandwidth\nD=t/d                                   #Pulse Dispersion\nBop=Bt*d                                #Bandwidth-length product\n\n#Result\nprint'Maximum Bandwidth = %d Mhz'%(Bt/10**6)\nprint'Pulse Dispersion = %.2f ns per Km'%(D*10**9)\nprint'Bandwidth-length product = %d Mhz Km'%(Bop/10**6)\n",
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": "Maximum Bandwidth = 5 Mhz\nPulse Dispersion = 6.67 ns per Km\nBandwidth-length product = 75 Mhz Km\n"
      }
     ],
     "prompt_number": 51
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": "Example 3.6, page 111"
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": "import math\n\n#Variable declaration\nb=0.025                                  #material dispersion                 \nc=2.998                                  #speed of light (x 10^8)\nh=85*10**6                                #wavelength dispersion parameter\n\n\n#Calculation\nM=b/(c*h)                                 #Material dispersion parameter\ns=M*20                                    #RMS pulse broadening (1 Km)\n\n#Result\nprint'Material dispersion parameter = %.1f ps n/m K/m'%(M*10**12)\nprint'RMS pulse broadening (1 Km) = %.2f ns K/m'%(s*10**9)",
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": "Material dispersion parameter = 98.1 ps n/m K/m\nRMS pulse broadening (1 Km) = 1.96 ns K/m\n"
      }
     ],
     "prompt_number": 55
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": "Example 3.7, page 112"
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": "import math\n\n#Variable declaration\nh=0.85*10**-6                        #wavelength \nb=0.0012                             #relative spectral width\nM=98.1*10**-12                       #material dispersion parameter\n\n#Calculation\nsh=b*h                               #relative spectral width\nsm=sh*M*10**9                        #RMS pulse braodening\n\n#Result\nprint'RMS pulse braodening (1 Km) = %.2f ns K/m'%(sm*10**9)",
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": "RMS pulse braodening (1 Km) = 0.10 ns K/m\n"
      }
     ],
     "prompt_number": 66
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": "Example 3.8, page 117"
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": "import math\n\n#Variable declaration\nL=6000                                               #optical link\nn1=1.5                                               #core refractive index\ndelt=0.01                                            #relative refractive index difference\nc=2.998*10**8                                        #speed of light\n\n\n#Calculation\nTs=(L*n1*delt)/c                                      #Delay difference\nsc=(L*n1*delt)/(2*math.sqrt(3)*c)                     #RMS pulse broadening\nBt=1/(2*Ts)\nBtm=0.2/sc                                            #Maximum bit rate using RMS pulse broadening\nBop=Btm*L                                             #Bandwidth-length product\n\n#Result\nprint'(a) Delay difference = %d ns' %(Ts*10**9)\nprint'(b) RMS pulse broadening = %.1f ns' %(sc*10**9)\nprint'(c) Maximum bit rate using RMS pulse broadening = %.1f Mbit/s'%(Btm/10**6)\nprint'(d) Bandwidth-length product = %.1f Mhz km'%(Bop/10**9)",
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": "(a) Delay difference = 300 ns\n(b) RMS pulse broadening = 86.7 ns\n(c) Maximum bit rate using RMS pulse broadening = 2.3 Mbit/s\n(d) Bandwidth-length product = 13.8 Mhz km\n"
      }
     ],
     "prompt_number": 7
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": "Example 3.9, page 121"
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": "import math\n\n#Variable declaration\nsc=86.7                                              #RMS pulse broadening\nL1=6                                                 #optical link\nL=10**3                                              #for 1 Km\nn1=1.5                                               #core refractive index\ndelt=0.01                                            #relative refractive index difference\nc=3*10**8                                            #speed of light\n\n#Calculation\nd=sc/L1                                              #for multimode step index fiber\nsg=(L*n1*delt**2)/(20*math.sqrt(3)*c)                #gradient index fiber\n\n#Result\nprint'RMS pulse broadening for multimode step index fiber = %.1f ns K/m'%(d)\nprint'RMS pulse broadening for gradient index fiber = %.1f ps K/m'%(sg*10**12)",
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": "RMS pulse broadening for multimode step index fiber = 14.5 ns K/m\nRMS pulse broadening for gradient index fiber = 14.4 ps K/m\n"
      }
     ],
     "prompt_number": 18
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": "Example 3.10, page 125"
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": "import math\n\n#Variable declaration\nsh=50                                        #rms spectral width\nL=1                                          #1 Km\nM=250*10**-12                                #material dispersion parameter\nL1=10**3                                     \nNA=0.3                                       #numerical aperture\nn1=1.45                                      #refractive index\nc=2.998*10**8                                #speed of light\n\n#Calculation\nsm=sh*L*M                                      #rms pulse broadening\nss=(L1*NA**2)/(4*math.sqrt(3)*n1*c)            #rms pulse broadening per kilometer\nst=math.sqrt(sm**2+ss**2)                      #total rms pulse broadening per kilometer\nBop=0.2/st                                     #bandwidth\u2013length product\n\n#Result\nprint'(a) Total RMS pulse broadening per Km = %.1f ns K/m'%(st*10**9)\nprint'(b) Bandwidth length product = %.1f Mhz Km'%(Bop*10**-6)",
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": "(a) Total RMS pulse broadening per Km = 32.4 ns K/m\n(b) Bandwidth length product = 6.2 Mhz Km\n"
      }
     ],
     "prompt_number": 17
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": "Example 3.11, page 131"
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": "\n#Variable declaration\nh=1280                                     #wavelength in nm\nS0=0.09*10**-12                            #dispersion slope\nh0=1310                                    #zero dispersion wavlength in nm\nh1=1550                                    #wavelength in nm\nDm=13.5*10**-12                            #material dispersion wavelength in m\nDp=0.4*10**-12                             #profile dispersion wavelength in m\n\n#Calculation\na=h*S0/4\nb=1-((h0*h**-1)**4)\nDt=a*b\nDt1=(h1*S0/4)*(1-(h0*h1**-1)**4)\nDw=Dt1-(Dm+Dp)\n\n#Result\nprint'Total first order dispersion (1280 nm) = %.1f nm^-1 km^-1'%(Dt*10**12)\nprint'Total first order dispersion (1550 nm) = %.1f ps n/m K/m'%(Dt1*10**12)\nprint'Waveguide dispersion at wavelength 1.55um = %.1f ps n/m K/m'%(Dw*10**12)",
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": "Total first order dispersion (1280 nm) = -2.8 nm^-1 km^-1\nTotal first order dispersion (1550 nm) = 17.1 ps n/m K/m\nWaveguide dispersion at wavelength 1.55um = 3.2 ps n/m K/m\n"
      }
     ],
     "prompt_number": 15
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": "Example 3.12, page 143"
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": "import math\n\n#Variable declaration\nh=0.9*10**-6                               #peak wavelength                           \nLb=0.09                                    #beat length\ns=10**-9                                   #spectral linewidth\n\n\n#Calculation\nBf=h/Lb                                   #modal birefringence\nLbc=h**2/(Bf*s)                             #coherence length\nBxy=(2*math.pi)/Lb                        #difference between propagation constant\n\n#Result\nprint'Modal birefringence, Bf = %.1f x 10^-5' %(Bf*10**5)\nprint'Coherence length, Lf = %.1f m' %Lbc\nprint'Difference between propagation constant = %.1f' %Bxy",
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": "Modal birefringence, Bf = 1.0 x 10^-5\nCoherence length, Lf = 81.0 m\nDifference between propagation constant = 69.8\n"
      }
     ],
     "prompt_number": 2
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": "Example 3.13, page 144"
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": "#Variable declaration\nh=1.3*10**-6                                 #fibers operating wavelength\nLs=0.7*10**-3                                #beat length\nL=80                                         #beat length\n\n#Calculation\nBf=h/Ls                                      #Fiber birefringence (0.7mm)\nBf1=h/L                                      #Fiber birefringence (80m)\n\n#Result\nprint'Fiber birefringence (0.7mm) = %.2f x 10^-3'%(Bf*1000)\nprint'Fiber birefringence (80m) = %.2f x 10^-8'%(Bf1*10**8)",
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": "Fiber birefringence (0.7mm) = 1.86 x 10^-3\nFiber birefringence (80m) = 1.62 x 10^-8\n"
      }
     ],
     "prompt_number": 1
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": "Example 3.14, page 150"
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": "import math\n\n#Variable declaration\nL=3.5*10**3                             #length of fiber\na=2*10**-3                              #tanh(h*L)\n\n\n#Calculation\nh=a/L                                   #mode coupling parameter                                \n\n#Result\nprint'Mode coupling parameter = %.1f x 10^-7 m^-1'%(h*10**7)",
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": "Mode coupling parameter = 5.7 x 10^-7 m^-1\n"
      }
     ],
     "prompt_number": 1
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": "",
     "language": "python",
     "metadata": {},
     "outputs": []
    }
   ],
   "metadata": {}
  }
 ]
}