diff options
author | Jovina Dsouza | 2014-07-07 16:34:28 +0530 |
---|---|---|
committer | Jovina Dsouza | 2014-07-07 16:34:28 +0530 |
commit | fffcc90da91b66ee607066d410b57f34024bd1de (patch) | |
tree | 7b8011d61013305e0bf7794a275706abd1fdb0d3 /Optical_Communication_/Chapter_4.ipynb | |
parent | 299711403e92ffa94a643fbd960c6f879639302c (diff) | |
download | Python-Textbook-Companions-fffcc90da91b66ee607066d410b57f34024bd1de.tar.gz Python-Textbook-Companions-fffcc90da91b66ee607066d410b57f34024bd1de.tar.bz2 Python-Textbook-Companions-fffcc90da91b66ee607066d410b57f34024bd1de.zip |
adding book
Diffstat (limited to 'Optical_Communication_/Chapter_4.ipynb')
-rwxr-xr-x | Optical_Communication_/Chapter_4.ipynb | 1221 |
1 files changed, 1221 insertions, 0 deletions
diff --git a/Optical_Communication_/Chapter_4.ipynb b/Optical_Communication_/Chapter_4.ipynb new file mode 100755 index 00000000..875e1b2a --- /dev/null +++ b/Optical_Communication_/Chapter_4.ipynb @@ -0,0 +1,1221 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:d4d0afedfad591dd3db7bcb4692f0b80c70309a906e9699c9f80be4fd8fe4dbc" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 4: Signal Degradation in Optical Fibers" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.1, Page number 100" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Calculate the loss of fiber'''\n", + "\n", + "from sympy import *\n", + "import math\n", + "\n", + "#Variable declaration\n", + "L = 400./1000. #distance(km)\n", + "Pi = Symbol(\"Pi\")\n", + "Po = 0.25*Pi\n", + "\n", + "#Calculations\n", + "Loss = (10*math.log10(Pi/Po))/L\n", + "\n", + "#Result\n", + "print \"Loss =\",round(Loss),\"dB/km\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Loss = 15.0 dB/km\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.2, Page number 101" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Calculate power level'''\n", + "\n", + "#Variable declaration\n", + "L = 3 #distance(km)\n", + "a = 0.5 #attenuation loss(dB/km)\n", + "lamda = 0.82 #wavelength(um)\n", + "Pi = 1 #input power(mW)\n", + "\n", + "#Calculation\n", + "Po = Pi*10**((-a*L)/10)\n", + "\n", + "#Result\n", + "print \"Power level =\",round(Po,2),\"mW\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Power level = 0.71 mW\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.3, Page number 101" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Determine maximum possible link length'''\n", + "\n", + "#Variable declaration\n", + "a = 0.5 #attenuation loss(dB/km)\n", + "Pi = 1.5*10**-3 #input power(uW)\n", + "Po = 2.*10**-6 #output power(uW)\n", + "\n", + "#Calculation\n", + "L = (10*math.log10(Pi/Po))/a\n", + "\n", + "#Result\n", + "print \"Maximum possible link length =\",round(L,2),\"km\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Maximum possible link length = 57.5 km\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.4, Page number 102" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Determine pulse dispersion per unit length'''\n", + "\n", + "#Variable declaration\n", + "pd = 1.2*10**-3 #pulse broadening(ns)\n", + "d = 30 #distance\n", + "\n", + "#Calculation\n", + "D = pd/d\n", + "\n", + "#Result\n", + "print \"Pulse dispersion per unit length =\",D,\"ns/m\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Pulse dispersion per unit length = 4e-05 ns/m\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.5, Page number 102" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Determine the optical output power'''\n", + "\n", + "#Variable declaration\n", + "L = 30 #distance(km)\n", + "a = 0.8 #attenuation loss(dB/km)\n", + "lamda = 1300 #wavelength(nm)\n", + "Pi = 200 #input power(uW)\n", + "\n", + "#Calculation\n", + "Po = Pi*10**((-a*L)/10)\n", + "\n", + "#Result\n", + "print \"Optical output power =\",round(Po,3),\"uW\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Optical output power = 0.796 uW\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.6, Page number 103" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Determine\n", + "a)Overall signal attenuation\n", + "b)signal attenuation per km\n", + "c)signal attenuation for the link\n", + "d)input output power ratio'''\n", + "\n", + "import math\n", + "\n", + "#Variable declaration\n", + "L = 8 #distance(km)\n", + "Pi = 120*10**-6 #input power(W)\n", + "Po = 3*10**-6 #output power(W)\n", + "\n", + "#Calculations\n", + "#Part a\n", + "a = 10*math.log10(Pi/Po)\n", + "\n", + "#Part b\n", + "adb = a/L\n", + "\n", + "#Part c\n", + "l = 10\n", + "x = adb*l #loss occured along 10km of fiber\n", + "y = 9 #loss due to splices(dB)\n", + "dB = x+y\n", + "\n", + "#Part d\n", + "pi_by_po = 10**(round(dB)/10)\n", + "\n", + "#Results\n", + "print \"a) Overall signal attenuation =\",round(a),\"dB\"\n", + "print \"b) Signal attenuation per km =\",round(adb),\"dB/km\"\n", + "print \"c) Signal attenuation for the link =\",round(dB),\"dB\"\n", + "print \"d) Input output power ratio =\",round(pi_by_po,1)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "a) Overall signal attenuation = 16.0 dB\n", + "b) Signal attenuation per km = 2.0 dB/km\n", + "c) Signal attenuation for the link = 29.0 dB\n", + "d) Input output power ratio = 794.3\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.7, Page number 104" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Determine theoretical attenuation for two given wavelengths'''\n", + "\n", + "import math\n", + "\n", + "#Variable declaration\n", + "Tf = 1400 #fictive temperature(K)\n", + "p = 0.286 #photoelastic coeeficient for silica\n", + "n = 1.46 #refractive index\n", + "Bo = 7*10**-11 #isothermal compressibility\n", + "K = 1.381*10**-23 #Boltzman's constant(J/k)\n", + "L = 10**3\n", + "\n", + "#Calculation\n", + "#For lamda = 0.63 um\n", + "lamda1 = 0.63*10**-6 #wavelength(m)\n", + "Yr1 = (8*math.pi**3*n**8*p**2*Bo*K*Tf)/(3*lamda1**4)\n", + "E1 = math.exp(-Yr1*L)\n", + "a1 = 10.*math.log10(1/E1)\n", + "\n", + "#For lamda = 1.30 um\n", + "lamda2 = 1.30*10**-6 #wavelength(m)\n", + "Yr2 = (8*math.pi**3*n**8*p**2*Bo*K*Tf)/(3*lamda2**4)\n", + "E2 = math.exp(-Yr2*L)\n", + "a2 = 10.*math.log10(1/E2)\n", + "\n", + "\n", + "#Result\n", + "print \"(solutions of example 4.8 and 4.7 are interchanged in the textbook)\"\n", + "print \"Theoretical attenuation =\",round(a1,3),\"dB/km\"\n", + "print \"Theoretical attenuation =\",round(a2,3),\"dB/km\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(solutions of example 4.8 and 4.7 are interchanged in the textbook)\n", + "Theoretical attenuation = 5.21 dB/km\n", + "Theoretical attenuation = 0.287 dB/km\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.8, Page number 104" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Calculating the refractive index of glass'''\n", + "\n", + "import math\n", + "\n", + "#Variable declaration\n", + "lamda = 1*10**-6 #wavelength(m)\n", + "p = 0.245 #photoelastic coefficient\n", + "Bc = 8.4*10**-11 #isothermal compressebility(m^2/N)\n", + "Tf = 758 #fictive temperature(K)\n", + "K = 1.381*10**-23 #Boltzman's constant(J/k)\n", + "alpha = 0.46 #attenuation(Db/Km)\n", + "L = 1.*10**3 #distance(km)\n", + "\n", + "#Calculations\n", + "Yr = (8*math.pi**3*p**2*Bc*K*Tf)/(3*lamda**4)\n", + "n= (alpha/(4.34*Yr*10**3))**(1./8.)\n", + "\n", + "#Result\n", + "print \"Refractive index =\",round(n,2)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Refractive index = 1.49\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.9, Page nuber 106" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Calculating the operating wavelength of laser and attenuation of fiber'''\n", + "\n", + "#Variable declaration\n", + "Pb = 150.*10**-3 #threshold optical power for brillouin(W)\n", + "Pr = 1.5 #threshold optical power for raman(W)\n", + "d = 8.0 #core diameter(um)\n", + "v = 1 #bandwidth(GHz)\n", + "\n", + "#Calculations\n", + "'''\n", + "Pb is given by,\n", + "Pb = 4.4*10**-3*d^2*lamda^2*alpha*v ----(1)\n", + "\n", + "Pr is given by,\n", + "Pr = 5.9*10**-2*d^2*lamda*alpha ----(2)\n", + "\n", + "Dividing (1) by (2), we get,\n", + "'''\n", + "\n", + "lamda = (Pb*5.9*10**-2*d**2)/(Pr*4.4*10**-3*d**2)\n", + "\n", + "alpha = Pr/(5.9*10**-2*d**2*lamda)\n", + "\n", + "#Results\n", + "print \"Operating wavelength =\",round(lamda,2),\"um\"\n", + "print \"Attenuation =\",round(alpha,3),\"dB/km\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Operating wavelength = 1.34 um\n", + "Attenuation = 0.296 dB/km\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.10, Page number 107" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Estimating the threshold optical powers for Brillowin and raman scattering'''\n", + "\n", + "#Variable declaration\n", + "d = 6 #core diameter(um)\n", + "v = 0.8 #bandwidth(GHz) \n", + "lamda = 1.5 #wavelength(um)\n", + "alpha = 0.5 #attenuation(dB/Km)\n", + "\n", + "#Calculations\n", + "Pb = 4.4*10**-3*d**2*lamda**2*alpha*v\n", + "\n", + "Pr = 5.9*10**-3*d**2*lamda*alpha\n", + "\n", + "#Results\n", + "print \"Threshold optical power for SBS =\",round((Pb/1E-3),2),\"mW\"\n", + "print \"Threshold optical power for SRS =\",round((Pr/1E-1),2),\"W\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Threshold optical power for SBS = 142.56 mW\n", + "Threshold optical power for SRS = 1.59 W\n" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.11, Page number 107" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Determing the critical radius of curvature'''\n", + "\n", + "import math\n", + "\n", + "#Variable declaration\n", + "delta = 3./100 #relative refracive index difference\n", + "n1 = 1.5 #refractive index of core\n", + "lamda = 0.82*10**-6 #operating wavelength(m)\n", + "\n", + "#Calculations\n", + "n2 = math.sqrt(n1**2-2*delta*n1**2)\n", + "\n", + "Rc = (3*n1**2*lamda)/(4*math.pi*(n1**2-n2**2)**0.5)\n", + "\n", + "#Results\n", + "print \"The critical radius of curvature is\",round((Rc/1E-6),3),\"um(Calculation mistake in textbook)\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The critical radius of curvature is 1.199 um(Calculation mistake in textbook)\n" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.12, Page number 108" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Calculating the crtitical radius of curvature'''\n", + "\n", + "#Variable declaration\n", + "delta = 3./100 #relative refracive index difference\n", + "n1 = 2.0 #refractive index of core\n", + "lamda = 1.55*10**-6 #operating wavelength(m)\n", + "d = 8 #core diameter(um)\n", + "\n", + "#Calculations\n", + "a = d/2\n", + "n2 = math.sqrt(n1**2-2*delta*n1**2)\n", + "lamda_c = (2*math.pi*a*10**-6*n1*((2*delta)**0.5))/2.405\n", + "Rc = (20*lamda*(2.748-0.996*(lamda/lamda_c))**-3)/((n1**2-n2**2)**0.5)\n", + "\n", + "#Result\n", + "print \"The critical radius of curvature is\",round((Rc/1E-6),3),\"um\"\n", + "\n", + "#note There is a calculation mistake in calculating 'n' in the textbook. Hence, the difference in results\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The critical radius of curvature is 4.322 um\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.13, Page number 109" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Determine-\n", + "a)Maximum possible bandwidth\n", + "b)pulse dispersion per unit length\n", + "c)bandwidth length product'''\n", + "\n", + "#Variable declaration\n", + "t = 0.1*10**-6 #pulse broadening(sec)\n", + "L = 10 #distance(km)\n", + "\n", + "#Calculatons\n", + "#Part a\n", + "Bt = 1/(2*t)\n", + "\n", + "#Part b\n", + "D = t/L\n", + "\n", + "#Part c\n", + "Bl = Bt*L\n", + "\n", + "#Results\n", + "print \"a)Maximum possible bandwidth =\",Bt/1E+6,\"MHz\"\n", + "print \"b)Pulse dispersion per unit length =\",D/1E-6,\"us/km\"\n", + "print \"c)Bandwidth length product =\",Bl/1E+6,\"Mhz km\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "a)Maximum possible bandwidth = 5.0 MHz\n", + "b)Pulse dispersion per unit length = 0.01 us/km\n", + "c)Bandwidth length product = 50.0 Mhz km\n" + ] + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.14, Page number 109" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Estimating the wavelength of transmitted light'''\n", + "\n", + "#Variable declaration\n", + "Rc = 84*10**-6 #radius of curvature(m)\n", + "n1 = 1.46 #core refractive index\n", + "n2 = 1.45 #cladding refractive index\n", + "\n", + "#Calculations\n", + "lamda = (Rc*4*math.pi*(n1**2-n2**2)**0.5)/(3*n1**2)\n", + "\n", + "#Result\n", + "print \"Wavelength =\",round(lamda/1e-6,2),\"um(Calculation mistake in textbook)\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Wavelength = 28.16 um(Calculation mistake in textbook)\n" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.15, Page number 110" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Calculating the pulse broadening due to dispersion'''\n", + "\n", + "#Variable declaration\n", + "lamda = 1.5 #wavelength(um)\n", + "M = 20 #dispersion parameter(ps n/m-km)\n", + "L = 30 #length of fiber(km)\n", + "s_l = 2 #spectral width(nm)\n", + "\n", + "#Calculations\n", + "s_m = s_l*L*M\n", + "\n", + "#Result\n", + "print \"Pulse broadening =\",s_m,\"ps\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Pulse broadening = 1200 ps\n" + ] + } + ], + "prompt_number": 17 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.16, Page number 110" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Calculating material dispersion parameter and rms pulse broadening'''\n", + "\n", + "#Variable declaration\n", + "lamda = 850 #wavelength(nm)\n", + "s_l = 20 #spectral width(nm)\n", + "Dh = 0.025 #material dispersion\n", + "c = 2.998*10**5 #speed of light(km/s)\n", + "L = 1 #length of fiber(km)\n", + "\n", + "#Calculations\n", + "M = Dh/(c*lamda)\n", + "\n", + "s_m = s_l*L*M\n", + "\n", + "#Results\n", + "print \"Material dispersion parameter =\",round((M/1E-12),2),\"ps n/m km^-1\"\n", + "print \"RMS pulse broadening =\",round((s_m/1E-9),2),\"ns/km\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Material dispersion parameter = 98.1 ps n/m km^-1\n", + "RMS pulse broadening = 1.96 ns/km\n" + ] + } + ], + "prompt_number": 17 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.17, Pge number 111" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Determing the pulse boradening per km'''\n", + "\n", + "#Variable declaration\n", + "lamda = 0.9 #wavelength(um)\n", + "s_l = 45 #spectral width(um)\n", + "Dh = 4*10**-2 #material dispersion\n", + "c = 3*10**8 #speed of light(m/s)\n", + "L = 1 #length of fiber(km)\n", + "\n", + "#Calculations\n", + "s_m = (s_l*L*Dh*lamda)/c\n", + "\n", + "#Result\n", + "print \"Pulse boradening =\",s_m/1E-9,\"ns/km\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Pulse boradening = 5.4 ns/km\n" + ] + } + ], + "prompt_number": 21 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.18, Page number 111" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Determing the pulse boradening per km'''\n", + "\n", + "#Variable declaration\n", + "lamda = 0.85 #wavelength(nm)\n", + "M = 95 #material dispersion parameter(ps n/m km^-1)\n", + "\n", + "#Calculations\n", + "s_l = 0.0012*lamda\n", + "s_m = s_l*L*M\n", + "\n", + "#Result\n", + "print \"Pulse boradening =\",s_m,\"ns/km\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Pulse boradening = 0.0969 ns/km\n" + ] + } + ], + "prompt_number": 22 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.19, Page number 112" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Calculating the pulse broadening'''\n", + "\n", + "#Variable declaration\n", + "NA = 0.275 #numerical aperture\n", + "n1 = 1.48 #core refractive index\n", + "L = 5 #length of fiber(km)\n", + "c = 3.*10**5 #speed of light(km/sec)\n", + "\n", + "#Calculations\n", + "STs = (L*NA**2)/(2*n1*c)\n", + "\n", + "#Result\n", + "print \"Pulse broadening =\",round((STs/1E-9),2),\"ns(Calculation mistake in textbook)\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Pulse broadening = 425.82 ns(Calculation mistake in textbook)\n" + ] + } + ], + "prompt_number": 18 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.20, Page number 112" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Calculate -\n", + "a)delay difference between modes\n", + "b)rms pulse broadening\n", + "c)maximum bit rate\n", + "d)bandwidth length product'''\n", + "\n", + "from math import sqrt\n", + "\n", + "#Variable declaration\n", + "L = 3*10**3 #length of link(m)\n", + "n1 = 1.5 #refractive index of core\n", + "D = 2./100 #refractive index difference\n", + "c = 2.998*10**8 #speed of light(m/s)\n", + "\n", + "#Calculations\n", + "#Part a\n", + "Sts = (L*n1*D)/c\n", + "\n", + "#Part b\n", + "s_s = (L*n1*D)/(2*sqrt(3)*c)\n", + "\n", + "#Part c\n", + "Bt = 1/(2*Sts)\n", + "\n", + "#Part d\n", + "Bl = Bt*L\n", + " \n", + "#Results\n", + "print \"Delay difference is\",round(Sts/1E-9),\"ns\"\n", + "print \"rms pulse broadening due to intermodal dispersion is\",round((s_s/1E-9),1),\"ns\"\n", + "print \"Maximum bit rate is\",round((Bt/1E+6),1),\"Mbits/sec\"\n", + "print \"Bandwidth length product is\",round((Bl/1E+9),1),\"MHz km\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Delay difference is 300.0 ns\n", + "rms pulse broadening due to intermodal dispersion is 86.7 ns\n", + "Maximum bit rate is 1.7 Mbits/sec\n", + "Bandwidth length product is 5.0 MHz km\n" + ] + } + ], + "prompt_number": 24 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.21, Page number 113" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Calculating the rms pulse broadening per km for multimode step index fiber and graded index fiber'''\n", + "\n", + "#Variable declaration\n", + "s_s = 86.7 #pulse broadening(ns)\n", + "L = 6 #length of link(km)\n", + "n1 = 1.5 #core refractive index\n", + "delta = 1./100 #refractive index difference\n", + "c = 2.998*10**8 #speed of light(m/s)\n", + "\n", + "#Calculations\n", + "s_m = s_s/L\n", + "\n", + "L1 = 10**3\n", + "s_g = (L1*n1*delta**2)/(20*sqrt(3)*c)\n", + "\n", + "#Result\n", + "print \"The rms pulse broadening per km for multimode step index fiber is\",s_m,\"ns/km\"\n", + "print \"The rms pulse broadening per km for graded index fiber is\",round((s_g/1E-12),2),\"ps/km\"\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The rms pulse broadening per km for multimode step index fiber is 14.45 ns/km\n", + "The rms pulse broadening per km for graded index fiber is 14.44 ps/km\n" + ] + } + ], + "prompt_number": 25 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.22, Page number 114" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Estimating the total pulse broadening per km '''\n", + "\n", + "#Variable declaration\n", + "NA = 0.4 #numerical aperture\n", + "n1 = 1.48 #core refractive index\n", + "n2 = 1.47 #cladding refractive index\n", + "M = 30 #material dispersion parameter(ps n/m /km)\n", + "s_l = 25 #spectral width(ns)\n", + "L = 1 #length of fiber(km)\n", + "delta = 1./100 #refractive index difference\n", + "\n", + "#Calculations\n", + "s_m = M*L*s_l\n", + "s_s = (L1*n1*delta**2)/(20*sqrt(3)*c)\n", + "s_t = math.sqrt(s_m**2+s_s**2)\n", + "\n", + "#Results\n", + "print \"Total pulse broadening per km is\",s_t,\"ps\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Total pulse broadening per km is 750.0 ps\n" + ] + } + ], + "prompt_number": 26 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.23, Page number 115" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Calculate-\n", + "a)total pulse broadening per km\n", + "b)bandwidth length product'''\n", + "\n", + "import math\n", + "\n", + "#Variable declaration\n", + "NA = 0.3 #numerical aperture\n", + "n1 = 1.45 #core refractive index\n", + "M = 250 #material dispersion parameter(ps n/m /km)\n", + "s_l = 50 #spectral width(ns)\n", + "L = 1 #length of fiber(km)\n", + "c = 2.998*10**8 #speed of light(m/s)\n", + "\n", + "#Calculations\n", + "#Part a\n", + "s_m = (M*L*s_l)*10**-3 #ns/km\n", + "s_s = ((L*10**3*NA**2)/(4*math.sqrt(3)*n1*c*10**3))*10**12 #ns/km\n", + "s_t = math.sqrt(s_m**2+s_s**2)\n", + "\n", + "#Part b\n", + "Bl = 0.2/s_t\n", + "\n", + "#Results\n", + "print \"a)total pulse broadening =\",round(s_t,2),\"ns/km\" #Answer varies due to rounding-off errors\n", + "print \"b)bandwidth length product =\",round((Bl/1E-3),1),\"Mhz km\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "a)total pulse broadening = 32.39 ns/km\n", + "b)bandwidth length product = 6.2 Mhz km\n" + ] + } + ], + "prompt_number": 39 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.24, Page number 116" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Finding the beat length'''\n", + "\n", + "#Variable declaration\n", + "lamda = 1.32 #wavelength(um)\n", + "Lbc = 100 #length of fiber(km)\n", + "Sf = 1.5 #spectral width(nm)\n", + "\n", + "#Calculations\n", + "Bf = lamda**2/(Lbc*Sf)\n", + "Lb = lamda/Bf\n", + "\n", + "#Result\n", + "print \"Beat length =\",round(Lb,1),\"km\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Beat length = 113.6 km\n" + ] + } + ], + "prompt_number": 28 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.25, Page number 116" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Calculate modal birefringence'''\n", + "\n", + "#Variable declaration\n", + "lamda = 1.3*10**-6 #wavelength(um)\n", + "Lb1 = 0.5*10**-3 #length of fiber(mm)\n", + "Lb2 = 60 #(m)\n", + "\n", + "#Calculations\n", + "#for beat length of 0.5mm,\n", + "Bf1 = lamda/Lb1\n", + "\n", + "#for beat length of 60m,\n", + "Bf2 = lamda/Lb2\n", + "\n", + "#Result\n", + "print \"The modal birefringences are \",Bf1/1E-3, \"*10^-3 and\",round((Bf2/1E-8),2),\"*10^-4\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The modal birefringences are 2.6 *10^-3 and 2.17 *10^-4\n" + ] + } + ], + "prompt_number": 29 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.26, Page number 117" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Calculate the modal birefringence, coherence length and difference between propagation constants'''\n", + "\n", + "#Variable declaration\n", + "lamda = 0.5*10**-6 #wavelength(um)\n", + "Lb = 5*10**-2 #length of fiber(km)\n", + "S_l = 1*10**-9 #spectral width(nm)\n", + "\n", + "#Calculations\n", + "Bf = lamda/Lb\n", + "\n", + "Lbc = lamda**2/(Bf*S_l)\n", + "\n", + "B = (2*math.pi)/Lb #Bx-By\n", + "\n", + "#Results\n", + "print \"Modal birefringence =\",Bf\n", + "print \"Coherence length =\",Lbc,\"m\"\n", + "print \"Difference between propagation constants =\",round(B,1)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Modal birefringence = 1e-05\n", + "Coherence length = 25.0 m\n", + "Difference between propagation constants = 125.7\n" + ] + } + ], + "prompt_number": 30 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4.27, Page number 117" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Calculating the maximum bit rate'''\n", + "\n", + "#Variable declaration\n", + "L = 10*10**3 #length of fiber(m)\n", + "St2 = 600*10**-12 #mode dispersion(s/km)\n", + "\n", + "#Calculations\n", + "Bt = 0.9/(0.55*St2*L)\n", + "\n", + "#Result\n", + "print \"Maximum bit rate =\",round(Bt/1E+3),\"Kbps\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Maximum bit rate = 273.0 Kbps\n" + ] + } + ], + "prompt_number": 31 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file |