{ "metadata": { "name": "", "signature": "sha256:94ac7a20c62e9612d243d85d9b1b3699e50dc46a0975e66ae373ce7747106bc9" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Chapter2 - Optical Fibers" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 2.4.1 page 2-10" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from __future__ import division\n", "from numpy import arcsin, sqrt, pi\n", "#Numerical Aperture and critical angle\n", "n1=1.46 #refractive index\n", "d=0.01 #difference\n", "na=n1*sqrt(2*d) #numerical aperture\n", "x=1-d #\n", "oc=arcsin(x)*180/pi #in degree\n", "print \"numerical aperture = \",round(na,2)\n", "print \"critical angle at core cladding interface =\",round(oc,1),\" degree\"" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "numerical aperture = 0.21\n", "critical angle at core cladding interface = 81.9 degree\n" ] } ], "prompt_number": 3 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 2.5.1, page 2-11" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from __future__ import division\n", "from numpy import arcsin, sqrt, pi\n", "#Numerical Aperture ,critical angle and acceptance angle\n", "n2=1.45 #core refrative index\n", "n1=1.49 #cladding refrative index\n", "oc=arcsin(n2/n1)*180/pi #in degree\n", "na=sqrt(n1**2-n2**2) #numerical aperture\n", "pc=arcsin(na)*180/pi #degree\n", "print \"critical angle is =\",round(oc,2),\" degree\"\n", "print \"numerical aperture =\",round(na,3)\n", "print \"acceptance angle is\",round(pc,2),\" degree\"\n", "# Answer in the book are not accurate." ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "critical angle is = 76.69 degree\n", "numerical aperture = 0.343\n", "acceptance angle is 20.06 degree\n" ] } ], "prompt_number": 4 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 2.5.2, page 2-11" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from __future__ import division\n", "from numpy import arcsin, sqrt, pi\n", "delta = 1.2/100 # Relative refractive difference index\n", "n1=1.45 # Core refractive index \n", "NA= n1*sqrt(2*delta) #computing numerical aperture\n", "Acceptance_angle = arcsin(NA)*180/pi #computing acceptance angle\n", "si = pi*NA**2 #computing solid acceptance angle\n", "print \"Numerical aperture is %.3f.\\nAcceptance angle is %.2f degree.\\nSolid acceptance angle is %.3f radians.\" %(NA,Acceptance_angle,si) " ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Numerical aperture is 0.225.\n", "Acceptance angle is 12.98 degree.\n", "Solid acceptance angle is 0.159 radians.\n" ] } ], "prompt_number": 5 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 2.5.3, page 2-12" ] }, { "cell_type": "code", "collapsed": false, "input": [ "NA = 0.45 # Numerical Aperture\n", "Acceptance_angle = arcsin(NA)*180/pi #computing acceptance angle.\n", "print \"Acceptance angle is %.1f degree.\" %Acceptance_angle" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Acceptance angle is 26.7 degree.\n" ] } ], "prompt_number": 6 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 2.5.4, page 2-12" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from numpy import arctan\n", "diameter = 1 #Diameter in centimeter\n", "Focal_length = 10 #Focal length in centimeter\n", "radius=diameter/2 #computing radius\n", "Acceptance_angle = arctan(radius/Focal_length)*180/pi #computing acceptance angle\n", "Conical_full_angle = 2*Acceptance_angle #computing conical angle\n", "Solid_acceptance_angle = pi*Acceptance_angle**2 #computing solid acceptance angle\n", "NA = sqrt(Solid_acceptance_angle/pi) #computing Numerical aperture\n", "print \"Numerical aperture is %.2f.\\nConical full angle is %.2f degree.\" %(NA,Conical_full_angle) " ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Numerical aperture is 2.86.\n", "Conical full angle is 5.72 degree.\n" ] } ], "prompt_number": 7 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 2.6.1, page 2-16" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from numpy import cos\n", "NA = 0.45 #Numerical aperture\n", "betaB = 45 # Skew ray change direction by 90 degree at each reflection\n", "Meridional_theta = arcsin(NA)*180/pi #computing acceptacne angle for meridoinal ray\n", "Skew_theta = arcsin(NA/cos(betaB*pi/180))*180/pi #computing acceptacne angle for skew ray\n", "print \"Acceptacne angle for Meridoinal ray is %.2f degree.\\nAcceptance angle for Skew ray %.1f degree.\" %(Meridional_theta,Skew_theta) " ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Acceptacne angle for Meridoinal ray is 26.74 degree.\n", "Acceptance angle for Skew ray 39.5 degree.\n" ] } ], "prompt_number": 8 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 2.8.1, page 2-21" ] }, { "cell_type": "code", "collapsed": false, "input": [ "core_diameter=78*10**-6 #core diameter\n", "delta=1.4/100 #relative index difference\n", "lamda=0.8*10**-6 #operating wavelength\n", "n1=1.47 #core refractive index\n", "a=core_diameter/2 #computing core radius\n", "v= 2*3.14*a*n1*sqrt(2*delta)/lamda #computing normalized frequency\n", "M=(v)**2/2 #computing guided modes\n", "print \"Normalized Frequency is %.3f.\\nTotal number of guided modes are %.1f\" %(v,M)\n", "#answer in the book are incorrect." ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Normalized Frequency is 75.306.\n", "Total number of guided modes are 2835.5\n" ] } ], "prompt_number": 9 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 2.8.2, page 2-23" ] }, { "cell_type": "code", "collapsed": false, "input": [ "n1=1.47 #refractive index of core\n", "a=4.3*10**-6 #radius of core\n", "delta=0.2/100 #relative index difference\n", "lamda= 2*3.14*a*n1*sqrt(2*delta)/2.405 #computing wavelength\n", "lamda=lamda*10**9 \n", "print \"Wavelength of fiber is %d nm.\" %lamda\n", "#answer in the book is given as 1230nm which is incorrect." ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Wavelength of fiber is 1043 nm.\n" ] } ], "prompt_number": 10 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 2.8.3, page 2-23" ] }, { "cell_type": "code", "collapsed": false, "input": [ "n1=1.482 #refractive index of core\n", "n2=1.474 #refractive index of cladding\n", "lamda=820*10**-9 #Wavelength\n", "NA=sqrt(n1**2 - n2**2) #computing Numerical aperture\n", "theta= arcsin(NA)*180/pi #computing acceptance angle\n", "solid_angle=pi*(NA)**2 #computing solid angle\n", "a=2.405*lamda/(2*3.14*NA) #computing core radius\n", "a=a*10**6 \n", "print \"Numerical aperture is %.3f.\\nAcceptance angle is %.1f degrees.\\nSolid angle is %.3f radians.\\nCore radius is %.2f micrometer.\" %(NA,theta,solid_angle,a) \n", "#answer in the book are not accurate." ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Numerical aperture is 0.154.\n", "Acceptance angle is 8.8 degrees.\n", "Solid angle is 0.074 radians.\n", "Core radius is 2.04 micrometer.\n" ] } ], "prompt_number": 11 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 2.8.4, page 2-24" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from numpy import ceil\n", "NA=0.16 #Numerical aperture\n", "n1=1.45 #core refractive index\n", "d=60*10**-6 #core diameter\n", "lamda=0.82*10**-6 #wavelength\n", "a=d/2 #core radius\n", "v=2*3.14*a*NA/lamda #computing normalized frequency\n", "M=v**2/2 #computing guided modes\n", "print \"if normalized frequency is taken as %d, then there are %d guided modes.\" %(ceil(v),M) \n", "#Answer given in the textbook is wrong." ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "if normalized frequency is taken as 37, then there are 675 guided modes.\n" ] } ], "prompt_number": 12 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 2.8.5, page 2-26" ] }, { "cell_type": "code", "collapsed": false, "input": [ "NA=0.2 #Numericla aperture\n", "d=50*10**-6 #Diameter of core\n", "lamda=1*10**-6 #Wavelength\n", "a=d/2 #computing radius\n", "v=2*3.14*a*NA/lamda #computing normalized frequency\n", "Mg=v**2/4 #computing mode volume for parabollic profile\n", "Mg=round(Mg) \n", "print \"Normalized Frequency is %.1f.\\nTotal number of guided modes are %.d.\" %(v,Mg) \n", "#answer in the book is wrong" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Normalized Frequency is 31.4.\n", "Total number of guided modes are 246.\n" ] } ], "prompt_number": 13 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 2.8.6, page 2-27" ] }, { "cell_type": "code", "collapsed": false, "input": [ "delta=0.015 #relative refractive index\n", "n1=1.48 #core refractive index\n", "lamda=0.85*10**-6 #wavelength\n", "a=(2.4*lamda)/(2*3.14*n1*sqrt(2*delta)) #computing radius of core\n", "d=2*a #computing diameter of core\n", "a=a*10**7 \n", "a=round(a,2) \n", "a=a/10\n", "d=d*10**6 \n", "print \"Core radius is %.1f micrometer.\\nCore diameter is %.1f micrometer.\" %(a,2*a) \n", "print \"When delta is reduced by 10 percent-\"\n", "delta=0.0015 \n", "a=(2.4*lamda)/(2*3.14*n1*sqrt(2*delta)) #computing radius of core\n", "d=2*a #computing diameter of core\n", "a=a*10**7 \n", "a=round(a) \n", "a=a/10\n", "d=d*10**6 \n", "print \"Core radius is %.1f micrometer.\\nCore diameter is %.1f micrometer.\" %(a,2*a) " ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Core radius is 1.3 micrometer.\n", "Core diameter is 2.5 micrometer.\n", "When delta is reduced by 10 percent-\n", "Core radius is 4.0 micrometer.\n", "Core diameter is 8.0 micrometer.\n" ] } ], "prompt_number": 14 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 2.8.7, page 2-28" ] }, { "cell_type": "code", "collapsed": false, "input": [ "NA=0.25 #Numericla aperture\n", "d=45*10**-6 #Diameter of core\n", "lamda=1.5*10**-6 #Wavelength\n", "a=d/2 #computing radius\n", "v=2*3.14*a*NA/lamda #computing normalized frequency\n", "Mg=v**2/4 #computing mode volume for parabollic profile\n", "Mg=round(Mg,2) \n", "print \"Normalized Frequency is %.2f.\\nTotal number of guided modes are %.d.\" %(v,ceil(Mg) )\n", "#answer in the book for normalized frequency is 23.55, deviation 0.05" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Normalized Frequency is 23.55.\n", "Total number of guided modes are 139.\n" ] } ], "prompt_number": 15 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 2.8.8, page 2-28" ] }, { "cell_type": "code", "collapsed": false, "input": [ "NA=0.25 #Numericla aperture\n", "d=45*10**-6 #Diameter of core\n", "lamda=1.2*10**-6 #Wavelength\n", "a=d/2 #computing radius\n", "v=2*3.14*a*NA/lamda #computing normalized frequency\n", "Mg=v**2/4 #computing mode volume for parabollic profile\n", "Mg=round(Mg,2) \n", "print \"Normalized Frequency is %.1f.\\nTotal number of guided modes are %.d.\" %(v,Mg) " ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Normalized Frequency is 29.4.\n", "Total number of guided modes are 216.\n" ] } ], "prompt_number": 16 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 2.8.9, page 2-28" ] }, { "cell_type": "code", "collapsed": false, "input": [ "n1=1.54 #refractive index of core\n", "n2=1.5 #refractive index of cladding\n", "a=25*10**-6 #Radius of core in um\n", "lamda=1.3*10**-6 #Wavelength in m\n", "NA=sqrt(n1**2-n2**2) \n", "v=2*3.14*a*NA/lamda #computing normalized frequency\n", "Mg=v**2/4 #computing mode volume for parabollic profile\n", "lamda_cut_off=v*lamda/2.405 #computing cut off wavelength\n", "lamda_cut_off=lamda_cut_off*10**6 \n", "print \"Normalized Frequency is %0.f.\\nTotal number of guided modes are %.d.\\nCut off wavelength is %.1f micrometer.\" %(v,Mg,lamda_cut_off) " ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Normalized Frequency is 42.\n", "Total number of guided modes are 443.\n", "Cut off wavelength is 22.8 micrometer.\n" ] } ], "prompt_number": 19 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 2.9.1 page 2-30" ] }, { "cell_type": "code", "collapsed": false, "input": [ "L_BL=8*10**-2 #beat length\n", "Br=2*3.14/L_BL #computing modal briefringence\n", "print \"Modal briefringence is %.1f per meter.\" %Br" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Modal briefringence is 78.5 per meter.\n" ] } ], "prompt_number": 21 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 2.9.2, page 2-33" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from numpy import log10\n", "Pin=500*10**-6 #input power\n", "L=200 #length of fiber\n", "loss=2 #loss associated with fiber\n", "Pin_dbm=10*log10(Pin/(10**-3)) #computing input power in dBm\n", "Pin_dbm=round(Pin_dbm) \n", "Pout_dbm=Pin_dbm-L*loss #computing output power level\n", "Pout= 10**(Pout_dbm/10) \n", "print \"Output power is %.2e mW.\" %Pout" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Output power is 5.01e-41 mW.\n" ] } ], "prompt_number": 23 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 2.12.1, page 2-37" ] }, { "cell_type": "code", "collapsed": false, "input": [ "a=4.5*10**-6 #core diameter\n", "delta=0.25/100 #relative index difference\n", "lamda=0.85*10**-6 #operating wavelength\n", "n1=1.46 #core refractive index\n", "v= 2*pi*a*n1*sqrt(2*delta)/lamda #computing normalized frequency\n", "lamda_cut_off=v*lamda/2.405 #computing cut off wavelength\n", "lamda_cut_off=lamda_cut_off*10**9 \n", "print \"Cut off wavelength is %.d nanometer.\" %(lamda_cut_off)\n", "print \"When delta is 1.25 percent-\" \n", "delta=1.25/100 \n", "v= 2*pi*a*n1*sqrt(2*delta)/lamda #computing normalized frequency\n", "lamda_cut_off=v*lamda/2.405 #computing cut off wavelength\n", "lamda_cut_off=lamda_cut_off*10**7 \n", "lamda_cut_off=round(lamda_cut_off) \n", "lamda_cut_off=lamda_cut_off*100 \n", "print \"Cut off wavelength is %.d nanometer.\" %(lamda_cut_off) " ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Cut off wavelength is 1213 nanometer.\n", "When delta is 1.25 percent-\n", "Cut off wavelength is 2700 nanometer.\n" ] } ], "prompt_number": 25 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 2.12.2, page 2-38" ] }, { "cell_type": "code", "collapsed": false, "input": [ "a=50*10**-6 #core radius\n", "lamda=1500*10**-9 #operating wavelength\n", "n1=2.53 #core refractive index\n", "n2=1.5 #cladding refractive index\n", "delta=(n1-n2)/n1 #computing delta\n", "v= 2*3.14*a*n1*sqrt(2*delta)/lamda #computing normalized frequency\n", "M=(v)**2/2 #computing guided modes\n", "print \"Normalized Frequency is %.1f\\nTotal number of guided modes are %.d\" %(v,M) \n", "\n", "#Calculation error in book. Answer in the book is wrong" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Normalized Frequency is 477.9\n", "Total number of guided modes are 114191\n" ] } ], "prompt_number": 26 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 2.12.3, page 2-38" ] }, { "cell_type": "code", "collapsed": false, "input": [ "core_diameter=8*10**-6 #core diameter\n", "delta=0.92/100 #relative index difference\n", "lamda=1550*10**-9 #operating wavelength\n", "n1=1.45 #core refractive index\n", "a=core_diameter/2 #computing core radius\n", "v= 2*pi*a*n1*sqrt(2*delta)/lamda #computing normalized frequency\n", "M=(v)**2/2 #computing guided modes\n", "print \"Normalized Frequency is %.1f.\\nTotal number of guided modes are %.d.\" %(v,M) " ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Normalized Frequency is 3.2.\n", "Total number of guided modes are 5.\n" ] } ], "prompt_number": 27 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 2.12.4, page 2-39 " ] }, { "cell_type": "code", "collapsed": false, "input": [ "delta=1/100 #relative index difference\n", "n1=1.5 #core refractive index\n", "c=3*10**8 \n", "L=6 \n", "n2=sqrt(n1**2-2*delta*n1**2) #computing refractive index of cladding\n", "delta_T=L*n1**2*delta/(c*n2) #computing pulse broadning\n", "delta_T=delta_T*10**11 \n", "delta_T=round(delta_T) \n", "print \"Delay difference between slowest and fastest mode is %d ns/km.\" %delta_T \n", "print \"This means that a pulse broadnes by %d ns after travel time a distance of %d km.\" %(delta_T,L)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Delay difference between slowest and fastest mode is 30 ns/km.\n", "This means that a pulse broadnes by 30 ns after travel time a distance of 6 km.\n" ] } ], "prompt_number": 30 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 2.17.1, page 2-60" ] }, { "cell_type": "code", "collapsed": false, "input": [ "n1=1.48 #core refractive index\n", "n2=1.46 #cladding refractive index\n", "phi = arcsin(n2/n1)*180/pi #computing critical angle\n", "NA = sqrt(n1**2 - n2**2) #computing numericla aperture\n", "theta= arcsin(NA)*180/pi #computing acceptance angle\n", "print \"Critical angle is %.2f degrees.\\nNumerical aperture is %.3f.\\nAcceptance angle is %.2f degree.\" %(phi,NA,theta) \n", "#answers in the book are wrong." ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Critical angle is 80.57 degrees.\n", "Numerical aperture is 0.242.\n", "Acceptance angle is 14.03 degree.\n" ] } ], "prompt_number": 33 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Question 4, page 2-61 " ] }, { "cell_type": "code", "collapsed": false, "input": [ "L_BL=8*10**-2 #beat length\n", "Br=2*3.14/L_BL #computing modal briefringence\n", "print \"Modal briefringence is %.1f per meter.\" %Br " ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Modal briefringence is 78.5 per meter.\n" ] } ], "prompt_number": 35 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Question 5, page 2-62 " ] }, { "cell_type": "code", "collapsed": false, "input": [ "L_BL=0.6*10**-3 #beat length\n", "lamda=1.4*10**-6 #wavelength\n", "L_BL1=70 \n", "Bh=lamda/L_BL #computing high briefringence\n", "Bl=lamda/L_BL1 #computing low briefringence\n", "print \"High briefringence is %.2e.\\nLow briefringence is %.1e.\"%(Bh,Bl)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "High briefringence is 2.33e-03.\n", "Low briefringence is 2.0e-08.\n" ] } ], "prompt_number": 38 } ], "metadata": {} } ] }