summaryrefslogtreecommitdiff
path: root/Optical_Fiber_Communication_by_V._S._Bagad
diff options
context:
space:
mode:
Diffstat (limited to 'Optical_Fiber_Communication_by_V._S._Bagad')
-rwxr-xr-xOptical_Fiber_Communication_by_V._S._Bagad/Chapter01-Fiber_Optics_Communications_System.ipynb1240
-rwxr-xr-xOptical_Fiber_Communication_by_V._S._Bagad/Chapter02-Optical_Fiber_for_Telecommunication.ipynb945
-rwxr-xr-xOptical_Fiber_Communication_by_V._S._Bagad/Chapter03-Optical_Sources_and_Transmitters.ipynb826
-rwxr-xr-xOptical_Fiber_Communication_by_V._S._Bagad/Chapter04-Optical_Detectors_and_Receivers.ipynb644
-rwxr-xr-xOptical_Fiber_Communication_by_V._S._Bagad/Chapter05-Design_Considerations_in_Optical_Links.ipynb458
-rwxr-xr-xOptical_Fiber_Communication_by_V._S._Bagad/Chapter1.ipynb1240
-rwxr-xr-xOptical_Fiber_Communication_by_V._S._Bagad/Chapter2.ipynb945
-rwxr-xr-xOptical_Fiber_Communication_by_V._S._Bagad/Chapter3.ipynb826
-rwxr-xr-xOptical_Fiber_Communication_by_V._S._Bagad/Chapter4.ipynb644
-rwxr-xr-xOptical_Fiber_Communication_by_V._S._Bagad/Chapter5.ipynb458
-rwxr-xr-xOptical_Fiber_Communication_by_V._S._Bagad/Chapter6-Advanced_Optical_Systems.ipynb317
-rwxr-xr-xOptical_Fiber_Communication_by_V._S._Bagad/Chapter6.ipynb317
-rwxr-xr-xOptical_Fiber_Communication_by_V._S._Bagad/README.txt10
-rwxr-xr-xOptical_Fiber_Communication_by_V._S._Bagad/screenshots/Chapter01-Ex1.7.1.pngbin0 -> 54470 bytes
-rwxr-xr-xOptical_Fiber_Communication_by_V._S._Bagad/screenshots/Chapter02-Ex2.2.1.pngbin0 -> 63781 bytes
-rwxr-xr-xOptical_Fiber_Communication_by_V._S._Bagad/screenshots/Chapter03-Ex3.2.1.pngbin0 -> 55531 bytes
-rwxr-xr-xOptical_Fiber_Communication_by_V._S._Bagad/screenshots/ch3.pngbin0 -> 34616 bytes
-rwxr-xr-xOptical_Fiber_Communication_by_V._S._Bagad/screenshots/ch3_1.pngbin0 -> 34616 bytes
-rwxr-xr-xOptical_Fiber_Communication_by_V._S._Bagad/screenshots/ch5.pngbin0 -> 45025 bytes
-rwxr-xr-xOptical_Fiber_Communication_by_V._S._Bagad/screenshots/ch5_1.pngbin0 -> 45025 bytes
-rwxr-xr-xOptical_Fiber_Communication_by_V._S._Bagad/screenshots/ch7.pngbin0 -> 39064 bytes
-rwxr-xr-xOptical_Fiber_Communication_by_V._S._Bagad/screenshots/ch7_1.pngbin0 -> 39064 bytes
-rwxr-xr-xOptical_Fiber_Communication_by_V._S._Bagad/screenshots/chapter2.pngbin0 -> 44565 bytes
-rwxr-xr-xOptical_Fiber_Communication_by_V._S._Bagad/screenshots/chapter5.pngbin0 -> 38867 bytes
-rwxr-xr-xOptical_Fiber_Communication_by_V._S._Bagad/screenshots/chapter6.pngbin0 -> 34694 bytes
25 files changed, 8870 insertions, 0 deletions
diff --git a/Optical_Fiber_Communication_by_V._S._Bagad/Chapter01-Fiber_Optics_Communications_System.ipynb b/Optical_Fiber_Communication_by_V._S._Bagad/Chapter01-Fiber_Optics_Communications_System.ipynb
new file mode 100755
index 00000000..ec323da9
--- /dev/null
+++ b/Optical_Fiber_Communication_by_V._S._Bagad/Chapter01-Fiber_Optics_Communications_System.ipynb
@@ -0,0 +1,1240 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:742c44cb267900361b88ee7b473acd2b1b40f32a4db7e15db6918955b1159df0"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter01:Fiber Optics Communications System"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "\n",
+ "Ex1.7.1:Pg-1.14"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "n1= 1.5 # for glass\n",
+ "n2= 1.33 # for water\n",
+ "phi1= (math.pi/6) # phi1 is the angel of incidence\n",
+ " # According to Snell's law...\n",
+ " # n1*sin(phi1)= n2*sin(phi2) \n",
+ "sinphi2= (n1/n2)*math.sin(phi1) # phi2 is the angle of refraction..\n",
+ "phi2 = math.asin(sinphi2)\n",
+ "temp= math.degrees(phi2)\n",
+ "print \" The angel of refraction in degrees =\",round(temp,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The angel of refraction in degrees = 34.33\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.7.2:Pg-1.14"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ "n1= 1.50 # RI of glass..\n",
+ "n2 = 1.0 # RI of air...\n",
+ " # According to Snell's law...\n",
+ " # n1*sin(phi1)= n2*sin(phi2) \n",
+ " # From definition of critical angel phi2 = 90 degrees and phi1 will be critical angel\n",
+ "t1=(n2/n1)*math.sin(math.pi/2)\n",
+ "phiC=math.asin(t1)\n",
+ "temp= math.degrees(phiC)\n",
+ "print \" The Critical angel in degrees =\",round(temp,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Critical angel in degrees = 41.81\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.7.3:Pg-1.15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ " # Given\n",
+ " # To find RI of glass\n",
+ " # To find the critical angle for glass...\n",
+ " \n",
+ "phi1 = 33 # Angle of incidence..\n",
+ "phi2 = 90 # Angle of refraction..\n",
+ "n2= 1.0 \n",
+ "\n",
+ "n1 = round(sin(math.radians(phi2))/sin(math.radians(phi1)),3) \n",
+ "print \" The Refractive Index is =\",n1 \n",
+ "\n",
+ "#phiC = math.asin((n2/n1)*math.sin(90)) \n",
+ "phiC=math.asin(0.54)\n",
+ "print \" \\n\\nThe Critical angel in degrees =\",round(math.degrees(phiC),2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Refractive Index is = 1.836\n",
+ " \n",
+ "\n",
+ "The Critical angel in degrees = 32.68\n"
+ ]
+ }
+ ],
+ "prompt_number": 81
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.7.4:Pg-1.15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ " # Given\n",
+ "import math\n",
+ " \n",
+ "n1= 1.5 # TheRi of medium 1\n",
+ "n2= 1.36 # the RI of medium 2\n",
+ "phi1= 30 # The angle of incidence\n",
+ " # According to Snell's law...\n",
+ " # n1*sin(phi1)= n2*sin(phi2) \n",
+ "phi2 = math.asin((n1/n2)*math.sin(math.radians(phi1))) \n",
+ "print \" The angel of refraction is in degrees from normal = \",round(math.degrees(phi2),2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The angel of refraction is in degrees from normal = 33.47\n"
+ ]
+ }
+ ],
+ "prompt_number": 91
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.7.5:Pg-1.16"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ " \n",
+ "n1 = 3.6 # RI of GaAs..\n",
+ "n2 = 3.4 # RI of AlGaAs..\n",
+ "phi1 = 80 # Angle of Incidence..\n",
+ " # According to Snell's law...\n",
+ " # n1*sin(phi1)= n2*sin(phi2) \n",
+ " # At critical angle phi2 = 90...\n",
+ "phiC = math.asin((n2/n1)*sin(math.radians(90)) )\n",
+ "print \" The Critical angel in degrees =\",round(math.degrees(phiC),2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Critical angel in degrees = 70.81\n"
+ ]
+ }
+ ],
+ "prompt_number": 97
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.9.1:Pg-1.22"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math \n",
+ "\n",
+ "n1= 1.5 # RI of medium 1\n",
+ "n2 =1.45 # RI of medium 2\n",
+ "\n",
+ "delt= (n1-n2)/n1 \n",
+ "NA = n1*(math.sqrt(2*delt)) \n",
+ "print \" The Numerical aperture =\",round(NA,2)\n",
+ "phiA = math.asin(NA) \n",
+ "print \" \\n\\nThe Acceptance angel in degrees =\",round(math.degrees(phiA),2) \n",
+ "\n",
+ "phiC = math.asin(n2/n1) \n",
+ "print \" \\n\\nThe Critical angel in degrees =\",round(degrees(phiC),2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Numerical aperture = 0.39\n",
+ " \n",
+ "\n",
+ "The Acceptance angel in degrees = 22.79\n",
+ " \n",
+ "\n",
+ "The Critical angel in degrees = 75.16\n"
+ ]
+ }
+ ],
+ "prompt_number": 100
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.9.2:Pg-1.23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ "\n",
+ "n1= 1.5 # RI of core\n",
+ "n2 = 1.48 # RI of cladding..\n",
+ "\n",
+ "NA = math.sqrt((n1**2)-(n2**2)) \n",
+ "print \" The Numerical Aperture =\",round(NA,2) \n",
+ "\n",
+ "phiA = math.asin(NA) \n",
+ "print \" \\n\\nThe Critical angel =\",round(math.degrees(phiA),2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Numerical Aperture = 0.24\n",
+ " \n",
+ "\n",
+ "The Critical angel = 14.13\n"
+ ]
+ }
+ ],
+ "prompt_number": 101
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.9.3:Pg-1.23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math \n",
+ " \n",
+ "\n",
+ "NA = 0.35 # Numerical Aperture\n",
+ "delt = 0.01 \n",
+ " # NA= n1*(math.sqrt(2*delt) n1 is RI of core\n",
+ "n1 = 0.35/(math.sqrt(2*delt)) \n",
+ "print \"The RI of core =\",round(n1,4) \n",
+ "\n",
+ " # Numerical Aperture is also given by \n",
+ " # NA = math.sqrt(n1**2 - n2**2) # n2 is RI of cladding\n",
+ "n2 = math.sqrt((n1**2-NA**2)) \n",
+ "print \" \\n\\nThe RI of Cladding =\",round(n2,3) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The RI of core = 2.4749\n",
+ " \n",
+ "\n",
+ "The RI of Cladding = 2.45\n"
+ ]
+ }
+ ],
+ "prompt_number": 104
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.9.4:Pg-1.24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ "\n",
+ "Vc = 2.01*10**8 # velocity of light in core in m/sec...\n",
+ "phiC= 80.0 # Critical angle in degrees...\n",
+ "\n",
+ " # RI of Core (n1) is given by (Velocity of light in air/ velocity of light in air)...\n",
+ "n1= 3*10**8/Vc \n",
+ " # From critical angle and the value of n1 we calculate n2...\n",
+ "n2 = sin(math.radians(phiC))*n1 # RI of cladding...\n",
+ "NA = math.sqrt(n1**2-n2**2) \n",
+ "print \" The Numerical Aperture =\",round(NA,2) \n",
+ "phiA = math.asin(NA) # Acceptance angle...\n",
+ "print \" \\n\\nThe Acceptance angel in degrees =\",round(math.degrees(phiA),2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Numerical Aperture = 0.26\n",
+ " \n",
+ "\n",
+ "The Acceptance angel in degrees = 15.02\n"
+ ]
+ }
+ ],
+ "prompt_number": 106
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.9.5:Pg-1.25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ "n1 = 1.4 # RI of Core..\n",
+ "n2 = 1.35 # RI of Cladding\n",
+ "\n",
+ "phiC = math.asin(n2/n1) # Critical angle..\n",
+ "print \" The Critical angel in degrees =\",round(math.degrees(phiC),2) \n",
+ "\n",
+ "NA = math.sqrt(n1**2-n2**2) # numerical Aperture...\n",
+ "print \" \\n\\nThe Numerical Aperture is =\",round(NA,2) \n",
+ "\n",
+ "phiA = math.asin(NA) # Acceptance angle... \n",
+ "print \" \\n\\nThe Acceptance angel in degrees =\",round(math.degrees(phiA),2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Critical angel in degrees = 74.64\n",
+ " \n",
+ "\n",
+ "The Numerical Aperture is = 0.37\n",
+ " \n",
+ "\n",
+ "The Acceptance angel in degrees = 21.77\n"
+ ]
+ }
+ ],
+ "prompt_number": 107
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.9.6:Pg-1.25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ "n1 = 1.48 # RI of core..\n",
+ "n2 = 1.46 # RI of Cladding..\n",
+ "\n",
+ "NA = math.sqrt(n1**2-n2**2) # Numerical Aperture..\n",
+ "print \" The Numerical Aperture is =\",round(NA,3) \n",
+ "\n",
+ "theta = math.pi*NA**2 # The entrance angle theta..\n",
+ "print \" \\n\\nThe Entrance angel in degrees =\",round(theta,3) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Numerical Aperture is = 0.242\n",
+ " \n",
+ "\n",
+ "The Entrance angel in degrees = 0.185\n"
+ ]
+ }
+ ],
+ "prompt_number": 110
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.9.7:Pg-1.26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math \n",
+ "\n",
+ "delt = 0.007 # relative refractive index difference \n",
+ "n1 = 1.45 # RI of core...\n",
+ "NA = n1* math.sqrt((2*delt)) \n",
+ "print \" The Numerical Aperture is =\",round(NA,4) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Numerical Aperture is = 0.1716\n"
+ ]
+ }
+ ],
+ "prompt_number": 112
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.9.8:Pg-1.26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ " # Given\n",
+ "import math\n",
+ "\n",
+ "phiA = 8 # accepatance angle in degrees...\n",
+ "n1 =1.52 # RI of core...\n",
+ "\n",
+ "NA = sin(math.radians(phiA)) # Numerical Aperture...\n",
+ "\n",
+ "delt = NA**2/(2*(n1**2)) # Relative RI difference...\n",
+ "print \" The relative refractive index difference =\",round(delt,5) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The relative refractive index difference = 0.00419\n"
+ ]
+ }
+ ],
+ "prompt_number": 114
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "\n",
+ "Ex1.9.9:Pg-1.27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ "delt = 0.01 # relative RI difference..\n",
+ "n1 = 1.48 # RI of core...\n",
+ "\n",
+ "NA = n1*(math.sqrt(2*delt)) # Numerical Aperture..\n",
+ "print \" The Numerical Aperture =\",round(NA,3) \n",
+ "\n",
+ "theta = math.pi*NA**2 # Solid Acceptance angle...\n",
+ "print \" \\n\\nThe Solid Acceptance angel in degrees =\",round(theta,4) \n",
+ "\n",
+ "n2 = (1-delt)*n1 \n",
+ "phiC = math.asin(n2/n1) # Critical Angle...\n",
+ "print \" \\n\\nThe Critical angel in degrees =\",round(math.degrees(phiC),2) \n",
+ "print \" \\n\\nCritical angle wrong due to rounding off errors in trignometric functions..\\n Actual value is 90.98 in book.\" \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Numerical Aperture = 0.209\n",
+ " \n",
+ "\n",
+ "The Solid Acceptance angel in degrees = 0.1376\n",
+ " \n",
+ "\n",
+ "The Critical angel in degrees = 81.89\n",
+ " \n",
+ "\n",
+ "Critical angle wrong due to rounding off errors in trignometric functions..\n",
+ " Actual value is 90.98 in book.\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.14.1:Pg-1.41"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ "d = 50*10**-6 # diameter of fibre...\n",
+ "n1 = 1.48 # RI of core..\n",
+ "n2 = 1.46 # RI of cladding..\n",
+ "lamda = 0.82*10**-6 # wavelength of light..\n",
+ "\n",
+ "NA = math.sqrt(n1**2-n2**2) # Numerical Aperture..\n",
+ "Vn= math.pi*d*NA/lamda # normalised frequency...\n",
+ "M = Vn**2/2 # number of modes...\n",
+ "print \" The number of modes in the fibre are =\",int(M) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The number of modes in the fibre are = 1078\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.14.2:Pg-1.42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ " \n",
+ " \n",
+ "V = 26.6 # Normalised frequency..\n",
+ "lamda = 1300*10**-9 # wavelenght of operation\n",
+ "a = 25*10**-6 # radius of fibre.\n",
+ "NA = V*lamda/(2*math.pi*a) # Numerical Aperture..\n",
+ "print \" The Numerical Aperture =\",round(NA,3) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Numerical Aperture = 0.22\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.14.3:Pg-1.43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ " \n",
+ "a = 40*10**-6 # radius of core...\n",
+ "delt = 0.015 # relative RI difference..\n",
+ "lamda= 0.85*10**-6 # wavelength of operation..\n",
+ "n1=1.48 # RI of core..\n",
+ "\n",
+ "NA = n1*math.sqrt(2*delt) # Numerical Aperture..\n",
+ "print \" The Numerical Aperture =\", round(NA,4) \n",
+ "V = 2*math.pi*a*NA/lamda # normalised frequency\n",
+ "print \" \\n\\nThe Normalised frequency =\",round(V,2) \n",
+ "\n",
+ "M = V**2/2 # number of modes..\n",
+ "print \" \\n\\nThe number of modes in the fibre are =\",int(M) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Numerical Aperture = 0.2563\n",
+ " \n",
+ "\n",
+ "The Normalised frequency = 75.8\n",
+ " \n",
+ "\n",
+ "The number of modes in the fibre are = 2872\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.14.4:Pg-1.43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ "\n",
+ "NA = 0.20 # Numerical Aperture..\n",
+ "M = 1000 # number of modes..\n",
+ "lamda = 850*10**-9 # wavelength of operation..\n",
+ "\n",
+ "a = math.sqrt(M*2*lamda**2/(math.pi**2*NA**2)) # radius of core..\n",
+ "a=a*10**6 # converting in um for displaying...\n",
+ "print \" The radius of the core in um =\",round(a,2) \n",
+ "a=a*10**-6 \n",
+ "M1= ((math.pi*a*NA/(1320*10**-9))**2)/2\n",
+ "print \" \\n\\nThe number of modes in the fibre at 1320um =\",int(M1) \n",
+ "print \" \\n\\n***The number of modes in the fibre at 1320um is calculated wrongly in book\" \n",
+ "M2= ((math.pi*a*NA/(1550*10**-9))**2)/2\n",
+ "print \" \\n\\nThe number of modes in the fibre at 1550um =\",int(M2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The radius of the core in um = 60.5\n",
+ " \n",
+ "\n",
+ "The number of modes in the fibre at 1320um = 414\n",
+ " \n",
+ "\n",
+ "***The number of modes in the fibre at 1320um is calculated wrongly in book\n",
+ " \n",
+ "\n",
+ "The number of modes in the fibre at 1550um = 300\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.14.5:Pg-1.44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ " \n",
+ "NA = 0.2 # Numerical Aperture..\n",
+ "n2= 1.59 # RI of cladding..\n",
+ "n0= 1.33 # RI of water..\n",
+ "lamda = 1300*10**-9 # wavelength..\n",
+ "a = 25*10**-6 # radius of core..\n",
+ "n1 = math.sqrt(NA**2+n2**2) # RI of core..\n",
+ "phiA= math.asin(math.sqrt(n1**2-n2**2)/n0) # Acceptance angle..\n",
+ "print \" The Acceptance angle is =\",round(math.degrees(phiA),2) \n",
+ "\n",
+ "phiC= math.asin(n2/n1) # Critical angle..\n",
+ "print \" \\n\\nThe critical angle is =\",round(math.degrees(phiC),2) \n",
+ "V = 2*math.pi*a*NA/lamda # normalisd frequency\n",
+ "M= V**2/2 # number of modes\n",
+ "print \" \\n\\nThe number of modes in the fibre are =\",int(M) \n",
+ "\n",
+ "print \" \\n\\n***The value of the angle differ from the book because of round off errors.\" \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Acceptance angle is = 8.65\n",
+ " \n",
+ "\n",
+ "The critical angle is = 82.83\n",
+ " \n",
+ "\n",
+ "The number of modes in the fibre are = 292\n",
+ " \n",
+ "\n",
+ "***The value of the angle differ from the book because of round off errors.\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.14.6:Pg-1.46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ "\n",
+ "V= 26.6 # Normalised frequency..\n",
+ "lamda= 1300*10**-9 # wavelength of operation..\n",
+ "a= 25*10**-6 # radius of core..\n",
+ "\n",
+ "NA = V*lamda/(2*math.pi*a) # Numerical Aperture..\n",
+ "print \" The Numerical Aperture =\",round(NA,2) \n",
+ "theta = math.pi*NA**2 # solid Acceptance Angle..\n",
+ "print \" \\n\\nThe solid acceptance angle in radians =\",round(theta,3) \n",
+ "\n",
+ "M= V**2/2 # number of modes..\n",
+ "print \" \\n\\nThe number of modes in the fibre =\",round(M,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Numerical Aperture = 0.22\n",
+ " \n",
+ "\n",
+ "The solid acceptance angle in radians = 0.152\n",
+ " \n",
+ "\n",
+ "The number of modes in the fibre = 353.78\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.14.7:Pg-1.47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math \n",
+ "\n",
+ "n1= 1.49 # RI of core.\n",
+ "n2=1.47 # RI of cladding..\n",
+ "a= 2 # radius of core in um..\n",
+ "NA= math.sqrt(n1**2-n2**2) # Numerical Aperture..\n",
+ " # The maximum V number for single mode operation is 2.4...\n",
+ "V= 2.4 # Normalised frequency..\n",
+ "\n",
+ "lamda = 2*math.pi*a*NA/V # Cutoff wavelength...\n",
+ "print \" The cutoff wavelength in um =\",round(lamda,2) \n",
+ "\n",
+ "\n",
+ "lamda1 = 1.310 # Givenn cutoff wavelength in um..\n",
+ "d= V*lamda1/(math.pi*NA) # core diameter..\n",
+ "print \" \\n\\nThe core diameter in um =\",round(d,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cutoff wavelength in um = 1.27\n",
+ " \n",
+ "\n",
+ "The core diameter in um = 4.11\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.14.8:Pg-1.47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ " # Given\n",
+ "import math\n",
+ " \n",
+ "n1= 1.48 # RI of core..\n",
+ "a= 4.5 # core radius in um..\n",
+ "delt= 0.0025 # Relative RI difference..\n",
+ "V= 2.405 # For step index fibre..\n",
+ "lamda= (2*math.pi*a*n1*math.sqrt(2*delt))/V # cutoff wavelength..\n",
+ "print \" The cutoff wavelength in um =\",round(lamda,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cutoff wavelength in um = 1.23\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.14.9:Pg-1.48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math \n",
+ " \n",
+ "lamda= 0.82*10**-6 # wavelength ofoperation.\n",
+ "a= 2.5*10**-6 # Radius of core..\n",
+ "n1= 1.48 # RI of core..\n",
+ "n2= 1.46 # RI of cladding\n",
+ "NA= math.sqrt(n1**2-n2**2) # Numerical Aperture..\n",
+ "V= 2*math.pi*a*NA/lamda # Normalisd frequency..\n",
+ "print \" The normalised frequency =\",round(V,3) \n",
+ "M= V**2/2 # The number of modes..\n",
+ "print \" \\n\\nThe number of modes in the fibre are =\",round(M,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The normalised frequency = 4.645\n",
+ " \n",
+ "\n",
+ "The number of modes in the fibre are = 10.79\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.14.10:Pg-1.49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ " # Given\n",
+ "import math\n",
+ " \n",
+ "delt= 0.01 # Relative RI difference..\n",
+ "n1= 1.5 \n",
+ "M= 1100 # Number of modes...\n",
+ "lamda= 1.3 # wavelength of operation in um..\n",
+ "V= math.sqrt(2*M) # Normalised frequency...\n",
+ "d= V*lamda/(math.pi*n1*math.sqrt(2*delt)) # diameter of core..\n",
+ "print \" The diameter of the core in um =\",round(d,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The diameter of the core in um = 91.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.14.11:Pg-1.50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ "n1= 1.5 # RI of core..\n",
+ "n2= 1.38 # RI of cladding..\n",
+ "a= 25*10**-6 # radius of core..\n",
+ "lamda= 1300*10**-9 # wavelength of operation...\n",
+ "NA= math.sqrt(n1**2-n2**2) # Numerical Aperture..\n",
+ "print \" The Numerical Aperture of the given fibre =\",round(NA,4) \n",
+ "V= 2*math.pi*a*NA/lamda # Normalised frequency..\n",
+ "print \" \\n\\nThe normalised frequency =\",round(V,2) \n",
+ "theta= math.asin(NA) # Solid acceptance anglr..\n",
+ "print \" \\n\\nThe Solid acceptance angle in degrees =\",int(math.degrees(theta)) \n",
+ "M= V**2/2 # Number of modes..\n",
+ "print \" \\n\\nThe number of modes in the fibre are =\",int(M) \n",
+ "print \" \\n\\n***Number of modes wrongly calculated in the book..\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Numerical Aperture of the given fibre = 0.5879\n",
+ " \n",
+ "\n",
+ "The normalised frequency = 71.03\n",
+ " \n",
+ "\n",
+ "The Solid acceptance angle in degrees = 36\n",
+ " \n",
+ "\n",
+ "The number of modes in the fibre are = 2522\n",
+ " \n",
+ "\n",
+ "***Number of modes wrongly calculated in the book..\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.14.12:Pg-1.51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ "\n",
+ "lamda= 850*10**-9 # wavelength of operation.\n",
+ "a= 25*10**-6 # Radius of core\n",
+ "n1= 1.48 # RI of Core...\n",
+ "n2= 1.46 # RI of cladding..\n",
+ "\n",
+ "NA= math.sqrt(n1**2-n2**2) # Numerical Aperture\n",
+ "\n",
+ "V= 2*math.pi*a*NA/lamda # Normalised frequency..\n",
+ "print \" The normalised frequency =\",round(V,2) \n",
+ "\n",
+ "lamda1= 1320*10**-9 # wavelength changed...\n",
+ "V1= 2*math.pi*a*NA/lamda1 # Normalised frequency at new wavelength..\n",
+ "\n",
+ "M= V1**2/2 # Number of modes at new wavelength..\n",
+ "print \" \\n\\nThe number of modes in the fibre at 1320um =\",int(M) \n",
+ "lamda2= 1550*10**-9 # wavelength 2...\n",
+ "V2= 2*math.pi*a*NA/lamda2 # New normalised frequency..\n",
+ "M1= V2**2/2 # number of modes..\n",
+ "print \" \\n\\nThe number of modes in the fibre at 1550um =\",int(M1 )\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The normalised frequency = 44.81\n",
+ " \n",
+ "\n",
+ "The number of modes in the fibre at 1320um = 416\n",
+ " \n",
+ "\n",
+ "The number of modes in the fibre at 1550um = 301\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.15.1:Pg-1.56"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ " \n",
+ "n1= 1.48 # RI of core..\n",
+ "delt= 0.015 # relative RI differencr..\n",
+ "lamda= 0.85 # wavelength of operation..\n",
+ "V= 2.4 # for single mode of operation..\n",
+ "\n",
+ "a= V*lamda/(2*math.pi*n1*math.sqrt(2*delt)) # radius of core..\n",
+ "print \" The raduis of core in um =\",round(a,2) \n",
+ "print \" \\n\\nThe maximum possible core diameter in um =\",round(2*a,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The raduis of core in um = 1.27\n",
+ " \n",
+ "\n",
+ "The maximum possible core diameter in um = 2.53\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.15.2:Pg-1.56"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ " # Given\n",
+ "import math\n",
+ " \n",
+ "n1= 1.5 # RI of core..\n",
+ "delt= 0.01 # Relative RI difference...\n",
+ "lamda= 1.3 # Wavelength of operation...\n",
+ "V= 2.4*math.sqrt(2) # Maximum value of V for GRIN...\n",
+ "a= V*lamda/(2*math.pi*n1*math.sqrt(2*delt)) # radius of core..\n",
+ "print \" The radius of core in um =\",round(a,2) \n",
+ "print \" \\n\\nThe maximum possible core diameter in um =\",round(2*a,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The radius of core in um = 3.31\n",
+ " \n",
+ "\n",
+ "The maximum possible core diameter in um = 6.62\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.15.3:Pg-1.56"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ "\n",
+ "n1= 1.46 # RI of core..\n",
+ "a = 4.5 # radius of core in um..\n",
+ "delt= 0.0025 # relative RI difference..\n",
+ "V= 2.405 # Normalisd frequency for single mode..\n",
+ "lamda= 2*math.pi*a*n1*math.sqrt(2*delt)/V # cutoff wavelength...\n",
+ "print \" The cut off wavelength for the given fibre in um =\",round(lamda,3) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength for the given fibre in um = 1.214\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Optical_Fiber_Communication_by_V._S._Bagad/Chapter02-Optical_Fiber_for_Telecommunication.ipynb b/Optical_Fiber_Communication_by_V._S._Bagad/Chapter02-Optical_Fiber_for_Telecommunication.ipynb
new file mode 100755
index 00000000..46a8893c
--- /dev/null
+++ b/Optical_Fiber_Communication_by_V._S._Bagad/Chapter02-Optical_Fiber_for_Telecommunication.ipynb
@@ -0,0 +1,945 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:211878047ac07bbe36923a59422db9a2025fd46f216dee8cd476326a7778bb6a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter02: Optical Fiber for Telecommunication"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " Ex2.2.1:Pg-2.4"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ "\n",
+ "alpha= 3 # average loss Power decreases by 50% so P(0)/P(z)= 0.5\n",
+ "lamda= 900*10**-9 # wavelength\n",
+ "z= 10*math.log10(0.5)/alpha # z is the length\n",
+ "z= z*-1 \n",
+ "print \" The length over which power decreases by 50% in Kms= \",round(z,2) \n",
+ "\n",
+ "z1= 10*math.log10(0.25)/alpha # Power decreases by 75% so P(0)/P(z)= 0.25\n",
+ "z1=z1*-1 # as distance cannot be negative...\n",
+ "print \" \\n\\nThe length over which power decreases by 75% in Kms= \",round(z1,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The length over which power decreases by 50% in Kms= 1.0\n",
+ " \n",
+ "\n",
+ "The length over which power decreases by 75% in Kms= 2.01\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.2.2:Pg-2.5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "\n",
+ "z=30.0 # Length of the fibre in kms\n",
+ "alpha= 0.8 # in dB\n",
+ "P0= 200.0 # Power launched in uW\n",
+ "pz= P0/10**(alpha*z/10) \n",
+ "print \" The output power in uW =\",round(pz,4) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The output power in uW = 0.7962\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.2.3:Pg-2.6"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math \n",
+ "\n",
+ "z=8.0 # fibre length\n",
+ "p0= 120*10**-6 # power launched\n",
+ "pz= 3*10**-6 \n",
+ "alpha= 10*math.log10(p0/pz) # overall attenuation\n",
+ "print \" The overall attenuation in dB =\",round(alpha,2) \n",
+ "alpha = alpha/z # attenuation per km\n",
+ "alpha_new= alpha *10 # attenuation for 10kms\n",
+ "total_attenuation = alpha_new + 9 # 9dB because of splices\n",
+ "print \" \\n\\nThe total attenuation in dB =\",int(total_attenuation) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The overall attenuation in dB = 16.02\n",
+ " \n",
+ "\n",
+ "The total attenuation in dB = 29\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.2.4:Pg-2.6"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ " # Given\n",
+ " \n",
+ "z=12.0 # fibre length\n",
+ "alpha = 1.5 \n",
+ "p0= 0.3 \n",
+ "pz= p0/10**(alpha*z/10) \n",
+ "pz=pz*1000 # formatting pz in nano watts...\n",
+ "print \" The power at the output of the cable in W = \",round(pz,2),\"x 10^-9\" \n",
+ "alpha_new= 2.5 \n",
+ "pz=pz/1000 # pz in uWatts...\n",
+ "p0_new= 10**(alpha_new*z/10)*pz \n",
+ "print \" \\n\\nThe Input power in uW= \",round(p0_new,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The power at the output of the cable in W = 4.75 x 10^-9\n",
+ " \n",
+ "\n",
+ "The Input power in uW= 4.75\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.2.5:Pg-2.7"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ "\n",
+ "p0=150*10**-6 # power input\n",
+ "z= 10.0 # fibre length in km\n",
+ "pz= -38.2 # in dBm...\n",
+ "pz= 10**(pz/10)*1*10**-3 \n",
+ "alpha_1= 10/z *math.log10(p0/pz) # attenuation in 1st window\n",
+ "print \" Attenuation is 1st window in dB/Km =\",round(alpha_1,2) \n",
+ "alpha_2= 10/z *math.log10(p0/(47.5*10**-6)) # attenuation in 2nd window\n",
+ "print \" \\n\\nAttenuation is 2nd window in dB/Km =\",round(alpha_2,2) \n",
+ "alpha_3= 10/z *math.log10(p0/(75*10**-6)) # attenuation in 3rd window\n",
+ "print \" \\n\\nAttenuation is 3rd window in dB/Km =\",round(alpha_3,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Attenuation is 1st window in dB/Km = 3.0\n",
+ " \n",
+ "\n",
+ "Attenuation is 2nd window in dB/Km = 0.5\n",
+ " \n",
+ "\n",
+ "Attenuation is 3rd window in dB/Km = 0.3\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "\n",
+ "Ex2.2.6:Pg-2.8"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "p0=3*10**-3 \n",
+ "pz=3*10**-6 \n",
+ "alpha= 0.5 \n",
+ "z= math.log10(p0/pz)/(alpha/10) \n",
+ "print \" The Length of the fibre in Km =\",int(z)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Length of the fibre in Km = 60\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.2.7:Pg-2.9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "\n",
+ "z= 10.0 \n",
+ "p0= 100*10**-6 # input power\n",
+ "pz=5*10**-6 # output power\n",
+ "alpha = 10*math.log10(p0/pz) # total attenuation\n",
+ "print \" The overall signal attenuation in dB = \",round(alpha,2) \n",
+ "alpha = alpha/z # attenuation per km\n",
+ "print \" \\n\\nThe attenuation per Km in dB/Km = \",round(alpha,2)\n",
+ "z_new = 12.0 \n",
+ "splice_attenuation = 11*0.5 \n",
+ "cable_attenuation = alpha*z_new \n",
+ "total_attenuation = splice_attenuation+cable_attenuation \n",
+ "print \" \\n\\nThe overall signal attenuation for 12Kms in dB = \",round(total_attenuation,1) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The overall signal attenuation in dB = 13.01\n",
+ " \n",
+ "\n",
+ "The attenuation per Km in dB/Km = 1.3\n",
+ " \n",
+ "\n",
+ "The overall signal attenuation for 12Kms in dB = 21.1\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.2.8:Pg-2.15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "Tf = 1400.0 # fictive temperature\n",
+ "BETA = 7*10**-11 \n",
+ "n= 1.46 # RI \n",
+ "p= 0.286 # photo elastic constant\n",
+ "Kb = 1.381*10**-23 # Boltzmann's constant\n",
+ "lamda = 850*10**-9 # wavelength\n",
+ "alpha_scat = 8*math.pi**3*n**8*p**2*Kb*Tf*BETA/(3*lamda**4) \n",
+ "l= 1000 # fibre length\n",
+ "TL = exp(-alpha_scat*l) # transmission loss\n",
+ "attenuation = 10*math.log10(1/TL) \n",
+ "print \" The attenuation in dB/Km =\",round(attenuation,3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The attenuation in dB/Km = 1.572\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.3.1:Pg-2.20"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "alpha = 2 \n",
+ "n1= 1.5 \n",
+ "a= 25*10**-6 \n",
+ "lamda= 1.3*10**-6 \n",
+ "M= 0.5 \n",
+ "NA= math.sqrt(0.5*2*1.3**2/(math.pi**2*25**2)) \n",
+ "Rc= 3*n1**2*lamda/(4*math.pi*NA**3) \n",
+ "Rc=Rc*1000 # converting into um.....\n",
+ "print \" The radius of curvature in um =\",round(Rc,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The radius of curvature in um = 153.98\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.5.1:Pg-2.25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "lamda = 850 *10**-9 \n",
+ "sigma= 45*10**-9 \n",
+ "L= 1 \n",
+ "M= 0.025/(3*10**5*lamda) \n",
+ "sigma_m= sigma*L*M \n",
+ "sigma_m= sigma_m*10**9 # formatting in ns/km....\n",
+ "print \" The Pulse spreading in ns/Km =\",round(sigma_m,2) \n",
+ "print \" \\n\\nNOTE*** - The answer in text book is wrongly calculated..\" \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Pulse spreading in ns/Km = 4.41\n",
+ " \n",
+ "\n",
+ "NOTE*** - The answer in text book is wrongly calculated..\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.5.2:Pg-2.26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "lamda= 2*10**-9 \n",
+ "sigma = 75 \n",
+ "D_mat= 0.03/(3*10**5*2) \n",
+ "sigma_m= 2*1*D_mat \n",
+ "sigma_m=sigma_m*10**9 # Fornamtting in ns/Km\n",
+ "print \" The Pulse spreading in ns/Km =\",int(sigma_m)\n",
+ "D_mat_led= 0.025/(3*10**5*1550) \n",
+ "sigma_m_led = 75*1*D_mat_led*10**9 # in ns/Km\n",
+ "print \" \\n\\nThe Pulse spreading foe LED is ns/Km =\",round(sigma_m_led,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Pulse spreading in ns/Km = 100\n",
+ " \n",
+ "\n",
+ "The Pulse spreading foe LED is ns/Km = 4.03\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.5.3:Pg-2.26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "lamda = 850 \n",
+ "sigma= 20 \n",
+ "D_mat = 0.055/(3*10**5*lamda) \n",
+ "sigma_m= sigma*1*D_mat \n",
+ "D_mat=D_mat*10**12 # in Ps...\n",
+ "sigma_m=sigma_m*10**9 # in ns # # \n",
+ "print \" The material Dispersion in Ps/nm-Km =\",round(D_mat,2) \n",
+ "print \" \\n\\nThe Pulse spreading in ns/Km =\",round(sigma_m,4) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The material Dispersion in Ps/nm-Km = 215.69\n",
+ " \n",
+ "\n",
+ "The Pulse spreading in ns/Km = 4.3137\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.5.4:Pg-2.30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "n2= 1.48 \n",
+ "dele = 0.2 \n",
+ "lamda = 1320 \n",
+ "Dw = -n2*dele*0.26/(3*10**5*lamda) \n",
+ "Dw=Dw*10**10 # converting in math.picosecs....\n",
+ "print \" The waveguide dispersion in math.picosec/nm.Km =\",round(Dw,3) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The waveguide dispersion in math.picosec/nm.Km = -1.943\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.6.1:Pg-2.34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "t= 0.1*10**-6 \n",
+ "L= 12 \n",
+ "B_opt= 1/(2*t) \n",
+ "B_opt=B_opt/1000000 # converting from Hz to MHz\n",
+ "print \" The maximum optical bandwidth in MHz. =\",int(B_opt) \n",
+ "dele= t/L # Pulse broadening\n",
+ "dele=dele*10**9 # converting in ns...\n",
+ "print \" \\n\\nThe pulse broadening per unit length in ns/Km =\",round(dele,2) \n",
+ "BLP= B_opt*L # BW length product\n",
+ "print \" \\n\\nThe Bandwidth-Length Product in MHz.Km =\",int(BLP) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The maximum optical bandwidth in MHz. = 5\n",
+ " \n",
+ "\n",
+ "The pulse broadening per unit length in ns/Km = 8.33\n",
+ " \n",
+ "\n",
+ "The Bandwidth-Length Product in MHz.Km = 60\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.6.2:Pg-2.34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "t= 0.1*10**-6 \n",
+ "L= 10.0 \n",
+ "B_opt= 1/(2*t) \n",
+ "B_opt=B_opt/1000000 # converting from Hz to MHz\n",
+ "print \" The maximum optical bandwidth in MHz. =\",int(B_opt) \n",
+ "dele= t/L \n",
+ "dele=dele/10**-6 # converting in us...\n",
+ "print \" \\n\\nThe dispersion per unit length in us/Km =\",round(dele,2) \n",
+ "BLP= B_opt*L \n",
+ "print \" \\n\\nThe Bandwidth-Length product in MHz.Km =\",int(BLP) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The maximum optical bandwidth in MHz. = 5\n",
+ " \n",
+ "\n",
+ "The dispersion per unit length in us/Km = 0.01\n",
+ " \n",
+ "\n",
+ "The Bandwidth-Length product in MHz.Km = 50\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.6.3:Pg-2.35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "t= 0.1*10**-6 \n",
+ "L=15 \n",
+ "B_opt= 1/(2*t) \n",
+ "B_opt=B_opt/1000000 # converting from Hz to MHz\n",
+ "print \" The maximum optical bandwidth in MHz. =\",int(B_opt) \n",
+ "dele= t/L*10**9 # in ns...\n",
+ "print \" \\n\\nThe dispersion per unit length in ns/Km =\",round(dele,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The maximum optical bandwidth in MHz. = 5\n",
+ " \n",
+ "\n",
+ "The dispersion per unit length in ns/Km = 6.67\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.6.4:Pg-2.35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "lamda = 0.85*10**-6 \n",
+ "rms_spect_width = 0.0012*lamda \n",
+ "sigma_m= rms_spect_width*1*98.1*10**-3 \n",
+ "sigma_m=sigma_m*10**9 # converting in ns...\n",
+ "print \" The Pulse Broadening due to material dispersion in ns/Km =\",round(sigma_m,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Pulse Broadening due to material dispersion in ns/Km = 0.1\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.6.5:Pg-2.35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "\n",
+ "L= 5.0 # in KM\n",
+ "n1= 1.5 \n",
+ "dele= 0.01 \n",
+ "c= 3*10**8 # in m/s\n",
+ "delta_t = (L*n1*dele)/c \n",
+ "delta_t=delta_t*10**12 # convertin to nano secs...\n",
+ "print \" The delay difference in ns =\",round(delta_t,1)\n",
+ "sigma= L*n1*dele/(2*math.sqrt(3)*c) \n",
+ "sigma=sigma*10**12 # convertin to nano secs...\n",
+ "print \" \\n\\nThe r.m.s pulse broadening in ns =\",round(sigma,2) \n",
+ "B= 0.2/sigma*1000 # in Mz\n",
+ "print \" \\n\\nThe maximum bit rate in MBits/sec =\",round(B,2) \n",
+ "BLP = B*5 \n",
+ "print \" \\n\\nThe Bandwidth-Length in MHz.Km =\",round(BLP,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The delay difference in ns = 250.0\n",
+ " \n",
+ "\n",
+ "The r.m.s pulse broadening in ns = 72.17\n",
+ " \n",
+ "\n",
+ "The maximum bit rate in MBits/sec = 2.77\n",
+ " \n",
+ "\n",
+ "The Bandwidth-Length in MHz.Km = 13.86\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.6.6:Pg-2.36"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "del_t_inter = 5*1 \n",
+ "del_t_intra = 50*80*1 \n",
+ "total_dispersion = math.sqrt(5**2 + 0.4**2) \n",
+ "print \" Total dispersion in ns =\",round(total_dispersion,3) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Total dispersion in ns = 5.016\n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.7.1:Pg-2.37"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "t= 0.1*10**-6 \n",
+ "L=15 \n",
+ "dele= t/L*10**9 # convertin to nano secs...\n",
+ "print \" The Pulse Dispersion in ns =\",round(dele,2) \n",
+ "B_opt= 1/(2*t)/10**6 # convertin to nano secs...\n",
+ "print \" \\n\\n The maximum possible Bandwidth in MHz =\",int(B_opt) \n",
+ "BLP = B_opt*L \n",
+ "print \" \\n\\nThe BandwidthLength product in MHz.Km =\",int(BLP) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Pulse Dispersion in ns = 6.67\n",
+ " \n",
+ "\n",
+ " The maximum possible Bandwidth in MHz = 5\n",
+ " \n",
+ "\n",
+ "The BandwidthLength product in MHz.Km = 75\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.7.2:Pg-2.38"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "L= 6 \n",
+ "n1= 1.5 \n",
+ "delt= 0.01 \n",
+ "delta_t = L*n1*delt/(3*10**8)*10**12 # convertin to nano secs...\n",
+ "print \" The delay difference in ns =\",int(delta_t) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The delay difference in ns = 300\n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.7.3:Pg-2.39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "Lb= 0.09 \n",
+ "lamda= 1.55*10**-6 \n",
+ "delta_lamda = 1*10**-9 \n",
+ "Bf= lamda/Lb \n",
+ "Lbc= lamda**2/(Bf*delta_lamda) \n",
+ "print \" The modal Bifriengence in meters =\",round(Lbc,2) \n",
+ "beta_xy= 2*math.pi/Lb \n",
+ "print \" \\n\\nThe difference between propogation constants =\",round(beta_xy,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The modal Bifriengence in meters = 139.5\n",
+ " \n",
+ "\n",
+ "The difference between propogation constants = 69.81\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.7.4:Pg-2.39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "t= 0.1*10**-6 \n",
+ "B_opt= 1/(2*t)/1000000 \n",
+ "print \" The maximum possible Bandwidth in MHz =\",int(B_opt) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The maximum possible Bandwidth in MHz = 5\n"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.7.5:Pg-2.40"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "t= 0.1*10**-6 \n",
+ "B_opt= 1/(2*t)/1000000 \n",
+ "print \" The maximum possible Bandwidth in MHz =\",int(B_opt) \n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The maximum possible Bandwidth in MHz = 5\n"
+ ]
+ }
+ ],
+ "prompt_number": 55
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Optical_Fiber_Communication_by_V._S._Bagad/Chapter03-Optical_Sources_and_Transmitters.ipynb b/Optical_Fiber_Communication_by_V._S._Bagad/Chapter03-Optical_Sources_and_Transmitters.ipynb
new file mode 100755
index 00000000..1e7a6431
--- /dev/null
+++ b/Optical_Fiber_Communication_by_V._S._Bagad/Chapter03-Optical_Sources_and_Transmitters.ipynb
@@ -0,0 +1,826 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1c5868fa547e8a659e03148d4a7bf0c9a34282713a490e0b68c5b0aa98a2f7e8"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter03:Optical Sources and Transmitters"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.2.1:Pg-3.10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "x= 0.07 \n",
+ "Eg= 1.424+1.266*x+0.266*x**2 \n",
+ "lamda= 1.24/Eg \n",
+ "print \" The emitted wavelength in um =\",round(lamda,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The emitted wavelength in um = 0.82\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.2.2:Pg-3.10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "x= 0.26 \n",
+ "y=0.57 \n",
+ "Eg= 1.35-0.72*y+0.12*y**2 \n",
+ "lamda = 1.24/Eg \n",
+ "print \" The wavelength emitted in um =\",round(lamda,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The wavelength emitted in um = 1.27\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.2.3:Pg-3.12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "Tr = 60*10**-9 # radiative recombination time\n",
+ "Tnr= 90*10**-9 # non radiative recomb time\n",
+ "I= 40*10**-3 # current\n",
+ "t = Tr*Tnr/(Tr+Tnr) # total recomb time\n",
+ "t=t*10**9 # Converting in nano secs...\n",
+ "print \" The total carrier recombination life time in ns =\",int(t) \n",
+ "t=t/10**9 \n",
+ "h= 6.625*10**-34 # plancks const\n",
+ "c= 3*10**8 \n",
+ "q=1.602*10**-19 \n",
+ "lamda= 0.87*10**-6 \n",
+ "Pint=(t/Tr)*((h*c*I)/(q*lamda)) \n",
+ "Pint=Pint*1000 # converting inmW...\n",
+ "print \" \\n\\nThe Internal optical power in mW =\",round(Pint,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total carrier recombination life time in ns = 36\n",
+ " \n",
+ "\n",
+ "The Internal optical power in mW = 34.22\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.2.4:Pg-3.13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "lamda = 1310*10**-9 \n",
+ "Tr= 30*10**-9 \n",
+ "Tnr= 100*10**-9 \n",
+ "I= 40*10**-3 \n",
+ "t= Tr*Tnr/(Tr+Tnr) \n",
+ "t=t*10**9 # converting in nano secs...\n",
+ "print \" Bulk recombination life time in ns =\",round(t,2) \n",
+ "t=t/10**9 \n",
+ "n= t/Tr \n",
+ "print \" \\n\\nInternal quantum efficiency =\",round(n,3) \n",
+ "h= 6.625*10**-34 # plancks const\n",
+ "c= 3*10**8 \n",
+ "q=1.602*10**-19 \n",
+ "Pint=(0.769*h*c*I)/(q*lamda)*1000 \n",
+ "print \" \\n\\nThe internal power level in mW =\",round(Pint,3) \n",
+ "print \" \\n\\n***NOTE: Internal Power wrong in text book.. Calculation Error..\" \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Bulk recombination life time in ns = 23.08\n",
+ " \n",
+ "\n",
+ "Internal quantum efficiency = 0.769\n",
+ " \n",
+ "\n",
+ "The internal power level in mW = 29.131\n",
+ " \n",
+ "\n",
+ "***NOTE: Internal Power wrong in text book.. Calculation Error..\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.2.5:Pg-3.14"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "nx= 3.6 \n",
+ "TF= 0.68 \n",
+ "n= 0.3 \n",
+ " # Pe=Pint*TF*1/(4*nx**2) \n",
+ " # ne= Pe/Px*100 ..eq0\n",
+ " # Pe = 0.013*Pint # Eq 1\n",
+ " # Pint = n*P # Eq 2\n",
+ " # substitute eq2 and eq1 in eq0\n",
+ "ne = 0.013*0.3*100 \n",
+ "print \" The external Power efficiency in % =\",round(ne,3) \n",
+ " # Wrongly printed in textbook. it should be P instead of Pint in last step\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The external Power efficiency in % = 0.39\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.2.6:Pg-3.15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "lamda= 0.85*10**-6 \n",
+ "Nint = 0.60 \n",
+ "I= 20*10**-3 \n",
+ "h= 6.625*10**-34 # plancks const\n",
+ "c= 3*10**8 \n",
+ "e=1.602*10**-19 \n",
+ "Pint = Nint*h*c*I/(e*lamda) \n",
+ "print \" The optical power emitted in W =\",round(Pint,4) \n",
+ "\n",
+ "TF= 0.68 \n",
+ "nx= 3.6 \n",
+ "Pe= Pint*TF/(4*nx**2)*1000000 \n",
+ "print \" \\n\\nPower emitted in the air in uW =\",round(Pe,1) \n",
+ "Pe=Pe/1000000 \n",
+ "Nep=Pe/Pint*100 \n",
+ "print \" \\n\\nExternal power efficiency in % =\",round(Nep,1) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The optical power emitted in W = 0.0175\n",
+ " \n",
+ "\n",
+ "Power emitted in the air in uW = 229.7\n",
+ " \n",
+ "\n",
+ "External power efficiency in % = 1.3\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.2.7:Pg-3.16"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "lamda = 0.87*10**-6 \n",
+ "Tr= 50*10**-9 \n",
+ "I= 0.04 \n",
+ "Tnr= 110*10**-9 \n",
+ "t= Tr*Tnr/(Tr+Tnr) \n",
+ "t=t*10**9 # converting in ns...\n",
+ "print \" Total carrier recombination life time in ns =\",round(t,2) \n",
+ "t=t/10**9 \n",
+ "h= 6.625*10**-34 # plancks const\n",
+ "c= 3*10**8 \n",
+ "q=1.602*10**-19 \n",
+ "n= t/Tr \n",
+ "print \" \\n\\nThe efficiency in % \",round(n,3) \n",
+ "Pint=(n*h*c*I)/(q*lamda)*1000 \n",
+ "print \" \\n\\nInternal power generated in mW =\",round(Pint,2) \n",
+ "print \" \\n\\n***NOTE- Internal Power wrong in book... \"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Total carrier recombination life time in ns = 34.38\n",
+ " \n",
+ "\n",
+ "The efficiency in % 0.688\n",
+ " \n",
+ "\n",
+ "Internal power generated in mW = 39.22\n",
+ " \n",
+ "\n",
+ "***NOTE- Internal Power wrong in book... \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.2.8:Pg-3.16"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ " \n",
+ "\n",
+ "V= 2 \n",
+ "I= 100*10**-3 \n",
+ "Pc= 2*10**-3 \n",
+ "P= V*I \n",
+ "Npc= Pc/P*100 \n",
+ "print \" The overall power conversion efficiency in % =\",int(Npc) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The overall power conversion efficiency in % = 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.3.1:Pg-3.25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "\n",
+ "r1= 0.32 \n",
+ "r2= 0.32 \n",
+ "alpha= 10 \n",
+ "L= 500*10**-4 \n",
+ "temp=math.log(1/(r1*r2)) \n",
+ "Tgth = alpha + (temp/(2*L)) \n",
+ "print \" The optical gain at threshold in /cm =\",round(Tgth,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The optical gain at threshold in /cm = 32.79\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.3.2:Pg-3.27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ " \n",
+ "n= 3.7 \n",
+ "lamda = 950*10**-9 \n",
+ "L= 500*10**-6 \n",
+ "c= 3*10**8 \n",
+ "DELv = c/(2*L*n)*10*10**-10 # converting in GHz...\n",
+ "print \" The frequency spacing in GHz =\",int(DELv) \n",
+ "DEL_lamda= lamda**2/(2*L*n)*10**9 # converting to nm..\n",
+ "print \" \\n\\nThe wavelength spacing in nm =\",round(DEL_lamda,2) \n",
+ "\n",
+ "print \" \\n\\n***NOTE- The value of wavelength taken wrongly in book\" \n",
+ " # value of lamda taken wrongly while soving for DEL_LAMDA inthe book..\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The frequency spacing in GHz = 81\n",
+ " \n",
+ "\n",
+ "The wavelength spacing in nm = 0.24\n",
+ " \n",
+ "\n",
+ "***NOTE- The value of wavelength taken wrongly in book\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.3.3:Pg-3.30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ " #Given\n",
+ " \n",
+ "L= 0.04 \n",
+ "n= 1.78 \n",
+ "lamda= 0.55*10**-6 \n",
+ "c= 3*10**8 \n",
+ "q= 2*n*L/lamda \n",
+ "q=q/10**5 \n",
+ "print \" Number of longitudinal modes =\",round(q,2),\"x 10^5\" \n",
+ "del_f= c/(2*n*L) \n",
+ "del_f=del_f*10**-9 \n",
+ "print \" \\n\\nThe frequency seperation in GHz =\",round(del_f,1) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Number of longitudinal modes = 2.59 x 10^5\n",
+ " \n",
+ "\n",
+ "The frequency seperation in GHz = 2.1\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.3.4:Pg-3.33"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "Nt= 0.18 \n",
+ "V= 2.5 \n",
+ "Eg= 1.43 \n",
+ "Nep= Nt*Eg*100/V \n",
+ "print \" The total efficiency in % =\",round(Nep,3) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total efficiency in % = 10.296\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.3.5:Pg-3.33"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "n= 3.6 \n",
+ "BETA= 21*10**-3 \n",
+ "alpha= 10 \n",
+ "L= 250*10**-4 \n",
+ "\n",
+ "r= (n-1)**2/(n+1)**2 \n",
+ "Jth= 1/BETA *( alpha + (math.log(1/r)/L)) \n",
+ "Jth=Jth/1000 # converting for displaying...\n",
+ "print \" The threshold current density =\",round(Jth,3),\"x 10**3\" \n",
+ "Jth=Jth*1000 \n",
+ "Ith =Jth*250*100*10**-8 \n",
+ "Ith=Ith*1000 # converting into mA...\n",
+ "print \" \\n\\nThe threshold current in mA =\",round(Ith,1) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The threshold current density = 2.65 x 10**3\n",
+ " \n",
+ "\n",
+ "The threshold current in mA = 662.4\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.3.6:Pg-3.34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "T= 305.0 \n",
+ "T0 = 160.0 \n",
+ "T1= 373.0\n",
+ "\n",
+ "Jth_32 = exp(T/T0) \n",
+ "Jth_100 = exp(T1/T0) \n",
+ "R_j = Jth_100/Jth_32 \n",
+ "print \" Ratio of current densities at 160K is =\",round(R_j,2) \n",
+ "print \" \\n\\n***NOTE- Wrong in book...\\nJth(100) calculated wrongly...\" \n",
+ "To = 55 \n",
+ "Jth_32_new = exp(T/To) \n",
+ "Jth_100_new = exp(T1/To) \n",
+ "R_j_new = Jth_100_new/Jth_32_new \n",
+ "print \" \\n\\nRatio of current densities at 55K is \",round(R_j_new,2) \n",
+ " # wrong in book...\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Ratio of current densities at 160K is = 1.53\n",
+ " \n",
+ "\n",
+ "***NOTE- Wrong in book...\n",
+ "Jth(100) calculated wrongly...\n",
+ " \n",
+ "\n",
+ "Ratio of current densities at 55K is 3.44\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.4.1:Pg-3.42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "\n",
+ "Bo= 150 \n",
+ "rs= 35*10**-4 \n",
+ "a1= 25*10**-6 \n",
+ "NA= 0.20 \n",
+ "a2= 50*10**-6 \n",
+ "\n",
+ "Pled = (a1/rs)**2 * (math.pi**2*rs**2*Bo*NA**2) \n",
+ "Pled=Pled*10**10 # converting in uW...\n",
+ "print \" The power coupled inthe fibre in uW =\",int(Pled) \n",
+ "Pled_new = (math.pi**2*rs**2*Bo*NA**2) \n",
+ "Pled_new=Pled_new*10**6 # converting in uW...\n",
+ "print \" \\n\\nThe Power coupled for case 2 in uW =\",round(Pled_new,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The power coupled inthe fibre in uW = 370\n",
+ " \n",
+ "\n",
+ "The Power coupled for case 2 in uW = 725.42\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.4.2:Pg-3.43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "n= 1.48 \n",
+ "n1= 3.6 \n",
+ "R= (n1-n)**2/(n1+n)**2 \n",
+ "print \" The Fresnel Reflection is \",round(R,4) \n",
+ "L= -10*math.log10(1-R) \n",
+ "print \" \\n\\nPower loss in dB =\",round(L,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Fresnel Reflection is 0.1742\n",
+ " \n",
+ "\n",
+ "Power loss in dB = 0.83\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.4.3:Pg-3.44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "\n",
+ "NA= 0.20 \n",
+ "Bo= 150 \n",
+ "rs= 35*10**-6 \n",
+ "Pled = math.pi**2*rs**2*Bo*NA**2 \n",
+ "Pled=Pled*10**10 # convertin in uW for displaying...\n",
+ "print \" The optical power coupled in uW =\",round(Pled,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The optical power coupled in uW = 725.42\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.4.4:Pg-3.44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "\n",
+ "n1= 1.5 \n",
+ "n=1 \n",
+ "R= (n1-n)**2/(n1+n)**2 \n",
+ "L= -10*math.log10(1-R) \n",
+ " # Total loss is twice due to reflection\n",
+ "L= L+L \n",
+ "print \" Total loss due to Fresnel Reflection in dB =\",round(L,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Total loss due to Fresnel Reflection in dB = 0.35\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.4.5:Pg-3.51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ " \n",
+ "n1= 1.5 \n",
+ "n=1.0 \n",
+ "y=5.0 \n",
+ "a= 25.0 \n",
+ "temp1=(1-(y/(2*a)**2))**0.5 \n",
+ "temp1=temp1*(y/a) \n",
+ "temp=2*math.acos(0.9996708) # it should be acos(0.1) actually... due to approximations\n",
+ " \n",
+ " # answer varies a lot... \n",
+ "temp=math.degrees(temp)-temp1 \n",
+ " # temp=temp \n",
+ "tem= 16*(1.5**2)/(2.5**4) \n",
+ "tem=tem/math.pi \n",
+ "temp=temp*tem \n",
+ "Nlat= temp \n",
+ "print \" The Coupling efficiency is =\",round(Nlat,3) \n",
+ "L= -10*math.log10(Nlat) \n",
+ "print \" \\n\\nThe insertion loss in dB =\",round(L,2) \n",
+ "temp1=(1-(y/(2*a)**2))**0.5 \n",
+ "temp1=temp1*(y/a) \n",
+ "temp=2*math.acos(0.9996708) # it should be acos(0.1) actually... due to approximations\n",
+ " # answer varies a lot... \n",
+ "temp=math.degrees(temp)-temp1 \n",
+ "temp=temp/math.pi \n",
+ "N_new =temp \n",
+ "print \" \\n\\nEfficiency when joint index is matched =\",round(N_new,3) \n",
+ "L_new= -10*math.log10(N_new) \n",
+ "print \" \\n\\nThe new insertion loss in dB =\",round(L_new,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Coupling efficiency is = 0.804\n",
+ " \n",
+ "\n",
+ "The insertion loss in dB = 0.95\n",
+ " \n",
+ "\n",
+ "Efficiency when joint index is matched = 0.872\n",
+ " \n",
+ "\n",
+ "The new insertion loss in dB = 0.59\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Optical_Fiber_Communication_by_V._S._Bagad/Chapter04-Optical_Detectors_and_Receivers.ipynb b/Optical_Fiber_Communication_by_V._S._Bagad/Chapter04-Optical_Detectors_and_Receivers.ipynb
new file mode 100755
index 00000000..9dca6b9e
--- /dev/null
+++ b/Optical_Fiber_Communication_by_V._S._Bagad/Chapter04-Optical_Detectors_and_Receivers.ipynb
@@ -0,0 +1,644 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e29ad753b5f2886d343bb74ecb0ecc91fcb2a9898826cbfcabd7e953e57d2f63"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter04: Optical Detectors and Receivers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.1.1:Pg-4.5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "Eg= 1.1 \n",
+ "lamda_c = 1.24/Eg \n",
+ "print \"The cut off wavelength in um= \",round(lamda_c,2) \n",
+ "\n",
+ "Eg_ger =0.67 \n",
+ "lamda_ger= 1.24/Eg_ger \n",
+ "print \" \\nThe cut off wavelength for Germanium in um= \",round(lamda_ger,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The cut off wavelength in um= 1.13\n",
+ " \n",
+ "The cut off wavelength for Germanium in um= 1.85\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.1.2:Pg-4.5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "Eg = 1.43 \n",
+ "lamda = 1.24/Eg \n",
+ "lamda=lamda*1000 # converting in nm\n",
+ "print \"The cut off wavelength in nm =\",round(lamda,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The cut off wavelength in nm = 867.13\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.1.3:Pg-4.5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "P = 6*10**6 \n",
+ "Eh_pair= 5.4*10**6 \n",
+ "n= Eh_pair/P*100 \n",
+ "print \" The quantum efficiency in % = \",n \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The quantum efficiency in % = 90.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.1.4:Pg-4.6"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "R= 0.65 \n",
+ "P0= 10*10**-6 \n",
+ "Ip= R*P0 \n",
+ "Ip=Ip*10**6 # convertinf in uA...\n",
+ "print \" The generated photocurrent in uA = \",Ip \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The generated photocurrent in uA = 6.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.1.5:Pg-4.6"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "Ec= 1.2*10**11 \n",
+ "P= 3*10**11 \n",
+ "lamda = 0.85*10**-6 \n",
+ "n= Ec/P*100 \n",
+ "print \"The efficiency in % =\",n \n",
+ "\n",
+ "q= 1.602*10**-19 \n",
+ "h= 6.625*10**-34 \n",
+ "c= 3*10**8 \n",
+ "n= n/100 \n",
+ "R= n*q*lamda/(h*c) \n",
+ "print \" \\n\\nThe Responsivity of the photodiode in A/W=\",round(R ,4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The efficiency in % = 40.0\n",
+ " \n",
+ "\n",
+ "The Responsivity of the photodiode in A/W= 0.2741\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.1.6:Pg-4.7"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "n= 0.65 \n",
+ "E= 1.5*10**-19 \n",
+ "Ip= 2.5*10**-6 \n",
+ "h= 6.625*10**-34 \n",
+ "c= 3*10**8 \n",
+ "lamda= h*c/E \n",
+ "lamda=lamda*10**6 # converting in um for displaying...\n",
+ "print \"The wavelength in um =\",lamda \n",
+ "lamda=lamda*10**-6 \n",
+ "q= 1.602*10**-19 \n",
+ "R= n*q*lamda/(h*c) \n",
+ "print \"\\nThe Responsivity in A/W =\",R \n",
+ "Pin= Ip/R \n",
+ "Pin=Pin*10**6 # converting in uW for displaying/..\n",
+ "print \" \\nThe incidnt power in uW= \",round(Pin,1) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The wavelength in um = 1.325\n",
+ "\n",
+ "The Responsivity in A/W = 0.6942\n",
+ " \n",
+ "The incidnt power in uW= 3.6\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.1.7:Pg-4.8"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "Iin= 1 \n",
+ "lamda= 1550*10**-9 \n",
+ "q= 1.602*10**-19 \n",
+ "h= 6.625*10**-34 \n",
+ "c= 3*10**8 \n",
+ "n=0.65 \n",
+ "Ip=n*q*lamda*Iin/(h*c) \n",
+ "Ip=Ip*1000 # converting in mA for displaying...\n",
+ "print \" The average photon current in mA= \",int(Ip)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The average photon current in mA= 812\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.1.8:Pg-4.9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "n= 0.70 \n",
+ "Ip= 4*10**-6 \n",
+ "e= 1.602*10**-19 \n",
+ "h= 6.625*10**-34 \n",
+ "c= 3*10**8 \n",
+ "E= 1.5*10**-19\n",
+ "lamda = h*c/E \n",
+ "lamda=lamda*10**6 # converting um for displaying...\n",
+ "print \"The wavelength in um =\",round(lamda,3) \n",
+ "R= n*e/E \n",
+ "Po= Ip/R \n",
+ "Po=Po*10**6 # converting um for displaying...\n",
+ "print \" \\nIncident optical Power in uW =\",round(Po,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The wavelength in um = 1.325\n",
+ " \n",
+ "Incident optical Power in uW = 5.35\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.2.1:Pg-4.14"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "Ct= 7*10.0**-12\n",
+ "Rt= 50*1*10.0**6/(50+(1*10**6))\n",
+ "B= 1/(2*math.pi*Rt*Ct)\n",
+ "B=B*10**-6 #converting in mHz for displaying...\n",
+ "print \"The bandwidth of photodetector in MHz =\",round(B,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The bandwidth of photodetector in MHz = 454.75\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.2.2:Pg-4.15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "W= 25*10**-6 \n",
+ "Vd= 3*10**4 \n",
+ "Bm= Vd/(2*math.pi*W) \n",
+ "RT= 1/Bm \n",
+ "RT=RT*10**9 # converting ns for displaying...\n",
+ "print \" The maximum response time in ns =\",round(RT,2) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The maximum response time in ns = 5.24\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "\n",
+ "Ex4.2.3:Pg-4.15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "e= 1.602*10**-19 \n",
+ "h= 6.625*10**-34 \n",
+ "v= 3*10**8 \n",
+ "n=0.65 \n",
+ "I= 10*10**-6 \n",
+ "lamda= 900*10**-9 \n",
+ "R= n*e*lamda/(h*v) \n",
+ "Po= 0.5*10**-6 \n",
+ "Ip= Po*R \n",
+ "M= I/Ip \n",
+ "print \" The multiplication factor =\",round(M,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The multiplication factor = 42.41\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.3.1:Pg-4.18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "n=0.65 \n",
+ "lamda = 900*10**-9 \n",
+ "Pin= 0.5*10**-6 \n",
+ "Im= 10*10**-6 \n",
+ "q= 1.602*10**-19 \n",
+ "h= 6.625*10**-34 \n",
+ "c= 3*10**8 \n",
+ "R= n*q*lamda/(h*c) \n",
+ "Ip= R*Pin \n",
+ "M= Im/Ip \n",
+ "print \" The multiplication factor =\",round(M,2)\n",
+ "print \"\\n***NOTE-Answer wrong in textbook...\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The multiplication factor = 42.41\n",
+ "\n",
+ "***NOTE-Answer wrong in textbook...\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.6.1:Pg-4.34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "lamda = 1300*10**-9 \n",
+ "Id= 4*10**-9 \n",
+ "n=0.9 \n",
+ "Rl= 1000 \n",
+ "Pincident= 300*10**-9 \n",
+ "BW= 20*10**6 \n",
+ "q= 1.602*10**-19 \n",
+ "h= 6.625*10**-34 \n",
+ "v= 3*10**8 \n",
+ "Iq= math.sqrt((q*Pincident*n*lamda)/(h*v)) \n",
+ "Iq= math.sqrt(Iq) \n",
+ "Iq=Iq*100 # converting in proper format for displaying...\n",
+ "print \"Mean square quantum noise current in Amp*10^11 =\",round(Iq,2)\n",
+ "I_dark= 2*q*BW*Id \n",
+ "I_dark=I_dark*10**19 # converting in proper format for displaying...\n",
+ "print \" \\nMean square dark current in Amp*10^-19 =\",round(I_dark,3) \n",
+ "k= 1.38*10**-23 \n",
+ "T= 25+273 \n",
+ "It= 4*k*T*BW/Rl \n",
+ "It=It*10**16 # converting in proper format for displaying...\n",
+ "print \" \\nMean square thermal nise current in Amp*10^-16 =\",round(It,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mean square quantum noise current in Amp*10^11 = 2.31\n",
+ " \n",
+ "Mean square dark current in Amp*10^-19 = 0.256\n",
+ " \n",
+ "Mean square thermal nise current in Amp*10^-16 = 3.29\n"
+ ]
+ }
+ ],
+ "prompt_number": 61
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.8.1:Pg-4.39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "lamda = 850*10**-9 # meters\n",
+ "BER= 1*10**-9 \n",
+ "N_bar = 9*log(10) \n",
+ "h= 6.625*10**-34 # joules-sec\n",
+ "v= 3*10**8 # meters/sec\n",
+ "n= 0.65 # assumption\n",
+ "E=N_bar*h*v/(n*lamda) \n",
+ "E=E*10**18 # /converting in proper format for displaying...\n",
+ "print \" The Energy received in Joules*10^-18 =\",round(E,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Energy received in Joules*10^-18 = 7.45\n"
+ ]
+ }
+ ],
+ "prompt_number": 64
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.8.2:Pg-4.39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "lamda = 850*10**-9 \n",
+ "BER = 1*10**-9 \n",
+ "BT=10*10**6 \n",
+ "h= 6.625*10**-34 \n",
+ "c= 3*10**8 \n",
+ "Ps= 36*h*c*BT/lamda \n",
+ "Ps=Ps*10**12 # /converting in proper format for displaying...\n",
+ "print \"The minimum incidental optical power required id in pW =\",round(Ps,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The minimum incidental optical power required id in pW = 84.18\n"
+ ]
+ }
+ ],
+ "prompt_number": 67
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.8.3:Pg-4.40"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "C= 5*10**-12 \n",
+ "B =50*10**6 \n",
+ "Ip= 1*10**-7 \n",
+ "e= 1.602*10**-19 \n",
+ "k= 1.38*10**-23 \n",
+ "T= 18+273 \n",
+ "M= 1 \n",
+ "Rl= 1/(2*math.pi*C*B) \n",
+ "S_N= Ip**2/((2*e*B*Ip)+(4*k*T*B/Rl)) \n",
+ "S_N = 10*math.log10(S_N) # in db\n",
+ "print \" The S/N ratio in dB =\",round(S_N,2) \n",
+ "M=41.54 \n",
+ "S_N_new= (M**2*Ip**2)/((2*e*B*Ip*M**2.3)+(4*k*T*B/Rl)) \n",
+ "S_N_new = 10*math.log10(S_N_new) # in db\n",
+ "print \" \\n\\nThe new S/N ratio in dB =\",round(S_N_new,2)\n",
+ "print \" \\n\\nImprovement over M=1 in dB =\",round(S_N_new-S_N,1) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The S/N ratio in dB = 8.99\n",
+ " \n",
+ "\n",
+ "The new S/N ratio in dB = 32.49\n",
+ " \n",
+ "\n",
+ "Improvement over M=1 in dB = 23.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 70
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Optical_Fiber_Communication_by_V._S._Bagad/Chapter05-Design_Considerations_in_Optical_Links.ipynb b/Optical_Fiber_Communication_by_V._S._Bagad/Chapter05-Design_Considerations_in_Optical_Links.ipynb
new file mode 100755
index 00000000..3915a0b4
--- /dev/null
+++ b/Optical_Fiber_Communication_by_V._S._Bagad/Chapter05-Design_Considerations_in_Optical_Links.ipynb
@@ -0,0 +1,458 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b4a79f107959b9c220fb0fbffb78f81a806979a06263be16ca010cadce8d4a27"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter05: Design Considerations in Optical Links"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.3.1:Pg-5.7"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "B= 15*10**-6 \n",
+ "L= 4 \n",
+ "BER= 1*10**-9 \n",
+ "Ls= 0.5 \n",
+ "Lc= 1.5 \n",
+ "alpha= 6 \n",
+ "Pm= 8 \n",
+ "Pt= 2*Lc +(alpha*L)+(Pm) \n",
+ "print \" The actual loss in fibre in dB =\",int(Pt) \n",
+ "Pmax = -10-(-50) \n",
+ "print \" \\nThe maximum allowable system loss in dBm = \",Pmax "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The actual loss in fibre in dB = 35\n",
+ " \n",
+ "The maximum allowable system loss in dBm = 40\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.3.2:Pg-5.8"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "Ps= 0.1 \n",
+ "alpha = 6 \n",
+ "L= 0.5 \n",
+ "Ps = 10*math.log10(Ps) \n",
+ "NA= 0.25 \n",
+ "Lcoupling= -10*math.log10(NA**2) \n",
+ "Lf= alpha*L \n",
+ "lc= 2*2 \n",
+ "Pm= 4 \n",
+ "Pout = Ps-(Lcoupling+Lf+lc+Pm) \n",
+ "print \" The actual power output in dBm = \",int(Pout) \n",
+ "Pmin = -35 \n",
+ "print \" Minimum input power required in dBm= \",Pmin \n",
+ "print \" As Pmin > Pout, system will perform adequately over the system operating life.\" \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The actual power output in dBm = -33\n",
+ " Minimum input power required in dBm= -35\n",
+ " As Pmin > Pout, system will perform adequately over the system operating life.\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.3.3:Pg-5.8"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "Ps= 5 \n",
+ "Lcoupling = 3 \n",
+ "Lc= 2 \n",
+ "L_splicing = 50*0.1 \n",
+ "F_atten = 25 \n",
+ "L_total = Lcoupling+Lc+L_splicing+F_atten \n",
+ "P_avail = Ps-L_total \n",
+ "sensitivity = -40 \n",
+ "loss_margin = -sensitivity-(-P_avail) \n",
+ "print \" The loss margin of the system in dBm= -\",loss_margin \n",
+ "sensitivity_fet = -32 \n",
+ "loss_margin_fet=-sensitivity_fet-(-P_avail) \n",
+ "print \"The loss marging for the FET receiver in dBm= -\",loss_margin_fet \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The loss margin of the system in dBm= - 10.0\n",
+ "The loss marging for the FET receiver in dBm= - 2.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.3.4:Pg-5.9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "LED_output = 3 \n",
+ "PIN_sensitivity = -54 \n",
+ "allowed_loss= LED_output -(-PIN_sensitivity) \n",
+ "Lcoupling = 17.5 \n",
+ "cable_atten = 30 \n",
+ "power_margin_coupling= 39.5 \n",
+ "power_margin_splice=6.2 \n",
+ "power_margin_cable=9.5 \n",
+ "final_margin= power_margin_coupling+power_margin_splice+power_margin_cable \n",
+ "print \" The safety margin in dB =\",final_margin\n",
+ " # Answer in book is wrong...\n",
+ "print \" \\n***NOTE- Answer wrong in book...\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The safety margin in dB = 55.2\n",
+ " \n",
+ "***NOTE- Answer wrong in book...\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.3.5:Pg-5.10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "optical_power=-10 \n",
+ "receiver_sensitivity=-41 \n",
+ "total_margin= optical_power-receiver_sensitivity \n",
+ "cable_loss= 7*2.6 \n",
+ "splice_loss= 6*0.5 \n",
+ "connector_loss= 1*1.5 \n",
+ "safety_margin= 6 \n",
+ "total_loss= cable_loss+splice_loss+connector_loss+safety_margin \n",
+ "excess_power_margin= total_margin-total_loss \n",
+ "print \" The system is viable and provides excess power margin in dB=\",excess_power_margin \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The system is viable and provides excess power margin in dB= 2.3\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.4.1:Pg-5.13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "Ttx= 15 \n",
+ "Tmat=21 \n",
+ "Tmod= 3.9 \n",
+ "BW= 25.0 \n",
+ "Trx= 350.0/BW \n",
+ "\n",
+ "Tsys = math.sqrt(Ttx**2+Tmat**2+Tmod**2+Trx**2) \n",
+ "print \" The system rise time in ns.= \",round(Tsys,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The system rise time in ns.= 29.62\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.4.2:Pg-5.14"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "\n",
+ "Ttrans = 1.75*10**-9 \n",
+ "Tled = 3.50*10**-9 \n",
+ "Tcable=3.89*10**-9 \n",
+ "Tpin= 1*10**-9 \n",
+ "Trec= 1.94*10**-9 \n",
+ "Tsys= math.sqrt(Ttrans**2+Tled**2+Tcable**2+Tpin**2+Trec**2) \n",
+ "Tsys=Tsys*10**9 # converting in ns for dislaying...\n",
+ "print \" The system rise time in ns= \",round(Tsys,2)\n",
+ "Tsys=Tsys*10**-9 \n",
+ "BW= 0.35/Tsys \n",
+ "BW=BW/1000000.0 # converting in MHz for dislaying...\n",
+ "print \" \\nThe system bandwidth in MHz =\",round(BW,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The system rise time in ns= 5.93\n",
+ " \n",
+ "The system bandwidth in MHz = 58.99\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.4.3:Pg-5.14"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "Ttx= 8*10**-9 \n",
+ "Tintra= 1*10**-9 \n",
+ "Tmodal=5*10**-9 \n",
+ "Trr= 6*10**-9 \n",
+ "Tsys= math.sqrt(Ttx**2+(8*Tintra)**2+(8*Tmodal)**2+Trr**2) \n",
+ "\n",
+ "BWnrz= 0.7/Tsys \n",
+ "BWnrz=BWnrz/1000000 # converting in ns for dislaying...\n",
+ "BWrz=0.35/Tsys \n",
+ "BWrz=BWrz/1000000 # converting in ns for dislaying...\n",
+ "print \" Maximum bit rate for NRZ format in Mb/sec= \",round(BWnrz,2)\n",
+ "print \" \\nMaximum bit rate for RZ format in Mb/sec= \",round(BWrz,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Maximum bit rate for NRZ format in Mb/sec= 16.67\n",
+ " \n",
+ "Maximum bit rate for RZ format in Mb/sec= 8.33\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.4.4:Pg-5.15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "Ts= 10*10**-9 \n",
+ "Tn=9*10**-9 \n",
+ "Tc=2*10**-9 \n",
+ "Td=3*10**-9 \n",
+ "BW= 6*10**6 \n",
+ "Tsyst= 1.1*math.sqrt(Ts**2+(5*Tn)**2+(5*Tc)**2+Td**2) \n",
+ "Tsyst=Tsyst*10**9 # converting in ns for displying...\n",
+ "Tsyst_max = 0.35/BW \n",
+ "Tsyst_max=Tsyst_max*10**9 # converting in ns for displying...\n",
+ "print \" Rise system of the system in ns= \",round(Tsyst,2)\n",
+ "print \" \\nMaximum Rise system of the system in ns= \",round(Tsyst_max,2)\n",
+ "print \" \\nSpecified components give a system rise time which is adequate for the bandwidth and distance requirements of the optical fibre link.\" \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Rise system of the system in ns= 51.99\n",
+ " \n",
+ "Maximum Rise system of the system in ns= 58.33\n",
+ " \n",
+ "Specified components give a system rise time which is adequate for the bandwidth and distance requirements of the optical fibre link.\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.5.1:Pg-5.18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "del_t_1 = 10*100*10**-9 \n",
+ "Bt_nrz_1 = 0.7/(del_t_1*1000000) \n",
+ "Bt_rz_1 = 0.35/(del_t_1*1000000) \n",
+ "print \"First case.\"\n",
+ "print \" \\nBit rate for nrz in Mb/sec= \",Bt_nrz_1 \n",
+ "print \" \\nBit rate for rz in Mb/sec= \",Bt_rz_1 \n",
+ "del_t_2 = 20*1000*10**-9 \n",
+ "Bt_nrz_2 = 0.7/(del_t_2*1000000) \n",
+ "Bt_rz_2 = 0.35/(del_t_2*1000000) \n",
+ "print \" \\n\\nSecond case\" \n",
+ "print \" \\nBit rate for nrz in Mb/sec= \",Bt_nrz_2 \n",
+ "print \" \\nBit rate for rz in Mb/sec= \",Bt_rz_2 \n",
+ "del_t_3 = 2*2000*10**-9 \n",
+ "Bt_nrz_3 = 0.7/(del_t_3*1000) \n",
+ "Bt_rz_3 = 0.35/(del_t_3*1000) \n",
+ "print \" \\n\\nThird case\" \n",
+ "print \" \\nBit rate for nrz in BITS/sec= \",int(Bt_nrz_3) \n",
+ "print \" \\nBit rate for rz in BITS/sec= \",Bt_rz_3 \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "First case.\n",
+ " \n",
+ "Bit rate for nrz in Mb/sec= 0.7\n",
+ " \n",
+ "Bit rate for rz in Mb/sec= 0.35\n",
+ " \n",
+ "\n",
+ "Second case\n",
+ " \n",
+ "Bit rate for nrz in Mb/sec= 0.035\n",
+ " \n",
+ "Bit rate for rz in Mb/sec= 0.0175\n",
+ " \n",
+ "\n",
+ "Third case\n",
+ " \n",
+ "Bit rate for nrz in BITS/sec= 174\n",
+ " \n",
+ "Bit rate for rz in BITS/sec= 87.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Optical_Fiber_Communication_by_V._S._Bagad/Chapter1.ipynb b/Optical_Fiber_Communication_by_V._S._Bagad/Chapter1.ipynb
new file mode 100755
index 00000000..ec323da9
--- /dev/null
+++ b/Optical_Fiber_Communication_by_V._S._Bagad/Chapter1.ipynb
@@ -0,0 +1,1240 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:742c44cb267900361b88ee7b473acd2b1b40f32a4db7e15db6918955b1159df0"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter01:Fiber Optics Communications System"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "\n",
+ "Ex1.7.1:Pg-1.14"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "n1= 1.5 # for glass\n",
+ "n2= 1.33 # for water\n",
+ "phi1= (math.pi/6) # phi1 is the angel of incidence\n",
+ " # According to Snell's law...\n",
+ " # n1*sin(phi1)= n2*sin(phi2) \n",
+ "sinphi2= (n1/n2)*math.sin(phi1) # phi2 is the angle of refraction..\n",
+ "phi2 = math.asin(sinphi2)\n",
+ "temp= math.degrees(phi2)\n",
+ "print \" The angel of refraction in degrees =\",round(temp,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The angel of refraction in degrees = 34.33\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.7.2:Pg-1.14"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ "n1= 1.50 # RI of glass..\n",
+ "n2 = 1.0 # RI of air...\n",
+ " # According to Snell's law...\n",
+ " # n1*sin(phi1)= n2*sin(phi2) \n",
+ " # From definition of critical angel phi2 = 90 degrees and phi1 will be critical angel\n",
+ "t1=(n2/n1)*math.sin(math.pi/2)\n",
+ "phiC=math.asin(t1)\n",
+ "temp= math.degrees(phiC)\n",
+ "print \" The Critical angel in degrees =\",round(temp,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Critical angel in degrees = 41.81\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.7.3:Pg-1.15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ " # Given\n",
+ " # To find RI of glass\n",
+ " # To find the critical angle for glass...\n",
+ " \n",
+ "phi1 = 33 # Angle of incidence..\n",
+ "phi2 = 90 # Angle of refraction..\n",
+ "n2= 1.0 \n",
+ "\n",
+ "n1 = round(sin(math.radians(phi2))/sin(math.radians(phi1)),3) \n",
+ "print \" The Refractive Index is =\",n1 \n",
+ "\n",
+ "#phiC = math.asin((n2/n1)*math.sin(90)) \n",
+ "phiC=math.asin(0.54)\n",
+ "print \" \\n\\nThe Critical angel in degrees =\",round(math.degrees(phiC),2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Refractive Index is = 1.836\n",
+ " \n",
+ "\n",
+ "The Critical angel in degrees = 32.68\n"
+ ]
+ }
+ ],
+ "prompt_number": 81
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.7.4:Pg-1.15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ " # Given\n",
+ "import math\n",
+ " \n",
+ "n1= 1.5 # TheRi of medium 1\n",
+ "n2= 1.36 # the RI of medium 2\n",
+ "phi1= 30 # The angle of incidence\n",
+ " # According to Snell's law...\n",
+ " # n1*sin(phi1)= n2*sin(phi2) \n",
+ "phi2 = math.asin((n1/n2)*math.sin(math.radians(phi1))) \n",
+ "print \" The angel of refraction is in degrees from normal = \",round(math.degrees(phi2),2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The angel of refraction is in degrees from normal = 33.47\n"
+ ]
+ }
+ ],
+ "prompt_number": 91
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.7.5:Pg-1.16"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ " \n",
+ "n1 = 3.6 # RI of GaAs..\n",
+ "n2 = 3.4 # RI of AlGaAs..\n",
+ "phi1 = 80 # Angle of Incidence..\n",
+ " # According to Snell's law...\n",
+ " # n1*sin(phi1)= n2*sin(phi2) \n",
+ " # At critical angle phi2 = 90...\n",
+ "phiC = math.asin((n2/n1)*sin(math.radians(90)) )\n",
+ "print \" The Critical angel in degrees =\",round(math.degrees(phiC),2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Critical angel in degrees = 70.81\n"
+ ]
+ }
+ ],
+ "prompt_number": 97
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.9.1:Pg-1.22"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math \n",
+ "\n",
+ "n1= 1.5 # RI of medium 1\n",
+ "n2 =1.45 # RI of medium 2\n",
+ "\n",
+ "delt= (n1-n2)/n1 \n",
+ "NA = n1*(math.sqrt(2*delt)) \n",
+ "print \" The Numerical aperture =\",round(NA,2)\n",
+ "phiA = math.asin(NA) \n",
+ "print \" \\n\\nThe Acceptance angel in degrees =\",round(math.degrees(phiA),2) \n",
+ "\n",
+ "phiC = math.asin(n2/n1) \n",
+ "print \" \\n\\nThe Critical angel in degrees =\",round(degrees(phiC),2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Numerical aperture = 0.39\n",
+ " \n",
+ "\n",
+ "The Acceptance angel in degrees = 22.79\n",
+ " \n",
+ "\n",
+ "The Critical angel in degrees = 75.16\n"
+ ]
+ }
+ ],
+ "prompt_number": 100
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.9.2:Pg-1.23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ "\n",
+ "n1= 1.5 # RI of core\n",
+ "n2 = 1.48 # RI of cladding..\n",
+ "\n",
+ "NA = math.sqrt((n1**2)-(n2**2)) \n",
+ "print \" The Numerical Aperture =\",round(NA,2) \n",
+ "\n",
+ "phiA = math.asin(NA) \n",
+ "print \" \\n\\nThe Critical angel =\",round(math.degrees(phiA),2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Numerical Aperture = 0.24\n",
+ " \n",
+ "\n",
+ "The Critical angel = 14.13\n"
+ ]
+ }
+ ],
+ "prompt_number": 101
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.9.3:Pg-1.23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math \n",
+ " \n",
+ "\n",
+ "NA = 0.35 # Numerical Aperture\n",
+ "delt = 0.01 \n",
+ " # NA= n1*(math.sqrt(2*delt) n1 is RI of core\n",
+ "n1 = 0.35/(math.sqrt(2*delt)) \n",
+ "print \"The RI of core =\",round(n1,4) \n",
+ "\n",
+ " # Numerical Aperture is also given by \n",
+ " # NA = math.sqrt(n1**2 - n2**2) # n2 is RI of cladding\n",
+ "n2 = math.sqrt((n1**2-NA**2)) \n",
+ "print \" \\n\\nThe RI of Cladding =\",round(n2,3) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The RI of core = 2.4749\n",
+ " \n",
+ "\n",
+ "The RI of Cladding = 2.45\n"
+ ]
+ }
+ ],
+ "prompt_number": 104
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.9.4:Pg-1.24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ "\n",
+ "Vc = 2.01*10**8 # velocity of light in core in m/sec...\n",
+ "phiC= 80.0 # Critical angle in degrees...\n",
+ "\n",
+ " # RI of Core (n1) is given by (Velocity of light in air/ velocity of light in air)...\n",
+ "n1= 3*10**8/Vc \n",
+ " # From critical angle and the value of n1 we calculate n2...\n",
+ "n2 = sin(math.radians(phiC))*n1 # RI of cladding...\n",
+ "NA = math.sqrt(n1**2-n2**2) \n",
+ "print \" The Numerical Aperture =\",round(NA,2) \n",
+ "phiA = math.asin(NA) # Acceptance angle...\n",
+ "print \" \\n\\nThe Acceptance angel in degrees =\",round(math.degrees(phiA),2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Numerical Aperture = 0.26\n",
+ " \n",
+ "\n",
+ "The Acceptance angel in degrees = 15.02\n"
+ ]
+ }
+ ],
+ "prompt_number": 106
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.9.5:Pg-1.25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ "n1 = 1.4 # RI of Core..\n",
+ "n2 = 1.35 # RI of Cladding\n",
+ "\n",
+ "phiC = math.asin(n2/n1) # Critical angle..\n",
+ "print \" The Critical angel in degrees =\",round(math.degrees(phiC),2) \n",
+ "\n",
+ "NA = math.sqrt(n1**2-n2**2) # numerical Aperture...\n",
+ "print \" \\n\\nThe Numerical Aperture is =\",round(NA,2) \n",
+ "\n",
+ "phiA = math.asin(NA) # Acceptance angle... \n",
+ "print \" \\n\\nThe Acceptance angel in degrees =\",round(math.degrees(phiA),2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Critical angel in degrees = 74.64\n",
+ " \n",
+ "\n",
+ "The Numerical Aperture is = 0.37\n",
+ " \n",
+ "\n",
+ "The Acceptance angel in degrees = 21.77\n"
+ ]
+ }
+ ],
+ "prompt_number": 107
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.9.6:Pg-1.25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ "n1 = 1.48 # RI of core..\n",
+ "n2 = 1.46 # RI of Cladding..\n",
+ "\n",
+ "NA = math.sqrt(n1**2-n2**2) # Numerical Aperture..\n",
+ "print \" The Numerical Aperture is =\",round(NA,3) \n",
+ "\n",
+ "theta = math.pi*NA**2 # The entrance angle theta..\n",
+ "print \" \\n\\nThe Entrance angel in degrees =\",round(theta,3) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Numerical Aperture is = 0.242\n",
+ " \n",
+ "\n",
+ "The Entrance angel in degrees = 0.185\n"
+ ]
+ }
+ ],
+ "prompt_number": 110
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.9.7:Pg-1.26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math \n",
+ "\n",
+ "delt = 0.007 # relative refractive index difference \n",
+ "n1 = 1.45 # RI of core...\n",
+ "NA = n1* math.sqrt((2*delt)) \n",
+ "print \" The Numerical Aperture is =\",round(NA,4) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Numerical Aperture is = 0.1716\n"
+ ]
+ }
+ ],
+ "prompt_number": 112
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.9.8:Pg-1.26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ " # Given\n",
+ "import math\n",
+ "\n",
+ "phiA = 8 # accepatance angle in degrees...\n",
+ "n1 =1.52 # RI of core...\n",
+ "\n",
+ "NA = sin(math.radians(phiA)) # Numerical Aperture...\n",
+ "\n",
+ "delt = NA**2/(2*(n1**2)) # Relative RI difference...\n",
+ "print \" The relative refractive index difference =\",round(delt,5) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The relative refractive index difference = 0.00419\n"
+ ]
+ }
+ ],
+ "prompt_number": 114
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "\n",
+ "Ex1.9.9:Pg-1.27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ "delt = 0.01 # relative RI difference..\n",
+ "n1 = 1.48 # RI of core...\n",
+ "\n",
+ "NA = n1*(math.sqrt(2*delt)) # Numerical Aperture..\n",
+ "print \" The Numerical Aperture =\",round(NA,3) \n",
+ "\n",
+ "theta = math.pi*NA**2 # Solid Acceptance angle...\n",
+ "print \" \\n\\nThe Solid Acceptance angel in degrees =\",round(theta,4) \n",
+ "\n",
+ "n2 = (1-delt)*n1 \n",
+ "phiC = math.asin(n2/n1) # Critical Angle...\n",
+ "print \" \\n\\nThe Critical angel in degrees =\",round(math.degrees(phiC),2) \n",
+ "print \" \\n\\nCritical angle wrong due to rounding off errors in trignometric functions..\\n Actual value is 90.98 in book.\" \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Numerical Aperture = 0.209\n",
+ " \n",
+ "\n",
+ "The Solid Acceptance angel in degrees = 0.1376\n",
+ " \n",
+ "\n",
+ "The Critical angel in degrees = 81.89\n",
+ " \n",
+ "\n",
+ "Critical angle wrong due to rounding off errors in trignometric functions..\n",
+ " Actual value is 90.98 in book.\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.14.1:Pg-1.41"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ "d = 50*10**-6 # diameter of fibre...\n",
+ "n1 = 1.48 # RI of core..\n",
+ "n2 = 1.46 # RI of cladding..\n",
+ "lamda = 0.82*10**-6 # wavelength of light..\n",
+ "\n",
+ "NA = math.sqrt(n1**2-n2**2) # Numerical Aperture..\n",
+ "Vn= math.pi*d*NA/lamda # normalised frequency...\n",
+ "M = Vn**2/2 # number of modes...\n",
+ "print \" The number of modes in the fibre are =\",int(M) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The number of modes in the fibre are = 1078\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.14.2:Pg-1.42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ " \n",
+ " \n",
+ "V = 26.6 # Normalised frequency..\n",
+ "lamda = 1300*10**-9 # wavelenght of operation\n",
+ "a = 25*10**-6 # radius of fibre.\n",
+ "NA = V*lamda/(2*math.pi*a) # Numerical Aperture..\n",
+ "print \" The Numerical Aperture =\",round(NA,3) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Numerical Aperture = 0.22\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.14.3:Pg-1.43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ " \n",
+ "a = 40*10**-6 # radius of core...\n",
+ "delt = 0.015 # relative RI difference..\n",
+ "lamda= 0.85*10**-6 # wavelength of operation..\n",
+ "n1=1.48 # RI of core..\n",
+ "\n",
+ "NA = n1*math.sqrt(2*delt) # Numerical Aperture..\n",
+ "print \" The Numerical Aperture =\", round(NA,4) \n",
+ "V = 2*math.pi*a*NA/lamda # normalised frequency\n",
+ "print \" \\n\\nThe Normalised frequency =\",round(V,2) \n",
+ "\n",
+ "M = V**2/2 # number of modes..\n",
+ "print \" \\n\\nThe number of modes in the fibre are =\",int(M) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Numerical Aperture = 0.2563\n",
+ " \n",
+ "\n",
+ "The Normalised frequency = 75.8\n",
+ " \n",
+ "\n",
+ "The number of modes in the fibre are = 2872\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.14.4:Pg-1.43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ "\n",
+ "NA = 0.20 # Numerical Aperture..\n",
+ "M = 1000 # number of modes..\n",
+ "lamda = 850*10**-9 # wavelength of operation..\n",
+ "\n",
+ "a = math.sqrt(M*2*lamda**2/(math.pi**2*NA**2)) # radius of core..\n",
+ "a=a*10**6 # converting in um for displaying...\n",
+ "print \" The radius of the core in um =\",round(a,2) \n",
+ "a=a*10**-6 \n",
+ "M1= ((math.pi*a*NA/(1320*10**-9))**2)/2\n",
+ "print \" \\n\\nThe number of modes in the fibre at 1320um =\",int(M1) \n",
+ "print \" \\n\\n***The number of modes in the fibre at 1320um is calculated wrongly in book\" \n",
+ "M2= ((math.pi*a*NA/(1550*10**-9))**2)/2\n",
+ "print \" \\n\\nThe number of modes in the fibre at 1550um =\",int(M2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The radius of the core in um = 60.5\n",
+ " \n",
+ "\n",
+ "The number of modes in the fibre at 1320um = 414\n",
+ " \n",
+ "\n",
+ "***The number of modes in the fibre at 1320um is calculated wrongly in book\n",
+ " \n",
+ "\n",
+ "The number of modes in the fibre at 1550um = 300\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.14.5:Pg-1.44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ " \n",
+ "NA = 0.2 # Numerical Aperture..\n",
+ "n2= 1.59 # RI of cladding..\n",
+ "n0= 1.33 # RI of water..\n",
+ "lamda = 1300*10**-9 # wavelength..\n",
+ "a = 25*10**-6 # radius of core..\n",
+ "n1 = math.sqrt(NA**2+n2**2) # RI of core..\n",
+ "phiA= math.asin(math.sqrt(n1**2-n2**2)/n0) # Acceptance angle..\n",
+ "print \" The Acceptance angle is =\",round(math.degrees(phiA),2) \n",
+ "\n",
+ "phiC= math.asin(n2/n1) # Critical angle..\n",
+ "print \" \\n\\nThe critical angle is =\",round(math.degrees(phiC),2) \n",
+ "V = 2*math.pi*a*NA/lamda # normalisd frequency\n",
+ "M= V**2/2 # number of modes\n",
+ "print \" \\n\\nThe number of modes in the fibre are =\",int(M) \n",
+ "\n",
+ "print \" \\n\\n***The value of the angle differ from the book because of round off errors.\" \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Acceptance angle is = 8.65\n",
+ " \n",
+ "\n",
+ "The critical angle is = 82.83\n",
+ " \n",
+ "\n",
+ "The number of modes in the fibre are = 292\n",
+ " \n",
+ "\n",
+ "***The value of the angle differ from the book because of round off errors.\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.14.6:Pg-1.46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ "\n",
+ "V= 26.6 # Normalised frequency..\n",
+ "lamda= 1300*10**-9 # wavelength of operation..\n",
+ "a= 25*10**-6 # radius of core..\n",
+ "\n",
+ "NA = V*lamda/(2*math.pi*a) # Numerical Aperture..\n",
+ "print \" The Numerical Aperture =\",round(NA,2) \n",
+ "theta = math.pi*NA**2 # solid Acceptance Angle..\n",
+ "print \" \\n\\nThe solid acceptance angle in radians =\",round(theta,3) \n",
+ "\n",
+ "M= V**2/2 # number of modes..\n",
+ "print \" \\n\\nThe number of modes in the fibre =\",round(M,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Numerical Aperture = 0.22\n",
+ " \n",
+ "\n",
+ "The solid acceptance angle in radians = 0.152\n",
+ " \n",
+ "\n",
+ "The number of modes in the fibre = 353.78\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.14.7:Pg-1.47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math \n",
+ "\n",
+ "n1= 1.49 # RI of core.\n",
+ "n2=1.47 # RI of cladding..\n",
+ "a= 2 # radius of core in um..\n",
+ "NA= math.sqrt(n1**2-n2**2) # Numerical Aperture..\n",
+ " # The maximum V number for single mode operation is 2.4...\n",
+ "V= 2.4 # Normalised frequency..\n",
+ "\n",
+ "lamda = 2*math.pi*a*NA/V # Cutoff wavelength...\n",
+ "print \" The cutoff wavelength in um =\",round(lamda,2) \n",
+ "\n",
+ "\n",
+ "lamda1 = 1.310 # Givenn cutoff wavelength in um..\n",
+ "d= V*lamda1/(math.pi*NA) # core diameter..\n",
+ "print \" \\n\\nThe core diameter in um =\",round(d,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cutoff wavelength in um = 1.27\n",
+ " \n",
+ "\n",
+ "The core diameter in um = 4.11\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.14.8:Pg-1.47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ " # Given\n",
+ "import math\n",
+ " \n",
+ "n1= 1.48 # RI of core..\n",
+ "a= 4.5 # core radius in um..\n",
+ "delt= 0.0025 # Relative RI difference..\n",
+ "V= 2.405 # For step index fibre..\n",
+ "lamda= (2*math.pi*a*n1*math.sqrt(2*delt))/V # cutoff wavelength..\n",
+ "print \" The cutoff wavelength in um =\",round(lamda,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cutoff wavelength in um = 1.23\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.14.9:Pg-1.48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math \n",
+ " \n",
+ "lamda= 0.82*10**-6 # wavelength ofoperation.\n",
+ "a= 2.5*10**-6 # Radius of core..\n",
+ "n1= 1.48 # RI of core..\n",
+ "n2= 1.46 # RI of cladding\n",
+ "NA= math.sqrt(n1**2-n2**2) # Numerical Aperture..\n",
+ "V= 2*math.pi*a*NA/lamda # Normalisd frequency..\n",
+ "print \" The normalised frequency =\",round(V,3) \n",
+ "M= V**2/2 # The number of modes..\n",
+ "print \" \\n\\nThe number of modes in the fibre are =\",round(M,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The normalised frequency = 4.645\n",
+ " \n",
+ "\n",
+ "The number of modes in the fibre are = 10.79\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.14.10:Pg-1.49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ " # Given\n",
+ "import math\n",
+ " \n",
+ "delt= 0.01 # Relative RI difference..\n",
+ "n1= 1.5 \n",
+ "M= 1100 # Number of modes...\n",
+ "lamda= 1.3 # wavelength of operation in um..\n",
+ "V= math.sqrt(2*M) # Normalised frequency...\n",
+ "d= V*lamda/(math.pi*n1*math.sqrt(2*delt)) # diameter of core..\n",
+ "print \" The diameter of the core in um =\",round(d,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The diameter of the core in um = 91.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.14.11:Pg-1.50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ "n1= 1.5 # RI of core..\n",
+ "n2= 1.38 # RI of cladding..\n",
+ "a= 25*10**-6 # radius of core..\n",
+ "lamda= 1300*10**-9 # wavelength of operation...\n",
+ "NA= math.sqrt(n1**2-n2**2) # Numerical Aperture..\n",
+ "print \" The Numerical Aperture of the given fibre =\",round(NA,4) \n",
+ "V= 2*math.pi*a*NA/lamda # Normalised frequency..\n",
+ "print \" \\n\\nThe normalised frequency =\",round(V,2) \n",
+ "theta= math.asin(NA) # Solid acceptance anglr..\n",
+ "print \" \\n\\nThe Solid acceptance angle in degrees =\",int(math.degrees(theta)) \n",
+ "M= V**2/2 # Number of modes..\n",
+ "print \" \\n\\nThe number of modes in the fibre are =\",int(M) \n",
+ "print \" \\n\\n***Number of modes wrongly calculated in the book..\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Numerical Aperture of the given fibre = 0.5879\n",
+ " \n",
+ "\n",
+ "The normalised frequency = 71.03\n",
+ " \n",
+ "\n",
+ "The Solid acceptance angle in degrees = 36\n",
+ " \n",
+ "\n",
+ "The number of modes in the fibre are = 2522\n",
+ " \n",
+ "\n",
+ "***Number of modes wrongly calculated in the book..\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.14.12:Pg-1.51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ "\n",
+ "lamda= 850*10**-9 # wavelength of operation.\n",
+ "a= 25*10**-6 # Radius of core\n",
+ "n1= 1.48 # RI of Core...\n",
+ "n2= 1.46 # RI of cladding..\n",
+ "\n",
+ "NA= math.sqrt(n1**2-n2**2) # Numerical Aperture\n",
+ "\n",
+ "V= 2*math.pi*a*NA/lamda # Normalised frequency..\n",
+ "print \" The normalised frequency =\",round(V,2) \n",
+ "\n",
+ "lamda1= 1320*10**-9 # wavelength changed...\n",
+ "V1= 2*math.pi*a*NA/lamda1 # Normalised frequency at new wavelength..\n",
+ "\n",
+ "M= V1**2/2 # Number of modes at new wavelength..\n",
+ "print \" \\n\\nThe number of modes in the fibre at 1320um =\",int(M) \n",
+ "lamda2= 1550*10**-9 # wavelength 2...\n",
+ "V2= 2*math.pi*a*NA/lamda2 # New normalised frequency..\n",
+ "M1= V2**2/2 # number of modes..\n",
+ "print \" \\n\\nThe number of modes in the fibre at 1550um =\",int(M1 )\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The normalised frequency = 44.81\n",
+ " \n",
+ "\n",
+ "The number of modes in the fibre at 1320um = 416\n",
+ " \n",
+ "\n",
+ "The number of modes in the fibre at 1550um = 301\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.15.1:Pg-1.56"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ " \n",
+ "n1= 1.48 # RI of core..\n",
+ "delt= 0.015 # relative RI differencr..\n",
+ "lamda= 0.85 # wavelength of operation..\n",
+ "V= 2.4 # for single mode of operation..\n",
+ "\n",
+ "a= V*lamda/(2*math.pi*n1*math.sqrt(2*delt)) # radius of core..\n",
+ "print \" The raduis of core in um =\",round(a,2) \n",
+ "print \" \\n\\nThe maximum possible core diameter in um =\",round(2*a,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The raduis of core in um = 1.27\n",
+ " \n",
+ "\n",
+ "The maximum possible core diameter in um = 2.53\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.15.2:Pg-1.56"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ " # Given\n",
+ "import math\n",
+ " \n",
+ "n1= 1.5 # RI of core..\n",
+ "delt= 0.01 # Relative RI difference...\n",
+ "lamda= 1.3 # Wavelength of operation...\n",
+ "V= 2.4*math.sqrt(2) # Maximum value of V for GRIN...\n",
+ "a= V*lamda/(2*math.pi*n1*math.sqrt(2*delt)) # radius of core..\n",
+ "print \" The radius of core in um =\",round(a,2) \n",
+ "print \" \\n\\nThe maximum possible core diameter in um =\",round(2*a,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The radius of core in um = 3.31\n",
+ " \n",
+ "\n",
+ "The maximum possible core diameter in um = 6.62\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.15.3:Pg-1.56"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ "\n",
+ "n1= 1.46 # RI of core..\n",
+ "a = 4.5 # radius of core in um..\n",
+ "delt= 0.0025 # relative RI difference..\n",
+ "V= 2.405 # Normalisd frequency for single mode..\n",
+ "lamda= 2*math.pi*a*n1*math.sqrt(2*delt)/V # cutoff wavelength...\n",
+ "print \" The cut off wavelength for the given fibre in um =\",round(lamda,3) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength for the given fibre in um = 1.214\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Optical_Fiber_Communication_by_V._S._Bagad/Chapter2.ipynb b/Optical_Fiber_Communication_by_V._S._Bagad/Chapter2.ipynb
new file mode 100755
index 00000000..46a8893c
--- /dev/null
+++ b/Optical_Fiber_Communication_by_V._S._Bagad/Chapter2.ipynb
@@ -0,0 +1,945 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:211878047ac07bbe36923a59422db9a2025fd46f216dee8cd476326a7778bb6a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter02: Optical Fiber for Telecommunication"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " Ex2.2.1:Pg-2.4"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ "\n",
+ "alpha= 3 # average loss Power decreases by 50% so P(0)/P(z)= 0.5\n",
+ "lamda= 900*10**-9 # wavelength\n",
+ "z= 10*math.log10(0.5)/alpha # z is the length\n",
+ "z= z*-1 \n",
+ "print \" The length over which power decreases by 50% in Kms= \",round(z,2) \n",
+ "\n",
+ "z1= 10*math.log10(0.25)/alpha # Power decreases by 75% so P(0)/P(z)= 0.25\n",
+ "z1=z1*-1 # as distance cannot be negative...\n",
+ "print \" \\n\\nThe length over which power decreases by 75% in Kms= \",round(z1,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The length over which power decreases by 50% in Kms= 1.0\n",
+ " \n",
+ "\n",
+ "The length over which power decreases by 75% in Kms= 2.01\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.2.2:Pg-2.5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "\n",
+ "z=30.0 # Length of the fibre in kms\n",
+ "alpha= 0.8 # in dB\n",
+ "P0= 200.0 # Power launched in uW\n",
+ "pz= P0/10**(alpha*z/10) \n",
+ "print \" The output power in uW =\",round(pz,4) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The output power in uW = 0.7962\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.2.3:Pg-2.6"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math \n",
+ "\n",
+ "z=8.0 # fibre length\n",
+ "p0= 120*10**-6 # power launched\n",
+ "pz= 3*10**-6 \n",
+ "alpha= 10*math.log10(p0/pz) # overall attenuation\n",
+ "print \" The overall attenuation in dB =\",round(alpha,2) \n",
+ "alpha = alpha/z # attenuation per km\n",
+ "alpha_new= alpha *10 # attenuation for 10kms\n",
+ "total_attenuation = alpha_new + 9 # 9dB because of splices\n",
+ "print \" \\n\\nThe total attenuation in dB =\",int(total_attenuation) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The overall attenuation in dB = 16.02\n",
+ " \n",
+ "\n",
+ "The total attenuation in dB = 29\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.2.4:Pg-2.6"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ " # Given\n",
+ " \n",
+ "z=12.0 # fibre length\n",
+ "alpha = 1.5 \n",
+ "p0= 0.3 \n",
+ "pz= p0/10**(alpha*z/10) \n",
+ "pz=pz*1000 # formatting pz in nano watts...\n",
+ "print \" The power at the output of the cable in W = \",round(pz,2),\"x 10^-9\" \n",
+ "alpha_new= 2.5 \n",
+ "pz=pz/1000 # pz in uWatts...\n",
+ "p0_new= 10**(alpha_new*z/10)*pz \n",
+ "print \" \\n\\nThe Input power in uW= \",round(p0_new,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The power at the output of the cable in W = 4.75 x 10^-9\n",
+ " \n",
+ "\n",
+ "The Input power in uW= 4.75\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.2.5:Pg-2.7"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ "\n",
+ "p0=150*10**-6 # power input\n",
+ "z= 10.0 # fibre length in km\n",
+ "pz= -38.2 # in dBm...\n",
+ "pz= 10**(pz/10)*1*10**-3 \n",
+ "alpha_1= 10/z *math.log10(p0/pz) # attenuation in 1st window\n",
+ "print \" Attenuation is 1st window in dB/Km =\",round(alpha_1,2) \n",
+ "alpha_2= 10/z *math.log10(p0/(47.5*10**-6)) # attenuation in 2nd window\n",
+ "print \" \\n\\nAttenuation is 2nd window in dB/Km =\",round(alpha_2,2) \n",
+ "alpha_3= 10/z *math.log10(p0/(75*10**-6)) # attenuation in 3rd window\n",
+ "print \" \\n\\nAttenuation is 3rd window in dB/Km =\",round(alpha_3,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Attenuation is 1st window in dB/Km = 3.0\n",
+ " \n",
+ "\n",
+ "Attenuation is 2nd window in dB/Km = 0.5\n",
+ " \n",
+ "\n",
+ "Attenuation is 3rd window in dB/Km = 0.3\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "\n",
+ "Ex2.2.6:Pg-2.8"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "p0=3*10**-3 \n",
+ "pz=3*10**-6 \n",
+ "alpha= 0.5 \n",
+ "z= math.log10(p0/pz)/(alpha/10) \n",
+ "print \" The Length of the fibre in Km =\",int(z)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Length of the fibre in Km = 60\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.2.7:Pg-2.9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "\n",
+ "z= 10.0 \n",
+ "p0= 100*10**-6 # input power\n",
+ "pz=5*10**-6 # output power\n",
+ "alpha = 10*math.log10(p0/pz) # total attenuation\n",
+ "print \" The overall signal attenuation in dB = \",round(alpha,2) \n",
+ "alpha = alpha/z # attenuation per km\n",
+ "print \" \\n\\nThe attenuation per Km in dB/Km = \",round(alpha,2)\n",
+ "z_new = 12.0 \n",
+ "splice_attenuation = 11*0.5 \n",
+ "cable_attenuation = alpha*z_new \n",
+ "total_attenuation = splice_attenuation+cable_attenuation \n",
+ "print \" \\n\\nThe overall signal attenuation for 12Kms in dB = \",round(total_attenuation,1) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The overall signal attenuation in dB = 13.01\n",
+ " \n",
+ "\n",
+ "The attenuation per Km in dB/Km = 1.3\n",
+ " \n",
+ "\n",
+ "The overall signal attenuation for 12Kms in dB = 21.1\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.2.8:Pg-2.15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "Tf = 1400.0 # fictive temperature\n",
+ "BETA = 7*10**-11 \n",
+ "n= 1.46 # RI \n",
+ "p= 0.286 # photo elastic constant\n",
+ "Kb = 1.381*10**-23 # Boltzmann's constant\n",
+ "lamda = 850*10**-9 # wavelength\n",
+ "alpha_scat = 8*math.pi**3*n**8*p**2*Kb*Tf*BETA/(3*lamda**4) \n",
+ "l= 1000 # fibre length\n",
+ "TL = exp(-alpha_scat*l) # transmission loss\n",
+ "attenuation = 10*math.log10(1/TL) \n",
+ "print \" The attenuation in dB/Km =\",round(attenuation,3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The attenuation in dB/Km = 1.572\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.3.1:Pg-2.20"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "alpha = 2 \n",
+ "n1= 1.5 \n",
+ "a= 25*10**-6 \n",
+ "lamda= 1.3*10**-6 \n",
+ "M= 0.5 \n",
+ "NA= math.sqrt(0.5*2*1.3**2/(math.pi**2*25**2)) \n",
+ "Rc= 3*n1**2*lamda/(4*math.pi*NA**3) \n",
+ "Rc=Rc*1000 # converting into um.....\n",
+ "print \" The radius of curvature in um =\",round(Rc,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The radius of curvature in um = 153.98\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.5.1:Pg-2.25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "lamda = 850 *10**-9 \n",
+ "sigma= 45*10**-9 \n",
+ "L= 1 \n",
+ "M= 0.025/(3*10**5*lamda) \n",
+ "sigma_m= sigma*L*M \n",
+ "sigma_m= sigma_m*10**9 # formatting in ns/km....\n",
+ "print \" The Pulse spreading in ns/Km =\",round(sigma_m,2) \n",
+ "print \" \\n\\nNOTE*** - The answer in text book is wrongly calculated..\" \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Pulse spreading in ns/Km = 4.41\n",
+ " \n",
+ "\n",
+ "NOTE*** - The answer in text book is wrongly calculated..\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.5.2:Pg-2.26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "lamda= 2*10**-9 \n",
+ "sigma = 75 \n",
+ "D_mat= 0.03/(3*10**5*2) \n",
+ "sigma_m= 2*1*D_mat \n",
+ "sigma_m=sigma_m*10**9 # Fornamtting in ns/Km\n",
+ "print \" The Pulse spreading in ns/Km =\",int(sigma_m)\n",
+ "D_mat_led= 0.025/(3*10**5*1550) \n",
+ "sigma_m_led = 75*1*D_mat_led*10**9 # in ns/Km\n",
+ "print \" \\n\\nThe Pulse spreading foe LED is ns/Km =\",round(sigma_m_led,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Pulse spreading in ns/Km = 100\n",
+ " \n",
+ "\n",
+ "The Pulse spreading foe LED is ns/Km = 4.03\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.5.3:Pg-2.26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "lamda = 850 \n",
+ "sigma= 20 \n",
+ "D_mat = 0.055/(3*10**5*lamda) \n",
+ "sigma_m= sigma*1*D_mat \n",
+ "D_mat=D_mat*10**12 # in Ps...\n",
+ "sigma_m=sigma_m*10**9 # in ns # # \n",
+ "print \" The material Dispersion in Ps/nm-Km =\",round(D_mat,2) \n",
+ "print \" \\n\\nThe Pulse spreading in ns/Km =\",round(sigma_m,4) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The material Dispersion in Ps/nm-Km = 215.69\n",
+ " \n",
+ "\n",
+ "The Pulse spreading in ns/Km = 4.3137\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.5.4:Pg-2.30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "n2= 1.48 \n",
+ "dele = 0.2 \n",
+ "lamda = 1320 \n",
+ "Dw = -n2*dele*0.26/(3*10**5*lamda) \n",
+ "Dw=Dw*10**10 # converting in math.picosecs....\n",
+ "print \" The waveguide dispersion in math.picosec/nm.Km =\",round(Dw,3) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The waveguide dispersion in math.picosec/nm.Km = -1.943\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.6.1:Pg-2.34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "t= 0.1*10**-6 \n",
+ "L= 12 \n",
+ "B_opt= 1/(2*t) \n",
+ "B_opt=B_opt/1000000 # converting from Hz to MHz\n",
+ "print \" The maximum optical bandwidth in MHz. =\",int(B_opt) \n",
+ "dele= t/L # Pulse broadening\n",
+ "dele=dele*10**9 # converting in ns...\n",
+ "print \" \\n\\nThe pulse broadening per unit length in ns/Km =\",round(dele,2) \n",
+ "BLP= B_opt*L # BW length product\n",
+ "print \" \\n\\nThe Bandwidth-Length Product in MHz.Km =\",int(BLP) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The maximum optical bandwidth in MHz. = 5\n",
+ " \n",
+ "\n",
+ "The pulse broadening per unit length in ns/Km = 8.33\n",
+ " \n",
+ "\n",
+ "The Bandwidth-Length Product in MHz.Km = 60\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.6.2:Pg-2.34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "t= 0.1*10**-6 \n",
+ "L= 10.0 \n",
+ "B_opt= 1/(2*t) \n",
+ "B_opt=B_opt/1000000 # converting from Hz to MHz\n",
+ "print \" The maximum optical bandwidth in MHz. =\",int(B_opt) \n",
+ "dele= t/L \n",
+ "dele=dele/10**-6 # converting in us...\n",
+ "print \" \\n\\nThe dispersion per unit length in us/Km =\",round(dele,2) \n",
+ "BLP= B_opt*L \n",
+ "print \" \\n\\nThe Bandwidth-Length product in MHz.Km =\",int(BLP) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The maximum optical bandwidth in MHz. = 5\n",
+ " \n",
+ "\n",
+ "The dispersion per unit length in us/Km = 0.01\n",
+ " \n",
+ "\n",
+ "The Bandwidth-Length product in MHz.Km = 50\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.6.3:Pg-2.35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "t= 0.1*10**-6 \n",
+ "L=15 \n",
+ "B_opt= 1/(2*t) \n",
+ "B_opt=B_opt/1000000 # converting from Hz to MHz\n",
+ "print \" The maximum optical bandwidth in MHz. =\",int(B_opt) \n",
+ "dele= t/L*10**9 # in ns...\n",
+ "print \" \\n\\nThe dispersion per unit length in ns/Km =\",round(dele,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The maximum optical bandwidth in MHz. = 5\n",
+ " \n",
+ "\n",
+ "The dispersion per unit length in ns/Km = 6.67\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.6.4:Pg-2.35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "lamda = 0.85*10**-6 \n",
+ "rms_spect_width = 0.0012*lamda \n",
+ "sigma_m= rms_spect_width*1*98.1*10**-3 \n",
+ "sigma_m=sigma_m*10**9 # converting in ns...\n",
+ "print \" The Pulse Broadening due to material dispersion in ns/Km =\",round(sigma_m,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Pulse Broadening due to material dispersion in ns/Km = 0.1\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.6.5:Pg-2.35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "\n",
+ "L= 5.0 # in KM\n",
+ "n1= 1.5 \n",
+ "dele= 0.01 \n",
+ "c= 3*10**8 # in m/s\n",
+ "delta_t = (L*n1*dele)/c \n",
+ "delta_t=delta_t*10**12 # convertin to nano secs...\n",
+ "print \" The delay difference in ns =\",round(delta_t,1)\n",
+ "sigma= L*n1*dele/(2*math.sqrt(3)*c) \n",
+ "sigma=sigma*10**12 # convertin to nano secs...\n",
+ "print \" \\n\\nThe r.m.s pulse broadening in ns =\",round(sigma,2) \n",
+ "B= 0.2/sigma*1000 # in Mz\n",
+ "print \" \\n\\nThe maximum bit rate in MBits/sec =\",round(B,2) \n",
+ "BLP = B*5 \n",
+ "print \" \\n\\nThe Bandwidth-Length in MHz.Km =\",round(BLP,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The delay difference in ns = 250.0\n",
+ " \n",
+ "\n",
+ "The r.m.s pulse broadening in ns = 72.17\n",
+ " \n",
+ "\n",
+ "The maximum bit rate in MBits/sec = 2.77\n",
+ " \n",
+ "\n",
+ "The Bandwidth-Length in MHz.Km = 13.86\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.6.6:Pg-2.36"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "del_t_inter = 5*1 \n",
+ "del_t_intra = 50*80*1 \n",
+ "total_dispersion = math.sqrt(5**2 + 0.4**2) \n",
+ "print \" Total dispersion in ns =\",round(total_dispersion,3) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Total dispersion in ns = 5.016\n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.7.1:Pg-2.37"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "t= 0.1*10**-6 \n",
+ "L=15 \n",
+ "dele= t/L*10**9 # convertin to nano secs...\n",
+ "print \" The Pulse Dispersion in ns =\",round(dele,2) \n",
+ "B_opt= 1/(2*t)/10**6 # convertin to nano secs...\n",
+ "print \" \\n\\n The maximum possible Bandwidth in MHz =\",int(B_opt) \n",
+ "BLP = B_opt*L \n",
+ "print \" \\n\\nThe BandwidthLength product in MHz.Km =\",int(BLP) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Pulse Dispersion in ns = 6.67\n",
+ " \n",
+ "\n",
+ " The maximum possible Bandwidth in MHz = 5\n",
+ " \n",
+ "\n",
+ "The BandwidthLength product in MHz.Km = 75\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.7.2:Pg-2.38"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "L= 6 \n",
+ "n1= 1.5 \n",
+ "delt= 0.01 \n",
+ "delta_t = L*n1*delt/(3*10**8)*10**12 # convertin to nano secs...\n",
+ "print \" The delay difference in ns =\",int(delta_t) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The delay difference in ns = 300\n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.7.3:Pg-2.39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "Lb= 0.09 \n",
+ "lamda= 1.55*10**-6 \n",
+ "delta_lamda = 1*10**-9 \n",
+ "Bf= lamda/Lb \n",
+ "Lbc= lamda**2/(Bf*delta_lamda) \n",
+ "print \" The modal Bifriengence in meters =\",round(Lbc,2) \n",
+ "beta_xy= 2*math.pi/Lb \n",
+ "print \" \\n\\nThe difference between propogation constants =\",round(beta_xy,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The modal Bifriengence in meters = 139.5\n",
+ " \n",
+ "\n",
+ "The difference between propogation constants = 69.81\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.7.4:Pg-2.39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "t= 0.1*10**-6 \n",
+ "B_opt= 1/(2*t)/1000000 \n",
+ "print \" The maximum possible Bandwidth in MHz =\",int(B_opt) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The maximum possible Bandwidth in MHz = 5\n"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.7.5:Pg-2.40"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "t= 0.1*10**-6 \n",
+ "B_opt= 1/(2*t)/1000000 \n",
+ "print \" The maximum possible Bandwidth in MHz =\",int(B_opt) \n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The maximum possible Bandwidth in MHz = 5\n"
+ ]
+ }
+ ],
+ "prompt_number": 55
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Optical_Fiber_Communication_by_V._S._Bagad/Chapter3.ipynb b/Optical_Fiber_Communication_by_V._S._Bagad/Chapter3.ipynb
new file mode 100755
index 00000000..1e7a6431
--- /dev/null
+++ b/Optical_Fiber_Communication_by_V._S._Bagad/Chapter3.ipynb
@@ -0,0 +1,826 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1c5868fa547e8a659e03148d4a7bf0c9a34282713a490e0b68c5b0aa98a2f7e8"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter03:Optical Sources and Transmitters"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.2.1:Pg-3.10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "x= 0.07 \n",
+ "Eg= 1.424+1.266*x+0.266*x**2 \n",
+ "lamda= 1.24/Eg \n",
+ "print \" The emitted wavelength in um =\",round(lamda,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The emitted wavelength in um = 0.82\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.2.2:Pg-3.10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "x= 0.26 \n",
+ "y=0.57 \n",
+ "Eg= 1.35-0.72*y+0.12*y**2 \n",
+ "lamda = 1.24/Eg \n",
+ "print \" The wavelength emitted in um =\",round(lamda,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The wavelength emitted in um = 1.27\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.2.3:Pg-3.12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "Tr = 60*10**-9 # radiative recombination time\n",
+ "Tnr= 90*10**-9 # non radiative recomb time\n",
+ "I= 40*10**-3 # current\n",
+ "t = Tr*Tnr/(Tr+Tnr) # total recomb time\n",
+ "t=t*10**9 # Converting in nano secs...\n",
+ "print \" The total carrier recombination life time in ns =\",int(t) \n",
+ "t=t/10**9 \n",
+ "h= 6.625*10**-34 # plancks const\n",
+ "c= 3*10**8 \n",
+ "q=1.602*10**-19 \n",
+ "lamda= 0.87*10**-6 \n",
+ "Pint=(t/Tr)*((h*c*I)/(q*lamda)) \n",
+ "Pint=Pint*1000 # converting inmW...\n",
+ "print \" \\n\\nThe Internal optical power in mW =\",round(Pint,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total carrier recombination life time in ns = 36\n",
+ " \n",
+ "\n",
+ "The Internal optical power in mW = 34.22\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.2.4:Pg-3.13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "lamda = 1310*10**-9 \n",
+ "Tr= 30*10**-9 \n",
+ "Tnr= 100*10**-9 \n",
+ "I= 40*10**-3 \n",
+ "t= Tr*Tnr/(Tr+Tnr) \n",
+ "t=t*10**9 # converting in nano secs...\n",
+ "print \" Bulk recombination life time in ns =\",round(t,2) \n",
+ "t=t/10**9 \n",
+ "n= t/Tr \n",
+ "print \" \\n\\nInternal quantum efficiency =\",round(n,3) \n",
+ "h= 6.625*10**-34 # plancks const\n",
+ "c= 3*10**8 \n",
+ "q=1.602*10**-19 \n",
+ "Pint=(0.769*h*c*I)/(q*lamda)*1000 \n",
+ "print \" \\n\\nThe internal power level in mW =\",round(Pint,3) \n",
+ "print \" \\n\\n***NOTE: Internal Power wrong in text book.. Calculation Error..\" \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Bulk recombination life time in ns = 23.08\n",
+ " \n",
+ "\n",
+ "Internal quantum efficiency = 0.769\n",
+ " \n",
+ "\n",
+ "The internal power level in mW = 29.131\n",
+ " \n",
+ "\n",
+ "***NOTE: Internal Power wrong in text book.. Calculation Error..\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.2.5:Pg-3.14"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "nx= 3.6 \n",
+ "TF= 0.68 \n",
+ "n= 0.3 \n",
+ " # Pe=Pint*TF*1/(4*nx**2) \n",
+ " # ne= Pe/Px*100 ..eq0\n",
+ " # Pe = 0.013*Pint # Eq 1\n",
+ " # Pint = n*P # Eq 2\n",
+ " # substitute eq2 and eq1 in eq0\n",
+ "ne = 0.013*0.3*100 \n",
+ "print \" The external Power efficiency in % =\",round(ne,3) \n",
+ " # Wrongly printed in textbook. it should be P instead of Pint in last step\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The external Power efficiency in % = 0.39\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.2.6:Pg-3.15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "lamda= 0.85*10**-6 \n",
+ "Nint = 0.60 \n",
+ "I= 20*10**-3 \n",
+ "h= 6.625*10**-34 # plancks const\n",
+ "c= 3*10**8 \n",
+ "e=1.602*10**-19 \n",
+ "Pint = Nint*h*c*I/(e*lamda) \n",
+ "print \" The optical power emitted in W =\",round(Pint,4) \n",
+ "\n",
+ "TF= 0.68 \n",
+ "nx= 3.6 \n",
+ "Pe= Pint*TF/(4*nx**2)*1000000 \n",
+ "print \" \\n\\nPower emitted in the air in uW =\",round(Pe,1) \n",
+ "Pe=Pe/1000000 \n",
+ "Nep=Pe/Pint*100 \n",
+ "print \" \\n\\nExternal power efficiency in % =\",round(Nep,1) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The optical power emitted in W = 0.0175\n",
+ " \n",
+ "\n",
+ "Power emitted in the air in uW = 229.7\n",
+ " \n",
+ "\n",
+ "External power efficiency in % = 1.3\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.2.7:Pg-3.16"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "lamda = 0.87*10**-6 \n",
+ "Tr= 50*10**-9 \n",
+ "I= 0.04 \n",
+ "Tnr= 110*10**-9 \n",
+ "t= Tr*Tnr/(Tr+Tnr) \n",
+ "t=t*10**9 # converting in ns...\n",
+ "print \" Total carrier recombination life time in ns =\",round(t,2) \n",
+ "t=t/10**9 \n",
+ "h= 6.625*10**-34 # plancks const\n",
+ "c= 3*10**8 \n",
+ "q=1.602*10**-19 \n",
+ "n= t/Tr \n",
+ "print \" \\n\\nThe efficiency in % \",round(n,3) \n",
+ "Pint=(n*h*c*I)/(q*lamda)*1000 \n",
+ "print \" \\n\\nInternal power generated in mW =\",round(Pint,2) \n",
+ "print \" \\n\\n***NOTE- Internal Power wrong in book... \"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Total carrier recombination life time in ns = 34.38\n",
+ " \n",
+ "\n",
+ "The efficiency in % 0.688\n",
+ " \n",
+ "\n",
+ "Internal power generated in mW = 39.22\n",
+ " \n",
+ "\n",
+ "***NOTE- Internal Power wrong in book... \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.2.8:Pg-3.16"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ " \n",
+ "\n",
+ "V= 2 \n",
+ "I= 100*10**-3 \n",
+ "Pc= 2*10**-3 \n",
+ "P= V*I \n",
+ "Npc= Pc/P*100 \n",
+ "print \" The overall power conversion efficiency in % =\",int(Npc) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The overall power conversion efficiency in % = 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.3.1:Pg-3.25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "\n",
+ "r1= 0.32 \n",
+ "r2= 0.32 \n",
+ "alpha= 10 \n",
+ "L= 500*10**-4 \n",
+ "temp=math.log(1/(r1*r2)) \n",
+ "Tgth = alpha + (temp/(2*L)) \n",
+ "print \" The optical gain at threshold in /cm =\",round(Tgth,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The optical gain at threshold in /cm = 32.79\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.3.2:Pg-3.27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ " \n",
+ "n= 3.7 \n",
+ "lamda = 950*10**-9 \n",
+ "L= 500*10**-6 \n",
+ "c= 3*10**8 \n",
+ "DELv = c/(2*L*n)*10*10**-10 # converting in GHz...\n",
+ "print \" The frequency spacing in GHz =\",int(DELv) \n",
+ "DEL_lamda= lamda**2/(2*L*n)*10**9 # converting to nm..\n",
+ "print \" \\n\\nThe wavelength spacing in nm =\",round(DEL_lamda,2) \n",
+ "\n",
+ "print \" \\n\\n***NOTE- The value of wavelength taken wrongly in book\" \n",
+ " # value of lamda taken wrongly while soving for DEL_LAMDA inthe book..\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The frequency spacing in GHz = 81\n",
+ " \n",
+ "\n",
+ "The wavelength spacing in nm = 0.24\n",
+ " \n",
+ "\n",
+ "***NOTE- The value of wavelength taken wrongly in book\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.3.3:Pg-3.30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ " #Given\n",
+ " \n",
+ "L= 0.04 \n",
+ "n= 1.78 \n",
+ "lamda= 0.55*10**-6 \n",
+ "c= 3*10**8 \n",
+ "q= 2*n*L/lamda \n",
+ "q=q/10**5 \n",
+ "print \" Number of longitudinal modes =\",round(q,2),\"x 10^5\" \n",
+ "del_f= c/(2*n*L) \n",
+ "del_f=del_f*10**-9 \n",
+ "print \" \\n\\nThe frequency seperation in GHz =\",round(del_f,1) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Number of longitudinal modes = 2.59 x 10^5\n",
+ " \n",
+ "\n",
+ "The frequency seperation in GHz = 2.1\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.3.4:Pg-3.33"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "Nt= 0.18 \n",
+ "V= 2.5 \n",
+ "Eg= 1.43 \n",
+ "Nep= Nt*Eg*100/V \n",
+ "print \" The total efficiency in % =\",round(Nep,3) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total efficiency in % = 10.296\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.3.5:Pg-3.33"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "n= 3.6 \n",
+ "BETA= 21*10**-3 \n",
+ "alpha= 10 \n",
+ "L= 250*10**-4 \n",
+ "\n",
+ "r= (n-1)**2/(n+1)**2 \n",
+ "Jth= 1/BETA *( alpha + (math.log(1/r)/L)) \n",
+ "Jth=Jth/1000 # converting for displaying...\n",
+ "print \" The threshold current density =\",round(Jth,3),\"x 10**3\" \n",
+ "Jth=Jth*1000 \n",
+ "Ith =Jth*250*100*10**-8 \n",
+ "Ith=Ith*1000 # converting into mA...\n",
+ "print \" \\n\\nThe threshold current in mA =\",round(Ith,1) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The threshold current density = 2.65 x 10**3\n",
+ " \n",
+ "\n",
+ "The threshold current in mA = 662.4\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.3.6:Pg-3.34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "T= 305.0 \n",
+ "T0 = 160.0 \n",
+ "T1= 373.0\n",
+ "\n",
+ "Jth_32 = exp(T/T0) \n",
+ "Jth_100 = exp(T1/T0) \n",
+ "R_j = Jth_100/Jth_32 \n",
+ "print \" Ratio of current densities at 160K is =\",round(R_j,2) \n",
+ "print \" \\n\\n***NOTE- Wrong in book...\\nJth(100) calculated wrongly...\" \n",
+ "To = 55 \n",
+ "Jth_32_new = exp(T/To) \n",
+ "Jth_100_new = exp(T1/To) \n",
+ "R_j_new = Jth_100_new/Jth_32_new \n",
+ "print \" \\n\\nRatio of current densities at 55K is \",round(R_j_new,2) \n",
+ " # wrong in book...\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Ratio of current densities at 160K is = 1.53\n",
+ " \n",
+ "\n",
+ "***NOTE- Wrong in book...\n",
+ "Jth(100) calculated wrongly...\n",
+ " \n",
+ "\n",
+ "Ratio of current densities at 55K is 3.44\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.4.1:Pg-3.42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "\n",
+ "Bo= 150 \n",
+ "rs= 35*10**-4 \n",
+ "a1= 25*10**-6 \n",
+ "NA= 0.20 \n",
+ "a2= 50*10**-6 \n",
+ "\n",
+ "Pled = (a1/rs)**2 * (math.pi**2*rs**2*Bo*NA**2) \n",
+ "Pled=Pled*10**10 # converting in uW...\n",
+ "print \" The power coupled inthe fibre in uW =\",int(Pled) \n",
+ "Pled_new = (math.pi**2*rs**2*Bo*NA**2) \n",
+ "Pled_new=Pled_new*10**6 # converting in uW...\n",
+ "print \" \\n\\nThe Power coupled for case 2 in uW =\",round(Pled_new,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The power coupled inthe fibre in uW = 370\n",
+ " \n",
+ "\n",
+ "The Power coupled for case 2 in uW = 725.42\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.4.2:Pg-3.43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "n= 1.48 \n",
+ "n1= 3.6 \n",
+ "R= (n1-n)**2/(n1+n)**2 \n",
+ "print \" The Fresnel Reflection is \",round(R,4) \n",
+ "L= -10*math.log10(1-R) \n",
+ "print \" \\n\\nPower loss in dB =\",round(L,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Fresnel Reflection is 0.1742\n",
+ " \n",
+ "\n",
+ "Power loss in dB = 0.83\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.4.3:Pg-3.44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "\n",
+ "NA= 0.20 \n",
+ "Bo= 150 \n",
+ "rs= 35*10**-6 \n",
+ "Pled = math.pi**2*rs**2*Bo*NA**2 \n",
+ "Pled=Pled*10**10 # convertin in uW for displaying...\n",
+ "print \" The optical power coupled in uW =\",round(Pled,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The optical power coupled in uW = 725.42\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.4.4:Pg-3.44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "\n",
+ "n1= 1.5 \n",
+ "n=1 \n",
+ "R= (n1-n)**2/(n1+n)**2 \n",
+ "L= -10*math.log10(1-R) \n",
+ " # Total loss is twice due to reflection\n",
+ "L= L+L \n",
+ "print \" Total loss due to Fresnel Reflection in dB =\",round(L,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Total loss due to Fresnel Reflection in dB = 0.35\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.4.5:Pg-3.51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ " \n",
+ "n1= 1.5 \n",
+ "n=1.0 \n",
+ "y=5.0 \n",
+ "a= 25.0 \n",
+ "temp1=(1-(y/(2*a)**2))**0.5 \n",
+ "temp1=temp1*(y/a) \n",
+ "temp=2*math.acos(0.9996708) # it should be acos(0.1) actually... due to approximations\n",
+ " \n",
+ " # answer varies a lot... \n",
+ "temp=math.degrees(temp)-temp1 \n",
+ " # temp=temp \n",
+ "tem= 16*(1.5**2)/(2.5**4) \n",
+ "tem=tem/math.pi \n",
+ "temp=temp*tem \n",
+ "Nlat= temp \n",
+ "print \" The Coupling efficiency is =\",round(Nlat,3) \n",
+ "L= -10*math.log10(Nlat) \n",
+ "print \" \\n\\nThe insertion loss in dB =\",round(L,2) \n",
+ "temp1=(1-(y/(2*a)**2))**0.5 \n",
+ "temp1=temp1*(y/a) \n",
+ "temp=2*math.acos(0.9996708) # it should be acos(0.1) actually... due to approximations\n",
+ " # answer varies a lot... \n",
+ "temp=math.degrees(temp)-temp1 \n",
+ "temp=temp/math.pi \n",
+ "N_new =temp \n",
+ "print \" \\n\\nEfficiency when joint index is matched =\",round(N_new,3) \n",
+ "L_new= -10*math.log10(N_new) \n",
+ "print \" \\n\\nThe new insertion loss in dB =\",round(L_new,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Coupling efficiency is = 0.804\n",
+ " \n",
+ "\n",
+ "The insertion loss in dB = 0.95\n",
+ " \n",
+ "\n",
+ "Efficiency when joint index is matched = 0.872\n",
+ " \n",
+ "\n",
+ "The new insertion loss in dB = 0.59\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Optical_Fiber_Communication_by_V._S._Bagad/Chapter4.ipynb b/Optical_Fiber_Communication_by_V._S._Bagad/Chapter4.ipynb
new file mode 100755
index 00000000..9dca6b9e
--- /dev/null
+++ b/Optical_Fiber_Communication_by_V._S._Bagad/Chapter4.ipynb
@@ -0,0 +1,644 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e29ad753b5f2886d343bb74ecb0ecc91fcb2a9898826cbfcabd7e953e57d2f63"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter04: Optical Detectors and Receivers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.1.1:Pg-4.5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "Eg= 1.1 \n",
+ "lamda_c = 1.24/Eg \n",
+ "print \"The cut off wavelength in um= \",round(lamda_c,2) \n",
+ "\n",
+ "Eg_ger =0.67 \n",
+ "lamda_ger= 1.24/Eg_ger \n",
+ "print \" \\nThe cut off wavelength for Germanium in um= \",round(lamda_ger,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The cut off wavelength in um= 1.13\n",
+ " \n",
+ "The cut off wavelength for Germanium in um= 1.85\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.1.2:Pg-4.5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "Eg = 1.43 \n",
+ "lamda = 1.24/Eg \n",
+ "lamda=lamda*1000 # converting in nm\n",
+ "print \"The cut off wavelength in nm =\",round(lamda,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The cut off wavelength in nm = 867.13\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.1.3:Pg-4.5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "P = 6*10**6 \n",
+ "Eh_pair= 5.4*10**6 \n",
+ "n= Eh_pair/P*100 \n",
+ "print \" The quantum efficiency in % = \",n \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The quantum efficiency in % = 90.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.1.4:Pg-4.6"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "R= 0.65 \n",
+ "P0= 10*10**-6 \n",
+ "Ip= R*P0 \n",
+ "Ip=Ip*10**6 # convertinf in uA...\n",
+ "print \" The generated photocurrent in uA = \",Ip \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The generated photocurrent in uA = 6.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.1.5:Pg-4.6"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "Ec= 1.2*10**11 \n",
+ "P= 3*10**11 \n",
+ "lamda = 0.85*10**-6 \n",
+ "n= Ec/P*100 \n",
+ "print \"The efficiency in % =\",n \n",
+ "\n",
+ "q= 1.602*10**-19 \n",
+ "h= 6.625*10**-34 \n",
+ "c= 3*10**8 \n",
+ "n= n/100 \n",
+ "R= n*q*lamda/(h*c) \n",
+ "print \" \\n\\nThe Responsivity of the photodiode in A/W=\",round(R ,4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The efficiency in % = 40.0\n",
+ " \n",
+ "\n",
+ "The Responsivity of the photodiode in A/W= 0.2741\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.1.6:Pg-4.7"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "n= 0.65 \n",
+ "E= 1.5*10**-19 \n",
+ "Ip= 2.5*10**-6 \n",
+ "h= 6.625*10**-34 \n",
+ "c= 3*10**8 \n",
+ "lamda= h*c/E \n",
+ "lamda=lamda*10**6 # converting in um for displaying...\n",
+ "print \"The wavelength in um =\",lamda \n",
+ "lamda=lamda*10**-6 \n",
+ "q= 1.602*10**-19 \n",
+ "R= n*q*lamda/(h*c) \n",
+ "print \"\\nThe Responsivity in A/W =\",R \n",
+ "Pin= Ip/R \n",
+ "Pin=Pin*10**6 # converting in uW for displaying/..\n",
+ "print \" \\nThe incidnt power in uW= \",round(Pin,1) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The wavelength in um = 1.325\n",
+ "\n",
+ "The Responsivity in A/W = 0.6942\n",
+ " \n",
+ "The incidnt power in uW= 3.6\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.1.7:Pg-4.8"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "Iin= 1 \n",
+ "lamda= 1550*10**-9 \n",
+ "q= 1.602*10**-19 \n",
+ "h= 6.625*10**-34 \n",
+ "c= 3*10**8 \n",
+ "n=0.65 \n",
+ "Ip=n*q*lamda*Iin/(h*c) \n",
+ "Ip=Ip*1000 # converting in mA for displaying...\n",
+ "print \" The average photon current in mA= \",int(Ip)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The average photon current in mA= 812\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.1.8:Pg-4.9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "n= 0.70 \n",
+ "Ip= 4*10**-6 \n",
+ "e= 1.602*10**-19 \n",
+ "h= 6.625*10**-34 \n",
+ "c= 3*10**8 \n",
+ "E= 1.5*10**-19\n",
+ "lamda = h*c/E \n",
+ "lamda=lamda*10**6 # converting um for displaying...\n",
+ "print \"The wavelength in um =\",round(lamda,3) \n",
+ "R= n*e/E \n",
+ "Po= Ip/R \n",
+ "Po=Po*10**6 # converting um for displaying...\n",
+ "print \" \\nIncident optical Power in uW =\",round(Po,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The wavelength in um = 1.325\n",
+ " \n",
+ "Incident optical Power in uW = 5.35\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.2.1:Pg-4.14"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "Ct= 7*10.0**-12\n",
+ "Rt= 50*1*10.0**6/(50+(1*10**6))\n",
+ "B= 1/(2*math.pi*Rt*Ct)\n",
+ "B=B*10**-6 #converting in mHz for displaying...\n",
+ "print \"The bandwidth of photodetector in MHz =\",round(B,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The bandwidth of photodetector in MHz = 454.75\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.2.2:Pg-4.15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "W= 25*10**-6 \n",
+ "Vd= 3*10**4 \n",
+ "Bm= Vd/(2*math.pi*W) \n",
+ "RT= 1/Bm \n",
+ "RT=RT*10**9 # converting ns for displaying...\n",
+ "print \" The maximum response time in ns =\",round(RT,2) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The maximum response time in ns = 5.24\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "\n",
+ "Ex4.2.3:Pg-4.15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "e= 1.602*10**-19 \n",
+ "h= 6.625*10**-34 \n",
+ "v= 3*10**8 \n",
+ "n=0.65 \n",
+ "I= 10*10**-6 \n",
+ "lamda= 900*10**-9 \n",
+ "R= n*e*lamda/(h*v) \n",
+ "Po= 0.5*10**-6 \n",
+ "Ip= Po*R \n",
+ "M= I/Ip \n",
+ "print \" The multiplication factor =\",round(M,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The multiplication factor = 42.41\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.3.1:Pg-4.18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "n=0.65 \n",
+ "lamda = 900*10**-9 \n",
+ "Pin= 0.5*10**-6 \n",
+ "Im= 10*10**-6 \n",
+ "q= 1.602*10**-19 \n",
+ "h= 6.625*10**-34 \n",
+ "c= 3*10**8 \n",
+ "R= n*q*lamda/(h*c) \n",
+ "Ip= R*Pin \n",
+ "M= Im/Ip \n",
+ "print \" The multiplication factor =\",round(M,2)\n",
+ "print \"\\n***NOTE-Answer wrong in textbook...\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The multiplication factor = 42.41\n",
+ "\n",
+ "***NOTE-Answer wrong in textbook...\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.6.1:Pg-4.34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "lamda = 1300*10**-9 \n",
+ "Id= 4*10**-9 \n",
+ "n=0.9 \n",
+ "Rl= 1000 \n",
+ "Pincident= 300*10**-9 \n",
+ "BW= 20*10**6 \n",
+ "q= 1.602*10**-19 \n",
+ "h= 6.625*10**-34 \n",
+ "v= 3*10**8 \n",
+ "Iq= math.sqrt((q*Pincident*n*lamda)/(h*v)) \n",
+ "Iq= math.sqrt(Iq) \n",
+ "Iq=Iq*100 # converting in proper format for displaying...\n",
+ "print \"Mean square quantum noise current in Amp*10^11 =\",round(Iq,2)\n",
+ "I_dark= 2*q*BW*Id \n",
+ "I_dark=I_dark*10**19 # converting in proper format for displaying...\n",
+ "print \" \\nMean square dark current in Amp*10^-19 =\",round(I_dark,3) \n",
+ "k= 1.38*10**-23 \n",
+ "T= 25+273 \n",
+ "It= 4*k*T*BW/Rl \n",
+ "It=It*10**16 # converting in proper format for displaying...\n",
+ "print \" \\nMean square thermal nise current in Amp*10^-16 =\",round(It,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mean square quantum noise current in Amp*10^11 = 2.31\n",
+ " \n",
+ "Mean square dark current in Amp*10^-19 = 0.256\n",
+ " \n",
+ "Mean square thermal nise current in Amp*10^-16 = 3.29\n"
+ ]
+ }
+ ],
+ "prompt_number": 61
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.8.1:Pg-4.39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "lamda = 850*10**-9 # meters\n",
+ "BER= 1*10**-9 \n",
+ "N_bar = 9*log(10) \n",
+ "h= 6.625*10**-34 # joules-sec\n",
+ "v= 3*10**8 # meters/sec\n",
+ "n= 0.65 # assumption\n",
+ "E=N_bar*h*v/(n*lamda) \n",
+ "E=E*10**18 # /converting in proper format for displaying...\n",
+ "print \" The Energy received in Joules*10^-18 =\",round(E,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Energy received in Joules*10^-18 = 7.45\n"
+ ]
+ }
+ ],
+ "prompt_number": 64
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.8.2:Pg-4.39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "lamda = 850*10**-9 \n",
+ "BER = 1*10**-9 \n",
+ "BT=10*10**6 \n",
+ "h= 6.625*10**-34 \n",
+ "c= 3*10**8 \n",
+ "Ps= 36*h*c*BT/lamda \n",
+ "Ps=Ps*10**12 # /converting in proper format for displaying...\n",
+ "print \"The minimum incidental optical power required id in pW =\",round(Ps,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The minimum incidental optical power required id in pW = 84.18\n"
+ ]
+ }
+ ],
+ "prompt_number": 67
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.8.3:Pg-4.40"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "C= 5*10**-12 \n",
+ "B =50*10**6 \n",
+ "Ip= 1*10**-7 \n",
+ "e= 1.602*10**-19 \n",
+ "k= 1.38*10**-23 \n",
+ "T= 18+273 \n",
+ "M= 1 \n",
+ "Rl= 1/(2*math.pi*C*B) \n",
+ "S_N= Ip**2/((2*e*B*Ip)+(4*k*T*B/Rl)) \n",
+ "S_N = 10*math.log10(S_N) # in db\n",
+ "print \" The S/N ratio in dB =\",round(S_N,2) \n",
+ "M=41.54 \n",
+ "S_N_new= (M**2*Ip**2)/((2*e*B*Ip*M**2.3)+(4*k*T*B/Rl)) \n",
+ "S_N_new = 10*math.log10(S_N_new) # in db\n",
+ "print \" \\n\\nThe new S/N ratio in dB =\",round(S_N_new,2)\n",
+ "print \" \\n\\nImprovement over M=1 in dB =\",round(S_N_new-S_N,1) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The S/N ratio in dB = 8.99\n",
+ " \n",
+ "\n",
+ "The new S/N ratio in dB = 32.49\n",
+ " \n",
+ "\n",
+ "Improvement over M=1 in dB = 23.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 70
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Optical_Fiber_Communication_by_V._S._Bagad/Chapter5.ipynb b/Optical_Fiber_Communication_by_V._S._Bagad/Chapter5.ipynb
new file mode 100755
index 00000000..3915a0b4
--- /dev/null
+++ b/Optical_Fiber_Communication_by_V._S._Bagad/Chapter5.ipynb
@@ -0,0 +1,458 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b4a79f107959b9c220fb0fbffb78f81a806979a06263be16ca010cadce8d4a27"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter05: Design Considerations in Optical Links"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.3.1:Pg-5.7"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "B= 15*10**-6 \n",
+ "L= 4 \n",
+ "BER= 1*10**-9 \n",
+ "Ls= 0.5 \n",
+ "Lc= 1.5 \n",
+ "alpha= 6 \n",
+ "Pm= 8 \n",
+ "Pt= 2*Lc +(alpha*L)+(Pm) \n",
+ "print \" The actual loss in fibre in dB =\",int(Pt) \n",
+ "Pmax = -10-(-50) \n",
+ "print \" \\nThe maximum allowable system loss in dBm = \",Pmax "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The actual loss in fibre in dB = 35\n",
+ " \n",
+ "The maximum allowable system loss in dBm = 40\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.3.2:Pg-5.8"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "Ps= 0.1 \n",
+ "alpha = 6 \n",
+ "L= 0.5 \n",
+ "Ps = 10*math.log10(Ps) \n",
+ "NA= 0.25 \n",
+ "Lcoupling= -10*math.log10(NA**2) \n",
+ "Lf= alpha*L \n",
+ "lc= 2*2 \n",
+ "Pm= 4 \n",
+ "Pout = Ps-(Lcoupling+Lf+lc+Pm) \n",
+ "print \" The actual power output in dBm = \",int(Pout) \n",
+ "Pmin = -35 \n",
+ "print \" Minimum input power required in dBm= \",Pmin \n",
+ "print \" As Pmin > Pout, system will perform adequately over the system operating life.\" \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The actual power output in dBm = -33\n",
+ " Minimum input power required in dBm= -35\n",
+ " As Pmin > Pout, system will perform adequately over the system operating life.\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.3.3:Pg-5.8"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "Ps= 5 \n",
+ "Lcoupling = 3 \n",
+ "Lc= 2 \n",
+ "L_splicing = 50*0.1 \n",
+ "F_atten = 25 \n",
+ "L_total = Lcoupling+Lc+L_splicing+F_atten \n",
+ "P_avail = Ps-L_total \n",
+ "sensitivity = -40 \n",
+ "loss_margin = -sensitivity-(-P_avail) \n",
+ "print \" The loss margin of the system in dBm= -\",loss_margin \n",
+ "sensitivity_fet = -32 \n",
+ "loss_margin_fet=-sensitivity_fet-(-P_avail) \n",
+ "print \"The loss marging for the FET receiver in dBm= -\",loss_margin_fet \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The loss margin of the system in dBm= - 10.0\n",
+ "The loss marging for the FET receiver in dBm= - 2.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.3.4:Pg-5.9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "LED_output = 3 \n",
+ "PIN_sensitivity = -54 \n",
+ "allowed_loss= LED_output -(-PIN_sensitivity) \n",
+ "Lcoupling = 17.5 \n",
+ "cable_atten = 30 \n",
+ "power_margin_coupling= 39.5 \n",
+ "power_margin_splice=6.2 \n",
+ "power_margin_cable=9.5 \n",
+ "final_margin= power_margin_coupling+power_margin_splice+power_margin_cable \n",
+ "print \" The safety margin in dB =\",final_margin\n",
+ " # Answer in book is wrong...\n",
+ "print \" \\n***NOTE- Answer wrong in book...\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The safety margin in dB = 55.2\n",
+ " \n",
+ "***NOTE- Answer wrong in book...\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.3.5:Pg-5.10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "optical_power=-10 \n",
+ "receiver_sensitivity=-41 \n",
+ "total_margin= optical_power-receiver_sensitivity \n",
+ "cable_loss= 7*2.6 \n",
+ "splice_loss= 6*0.5 \n",
+ "connector_loss= 1*1.5 \n",
+ "safety_margin= 6 \n",
+ "total_loss= cable_loss+splice_loss+connector_loss+safety_margin \n",
+ "excess_power_margin= total_margin-total_loss \n",
+ "print \" The system is viable and provides excess power margin in dB=\",excess_power_margin \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The system is viable and provides excess power margin in dB= 2.3\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.4.1:Pg-5.13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "Ttx= 15 \n",
+ "Tmat=21 \n",
+ "Tmod= 3.9 \n",
+ "BW= 25.0 \n",
+ "Trx= 350.0/BW \n",
+ "\n",
+ "Tsys = math.sqrt(Ttx**2+Tmat**2+Tmod**2+Trx**2) \n",
+ "print \" The system rise time in ns.= \",round(Tsys,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The system rise time in ns.= 29.62\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.4.2:Pg-5.14"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "\n",
+ "Ttrans = 1.75*10**-9 \n",
+ "Tled = 3.50*10**-9 \n",
+ "Tcable=3.89*10**-9 \n",
+ "Tpin= 1*10**-9 \n",
+ "Trec= 1.94*10**-9 \n",
+ "Tsys= math.sqrt(Ttrans**2+Tled**2+Tcable**2+Tpin**2+Trec**2) \n",
+ "Tsys=Tsys*10**9 # converting in ns for dislaying...\n",
+ "print \" The system rise time in ns= \",round(Tsys,2)\n",
+ "Tsys=Tsys*10**-9 \n",
+ "BW= 0.35/Tsys \n",
+ "BW=BW/1000000.0 # converting in MHz for dislaying...\n",
+ "print \" \\nThe system bandwidth in MHz =\",round(BW,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The system rise time in ns= 5.93\n",
+ " \n",
+ "The system bandwidth in MHz = 58.99\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.4.3:Pg-5.14"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "Ttx= 8*10**-9 \n",
+ "Tintra= 1*10**-9 \n",
+ "Tmodal=5*10**-9 \n",
+ "Trr= 6*10**-9 \n",
+ "Tsys= math.sqrt(Ttx**2+(8*Tintra)**2+(8*Tmodal)**2+Trr**2) \n",
+ "\n",
+ "BWnrz= 0.7/Tsys \n",
+ "BWnrz=BWnrz/1000000 # converting in ns for dislaying...\n",
+ "BWrz=0.35/Tsys \n",
+ "BWrz=BWrz/1000000 # converting in ns for dislaying...\n",
+ "print \" Maximum bit rate for NRZ format in Mb/sec= \",round(BWnrz,2)\n",
+ "print \" \\nMaximum bit rate for RZ format in Mb/sec= \",round(BWrz,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Maximum bit rate for NRZ format in Mb/sec= 16.67\n",
+ " \n",
+ "Maximum bit rate for RZ format in Mb/sec= 8.33\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.4.4:Pg-5.15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "Ts= 10*10**-9 \n",
+ "Tn=9*10**-9 \n",
+ "Tc=2*10**-9 \n",
+ "Td=3*10**-9 \n",
+ "BW= 6*10**6 \n",
+ "Tsyst= 1.1*math.sqrt(Ts**2+(5*Tn)**2+(5*Tc)**2+Td**2) \n",
+ "Tsyst=Tsyst*10**9 # converting in ns for displying...\n",
+ "Tsyst_max = 0.35/BW \n",
+ "Tsyst_max=Tsyst_max*10**9 # converting in ns for displying...\n",
+ "print \" Rise system of the system in ns= \",round(Tsyst,2)\n",
+ "print \" \\nMaximum Rise system of the system in ns= \",round(Tsyst_max,2)\n",
+ "print \" \\nSpecified components give a system rise time which is adequate for the bandwidth and distance requirements of the optical fibre link.\" \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Rise system of the system in ns= 51.99\n",
+ " \n",
+ "Maximum Rise system of the system in ns= 58.33\n",
+ " \n",
+ "Specified components give a system rise time which is adequate for the bandwidth and distance requirements of the optical fibre link.\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.5.1:Pg-5.18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "\n",
+ "del_t_1 = 10*100*10**-9 \n",
+ "Bt_nrz_1 = 0.7/(del_t_1*1000000) \n",
+ "Bt_rz_1 = 0.35/(del_t_1*1000000) \n",
+ "print \"First case.\"\n",
+ "print \" \\nBit rate for nrz in Mb/sec= \",Bt_nrz_1 \n",
+ "print \" \\nBit rate for rz in Mb/sec= \",Bt_rz_1 \n",
+ "del_t_2 = 20*1000*10**-9 \n",
+ "Bt_nrz_2 = 0.7/(del_t_2*1000000) \n",
+ "Bt_rz_2 = 0.35/(del_t_2*1000000) \n",
+ "print \" \\n\\nSecond case\" \n",
+ "print \" \\nBit rate for nrz in Mb/sec= \",Bt_nrz_2 \n",
+ "print \" \\nBit rate for rz in Mb/sec= \",Bt_rz_2 \n",
+ "del_t_3 = 2*2000*10**-9 \n",
+ "Bt_nrz_3 = 0.7/(del_t_3*1000) \n",
+ "Bt_rz_3 = 0.35/(del_t_3*1000) \n",
+ "print \" \\n\\nThird case\" \n",
+ "print \" \\nBit rate for nrz in BITS/sec= \",int(Bt_nrz_3) \n",
+ "print \" \\nBit rate for rz in BITS/sec= \",Bt_rz_3 \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "First case.\n",
+ " \n",
+ "Bit rate for nrz in Mb/sec= 0.7\n",
+ " \n",
+ "Bit rate for rz in Mb/sec= 0.35\n",
+ " \n",
+ "\n",
+ "Second case\n",
+ " \n",
+ "Bit rate for nrz in Mb/sec= 0.035\n",
+ " \n",
+ "Bit rate for rz in Mb/sec= 0.0175\n",
+ " \n",
+ "\n",
+ "Third case\n",
+ " \n",
+ "Bit rate for nrz in BITS/sec= 174\n",
+ " \n",
+ "Bit rate for rz in BITS/sec= 87.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Optical_Fiber_Communication_by_V._S._Bagad/Chapter6-Advanced_Optical_Systems.ipynb b/Optical_Fiber_Communication_by_V._S._Bagad/Chapter6-Advanced_Optical_Systems.ipynb
new file mode 100755
index 00000000..b0cb88b7
--- /dev/null
+++ b/Optical_Fiber_Communication_by_V._S._Bagad/Chapter6-Advanced_Optical_Systems.ipynb
@@ -0,0 +1,317 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ac520a54154462ad172aef8bbb865642cb1f987c781ea69ea1084ba6e27e7f6b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter06: Advanced Optical Systems"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.5.1:Pg-6.11"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "lamda_p= 980*10**-9 \n",
+ "lamda_s=1550*10**-9 \n",
+ "P_in=30 # in mW....\n",
+ "G=100 \n",
+ "\n",
+ "Ps_max= ((lamda_p*P_in)/lamda_s)/(G-1) \n",
+ "print \" \\nMaximum input power in mW = \",round(Ps_max,5) \n",
+ " \n",
+ "Ps_out= Ps_max + (lamda_p*P_in/lamda_s) \n",
+ "Ps_out= 10*math.log10(Ps_out) \n",
+ "print \" \\n\\nOutput power in dBm = \",round(Ps_out,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ "Maximum input power in mW = 0.19159\n",
+ " \n",
+ "\n",
+ "Output power in dBm = 12.82\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.5.2:Pg-6.12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ "Ps_out= 30.0 # in uW...\n",
+ "Ps_in=1.0 \n",
+ "Noise_power = 0.5 \n",
+ "\n",
+ "G= Ps_out/Ps_in \n",
+ "\n",
+ "G= 10*math.log10(G) \n",
+ "print \" \\nThe Gain EDFA in dB = \",round(G,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ "The Gain EDFA in dB = 14.77\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.10.1:Pg-6.22"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "P0=200.0 \n",
+ "P1=90.0 \n",
+ "P2=85.0 \n",
+ "P3=6.3 \n",
+ " # All powers in uW...\n",
+ "coupling_ratio= P2/(P1+P2)*100 \n",
+ "print \" \\n\\n Coupling Ratio in % = \",round(coupling_ratio,2) \n",
+ "excess_ratio= 10*math.log10(P0/(P1+P2))\n",
+ "print \" \\n\\n The Excess Ratio in % = \",round(excess_ratio,4) \n",
+ "insertion_loss=10*math.log10(P0/P1) \n",
+ "print \" \\n\\n The Insertion Loss (from Port 0 to Port 1) in dB= \",round(insertion_loss,2) \n",
+ "insertion_loss1=10*math.log10(P0/P2) \n",
+ "print \" \\n\\n The Insertion Loss (from Port 0 to Port 2) in dB= \",round(insertion_loss1,2) \n",
+ "cross_talk=10*math.log10(P3/P0) \n",
+ "print \" \\n\\n The Cross Talk in dB= \",int(cross_talk) \n",
+ "print \" \\n\\n***NOTE: Cross Talk calculated wrognly in book... Value of P3 wrognly taken\" \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ "\n",
+ " Coupling Ratio in % = 48.57\n",
+ " \n",
+ "\n",
+ " The Excess Ratio in % = 0.5799\n",
+ " \n",
+ "\n",
+ " The Insertion Loss (from Port 0 to Port 1) in dB= 3.47\n",
+ " \n",
+ "\n",
+ " The Insertion Loss (from Port 0 to Port 2) in dB= 3.72\n",
+ " \n",
+ "\n",
+ " The Cross Talk in dB= -15\n",
+ " \n",
+ "\n",
+ "***NOTE: Cross Talk calculated wrognly in book... Value of P3 wrognly taken\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.10.2:Pg-6.23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "P0= 300.0 \n",
+ "P1=150.0 \n",
+ "P2=65.0 \n",
+ "P3=8.3*10**-3 \n",
+ " # All powers in uW...\n",
+ "splitting_ratio= P2/(P1+P2)*100 \n",
+ "print \" \\n\\n Splitting Ratio in %= \",round(splitting_ratio,2) \n",
+ "excess_ratio= 10*math.log10(P0/(P1+P2))\n",
+ "print \" \\n\\n The Excess Ratio in dB= \",round(excess_ratio,4)\n",
+ "insertion_loss=10*math.log10(P0/P1) \n",
+ "print \" \\n\\n The Insertion Loss (from Port 0 to Port 1) in dB= \",round(insertion_loss,2) \n",
+ "cross_talk=10*math.log10(P3/P0) \n",
+ "print \" \\n\\n The Cross Talk in dB= \",round(cross_talk,2) \n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ "\n",
+ " Splitting Ratio in %= 30.23\n",
+ " \n",
+ "\n",
+ " The Excess Ratio in dB= 1.4468\n",
+ " \n",
+ "\n",
+ " The Insertion Loss (from Port 0 to Port 1) in dB= 3.01\n",
+ " \n",
+ "\n",
+ " The Cross Talk in dB= -45.58\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.10.3:Pg-6.25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "N=32.0 \n",
+ "Ft=(100-5)/100.0 \n",
+ "Total_loss= 10*(1-3.322*math.log10(Ft))*math.log10(N) \n",
+ "print \" The total loss in the coupler in dB = \",round(Total_loss,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total loss in the coupler in dB = 16.17\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.10.4:Pg-6.28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "N=10 \n",
+ "L=0.5 \n",
+ "alpha=0.4 \n",
+ "Lthru=0.9 \n",
+ "Lc=1 \n",
+ "Ltap=10 \n",
+ "Li=0.5 \n",
+ "Total_loss= N*(alpha*L +2*Lc +Lthru+Li)-(alpha*L)-(2*Lthru)+(2*Ltap) \n",
+ "print \" The total loss in the coupler in dB = \",int(Total_loss)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total loss in the coupler in dB = 54\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.11.1:Pg-6.33"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "del_v=10*10**9 \n",
+ "N_eff= 1.5 \n",
+ "c=3*10**11 # speed of light in mm/sec\n",
+ "del_L= c/(2*N_eff*del_v) \n",
+ "print \" The wave guide length differenc in mm= \",int(del_L) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The wave guide length differenc in mm= 10\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Optical_Fiber_Communication_by_V._S._Bagad/Chapter6.ipynb b/Optical_Fiber_Communication_by_V._S._Bagad/Chapter6.ipynb
new file mode 100755
index 00000000..b0cb88b7
--- /dev/null
+++ b/Optical_Fiber_Communication_by_V._S._Bagad/Chapter6.ipynb
@@ -0,0 +1,317 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ac520a54154462ad172aef8bbb865642cb1f987c781ea69ea1084ba6e27e7f6b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter06: Advanced Optical Systems"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.5.1:Pg-6.11"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "lamda_p= 980*10**-9 \n",
+ "lamda_s=1550*10**-9 \n",
+ "P_in=30 # in mW....\n",
+ "G=100 \n",
+ "\n",
+ "Ps_max= ((lamda_p*P_in)/lamda_s)/(G-1) \n",
+ "print \" \\nMaximum input power in mW = \",round(Ps_max,5) \n",
+ " \n",
+ "Ps_out= Ps_max + (lamda_p*P_in/lamda_s) \n",
+ "Ps_out= 10*math.log10(Ps_out) \n",
+ "print \" \\n\\nOutput power in dBm = \",round(Ps_out,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ "Maximum input power in mW = 0.19159\n",
+ " \n",
+ "\n",
+ "Output power in dBm = 12.82\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.5.2:Pg-6.12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given\n",
+ "import math\n",
+ "Ps_out= 30.0 # in uW...\n",
+ "Ps_in=1.0 \n",
+ "Noise_power = 0.5 \n",
+ "\n",
+ "G= Ps_out/Ps_in \n",
+ "\n",
+ "G= 10*math.log10(G) \n",
+ "print \" \\nThe Gain EDFA in dB = \",round(G,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ "The Gain EDFA in dB = 14.77\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.10.1:Pg-6.22"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "P0=200.0 \n",
+ "P1=90.0 \n",
+ "P2=85.0 \n",
+ "P3=6.3 \n",
+ " # All powers in uW...\n",
+ "coupling_ratio= P2/(P1+P2)*100 \n",
+ "print \" \\n\\n Coupling Ratio in % = \",round(coupling_ratio,2) \n",
+ "excess_ratio= 10*math.log10(P0/(P1+P2))\n",
+ "print \" \\n\\n The Excess Ratio in % = \",round(excess_ratio,4) \n",
+ "insertion_loss=10*math.log10(P0/P1) \n",
+ "print \" \\n\\n The Insertion Loss (from Port 0 to Port 1) in dB= \",round(insertion_loss,2) \n",
+ "insertion_loss1=10*math.log10(P0/P2) \n",
+ "print \" \\n\\n The Insertion Loss (from Port 0 to Port 2) in dB= \",round(insertion_loss1,2) \n",
+ "cross_talk=10*math.log10(P3/P0) \n",
+ "print \" \\n\\n The Cross Talk in dB= \",int(cross_talk) \n",
+ "print \" \\n\\n***NOTE: Cross Talk calculated wrognly in book... Value of P3 wrognly taken\" \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ "\n",
+ " Coupling Ratio in % = 48.57\n",
+ " \n",
+ "\n",
+ " The Excess Ratio in % = 0.5799\n",
+ " \n",
+ "\n",
+ " The Insertion Loss (from Port 0 to Port 1) in dB= 3.47\n",
+ " \n",
+ "\n",
+ " The Insertion Loss (from Port 0 to Port 2) in dB= 3.72\n",
+ " \n",
+ "\n",
+ " The Cross Talk in dB= -15\n",
+ " \n",
+ "\n",
+ "***NOTE: Cross Talk calculated wrognly in book... Value of P3 wrognly taken\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.10.2:Pg-6.23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "P0= 300.0 \n",
+ "P1=150.0 \n",
+ "P2=65.0 \n",
+ "P3=8.3*10**-3 \n",
+ " # All powers in uW...\n",
+ "splitting_ratio= P2/(P1+P2)*100 \n",
+ "print \" \\n\\n Splitting Ratio in %= \",round(splitting_ratio,2) \n",
+ "excess_ratio= 10*math.log10(P0/(P1+P2))\n",
+ "print \" \\n\\n The Excess Ratio in dB= \",round(excess_ratio,4)\n",
+ "insertion_loss=10*math.log10(P0/P1) \n",
+ "print \" \\n\\n The Insertion Loss (from Port 0 to Port 1) in dB= \",round(insertion_loss,2) \n",
+ "cross_talk=10*math.log10(P3/P0) \n",
+ "print \" \\n\\n The Cross Talk in dB= \",round(cross_talk,2) \n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ "\n",
+ " Splitting Ratio in %= 30.23\n",
+ " \n",
+ "\n",
+ " The Excess Ratio in dB= 1.4468\n",
+ " \n",
+ "\n",
+ " The Insertion Loss (from Port 0 to Port 1) in dB= 3.01\n",
+ " \n",
+ "\n",
+ " The Cross Talk in dB= -45.58\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.10.3:Pg-6.25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "N=32.0 \n",
+ "Ft=(100-5)/100.0 \n",
+ "Total_loss= 10*(1-3.322*math.log10(Ft))*math.log10(N) \n",
+ "print \" The total loss in the coupler in dB = \",round(Total_loss,2) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total loss in the coupler in dB = 16.17\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.10.4:Pg-6.28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "N=10 \n",
+ "L=0.5 \n",
+ "alpha=0.4 \n",
+ "Lthru=0.9 \n",
+ "Lc=1 \n",
+ "Ltap=10 \n",
+ "Li=0.5 \n",
+ "Total_loss= N*(alpha*L +2*Lc +Lthru+Li)-(alpha*L)-(2*Lthru)+(2*Ltap) \n",
+ "print \" The total loss in the coupler in dB = \",int(Total_loss)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total loss in the coupler in dB = 54\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.11.1:Pg-6.33"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "del_v=10*10**9 \n",
+ "N_eff= 1.5 \n",
+ "c=3*10**11 # speed of light in mm/sec\n",
+ "del_L= c/(2*N_eff*del_v) \n",
+ "print \" The wave guide length differenc in mm= \",int(del_L) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The wave guide length differenc in mm= 10\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Optical_Fiber_Communication_by_V._S._Bagad/README.txt b/Optical_Fiber_Communication_by_V._S._Bagad/README.txt
new file mode 100755
index 00000000..861c658f
--- /dev/null
+++ b/Optical_Fiber_Communication_by_V._S._Bagad/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Samiksha Srivastava
+Course: btech
+College/Institute/Organization: ABES Engineering College
+Department/Designation: Computer Science and Engineering
+Book Title: Optical Fiber Communication
+Author: V. S. Bagad
+Publisher: Technical Publications, Pune
+Year of publication: 2013
+Isbn: 9789350385203
+Edition: 2 \ No newline at end of file
diff --git a/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/Chapter01-Ex1.7.1.png b/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/Chapter01-Ex1.7.1.png
new file mode 100755
index 00000000..4c42636d
--- /dev/null
+++ b/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/Chapter01-Ex1.7.1.png
Binary files differ
diff --git a/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/Chapter02-Ex2.2.1.png b/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/Chapter02-Ex2.2.1.png
new file mode 100755
index 00000000..7f5fd635
--- /dev/null
+++ b/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/Chapter02-Ex2.2.1.png
Binary files differ
diff --git a/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/Chapter03-Ex3.2.1.png b/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/Chapter03-Ex3.2.1.png
new file mode 100755
index 00000000..c1f042e9
--- /dev/null
+++ b/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/Chapter03-Ex3.2.1.png
Binary files differ
diff --git a/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/ch3.png b/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/ch3.png
new file mode 100755
index 00000000..9adb53db
--- /dev/null
+++ b/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/ch3.png
Binary files differ
diff --git a/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/ch3_1.png b/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/ch3_1.png
new file mode 100755
index 00000000..9adb53db
--- /dev/null
+++ b/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/ch3_1.png
Binary files differ
diff --git a/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/ch5.png b/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/ch5.png
new file mode 100755
index 00000000..acf6fcac
--- /dev/null
+++ b/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/ch5.png
Binary files differ
diff --git a/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/ch5_1.png b/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/ch5_1.png
new file mode 100755
index 00000000..acf6fcac
--- /dev/null
+++ b/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/ch5_1.png
Binary files differ
diff --git a/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/ch7.png b/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/ch7.png
new file mode 100755
index 00000000..302231b6
--- /dev/null
+++ b/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/ch7.png
Binary files differ
diff --git a/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/ch7_1.png b/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/ch7_1.png
new file mode 100755
index 00000000..302231b6
--- /dev/null
+++ b/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/ch7_1.png
Binary files differ
diff --git a/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/chapter2.png b/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/chapter2.png
new file mode 100755
index 00000000..e8ee191d
--- /dev/null
+++ b/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/chapter2.png
Binary files differ
diff --git a/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/chapter5.png b/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/chapter5.png
new file mode 100755
index 00000000..d6fa34e3
--- /dev/null
+++ b/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/chapter5.png
Binary files differ
diff --git a/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/chapter6.png b/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/chapter6.png
new file mode 100755
index 00000000..ac19fe5b
--- /dev/null
+++ b/Optical_Fiber_Communication_by_V._S._Bagad/screenshots/chapter6.png
Binary files differ