summaryrefslogtreecommitdiff
path: root/Optical_Fiber_Communication_System_by_Dr._M.K._Raina/chap5.ipynb
diff options
context:
space:
mode:
authorTrupti Kini2016-05-08 23:30:29 +0600
committerTrupti Kini2016-05-08 23:30:29 +0600
commit319b3ab10ce7ba40b7854a5630f317e318f3721b (patch)
tree18e365c95a9401c576eb4029c00eeee1c8f29387 /Optical_Fiber_Communication_System_by_Dr._M.K._Raina/chap5.ipynb
parentcf1d6e42383334d18a21bc297720bf52fca2f488 (diff)
downloadPython-Textbook-Companions-319b3ab10ce7ba40b7854a5630f317e318f3721b.tar.gz
Python-Textbook-Companions-319b3ab10ce7ba40b7854a5630f317e318f3721b.tar.bz2
Python-Textbook-Companions-319b3ab10ce7ba40b7854a5630f317e318f3721b.zip
Added(A)/Deleted(D) following books
A Optical_Fiber_Communication_System_by_Dr._M.K._Raina/chap10.ipynb A Optical_Fiber_Communication_System_by_Dr._M.K._Raina/chap2.ipynb A Optical_Fiber_Communication_System_by_Dr._M.K._Raina/chap3.ipynb A Optical_Fiber_Communication_System_by_Dr._M.K._Raina/chap4.ipynb A Optical_Fiber_Communication_System_by_Dr._M.K._Raina/chap5.ipynb A Optical_Fiber_Communication_System_by_Dr._M.K._Raina/chap6.ipynb A Optical_Fiber_Communication_System_by_Dr._M.K._Raina/chap7.ipynb A Optical_Fiber_Communication_System_by_Dr._M.K._Raina/chap8.ipynb A Optical_Fiber_Communication_System_by_Dr._M.K._Raina/chap9.ipynb A Optical_Fiber_Communication_System_by_Dr._M.K._Raina/screenshots/Sc1.png A Optical_Fiber_Communication_System_by_Dr._M.K._Raina/screenshots/sc2.png A Optical_Fiber_Communication_System_by_Dr._M.K._Raina/screenshots/sc3.png
Diffstat (limited to 'Optical_Fiber_Communication_System_by_Dr._M.K._Raina/chap5.ipynb')
-rw-r--r--Optical_Fiber_Communication_System_by_Dr._M.K._Raina/chap5.ipynb1271
1 files changed, 1271 insertions, 0 deletions
diff --git a/Optical_Fiber_Communication_System_by_Dr._M.K._Raina/chap5.ipynb b/Optical_Fiber_Communication_System_by_Dr._M.K._Raina/chap5.ipynb
new file mode 100644
index 00000000..e743d136
--- /dev/null
+++ b/Optical_Fiber_Communication_System_by_Dr._M.K._Raina/chap5.ipynb
@@ -0,0 +1,1271 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ch-5 : Dispersion in Optical Fibers"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ex:5.1 Pg: 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The max bandwidth =5 MHz\n",
+ "\n",
+ " The dispersion =8.33 ns/km\n",
+ "\n",
+ " bandwidth length product =60 MHz km\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "t=0.1*10**-6## pulse broading in sec\n",
+ "d=12## disance in km\n",
+ "B=1/(2*t)## max bandwidth MHz\n",
+ "ds=t/d## dispersion in ns/km\n",
+ "bl=B*d## bandwidth length product\n",
+ "print \"The max bandwidth =%d MHz\"%( B/10**6)#\n",
+ "print \"\\n The dispersion =%0.2f ns/km\"%( ds*10**9)#\n",
+ "print \"\\n bandwidth length product =%d MHz km\"%( bl/10**6)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ex:5.2 Pg: 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The max bandwidth =5 MHz\n",
+ "\n",
+ " The dispersion =6.67 ns/km\n",
+ "\n",
+ " bandwidth length product =75 MHz km\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "t=0.1*10**-6## pulse broadening in sec\n",
+ "d=15## disance in km\n",
+ "B=1/(2*t)## max bandwidth MHz\n",
+ "ds=t/d## dispersion in ns/km\n",
+ "bl=B*d## bandwidth length product\n",
+ "print \"The max bandwidth =%d MHz\"%( B/10**6)#\n",
+ "print \"\\n The dispersion =%0.2f ns/km\"%( ds*10**9)#\n",
+ "print \"\\n bandwidth length product =%d MHz km\"%( bl/10**6)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ex:5.3 Pg: 199"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The numerical aperture =0.21\n",
+ "\n",
+ " The multipath pulse broadening =0.05 ns/km\n",
+ "\n",
+ " The bandwidth length product =20 GHz km\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "from __future__ import division\n",
+ "n1=1.465## core refractive index\n",
+ "n2=1.45## cladding refractive index\n",
+ "c=3*10**8## the speed of light in m/s\n",
+ "NA=sqrt(n1**2-n2**2)## numerical aperture\n",
+ "Mp=(NA**2)/(2*n1*c)## multipath pulse broadening in ns/km\n",
+ "bl=(1/NA**2)*(2*n1*c)## bandwidth length product in GHz km\n",
+ "print \"The numerical aperture =%0.2f\"%( NA)#\n",
+ "print \"\\n The multipath pulse broadening =%0.2f ns/km\"%( Mp*10**9)#\n",
+ "print \"\\n The bandwidth length product =%d GHz km\"%( bl/10**9)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ex:5.4 Pg: 201"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The material dispersion parameter =51.28 ps/nm/km\n",
+ "\n",
+ " The rms pulse broadening =0.31 ns/km\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "ds=0.020## material dispersion\n",
+ "c=3*10**8## the speed of light m/s\n",
+ "y=1.3## wavelength in um\n",
+ "M=ds/(c*y)## material dispersion parameter in ps/nm/km\n",
+ "w=6## spectral width in nm\n",
+ "l=1## length in km\n",
+ "rm=w*l*M## rms pulse broadening in ns/km\n",
+ "print \"The material dispersion parameter =%0.2f ps/nm/km\"%( M*10**12)#\n",
+ "print \"\\n The rms pulse broadening =%0.2f ns/km\"%(rm*10**9)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ex:5.5 Pg: 201"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The rms pulse broadening =0.09 ns/km\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "wr=0.0014## relative spectral width in nm\n",
+ "y=1.3*10**-6## wavelength in m\n",
+ "w=wr*y## spectral width in nm\n",
+ "ds=0.020## material dispersion\n",
+ "c=3*10**8## the speed of light in m/s\n",
+ "M=ds/(c*y)## material dispersion parameter in ps/nm/km\n",
+ "l=1## length in km\n",
+ "rm=w*l*M## rms pulse broadening in ns/km\n",
+ "print \"The rms pulse broadening =%0.2f ns/km\"%(rm*10**9*10**3)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ex:5.6 Pg: 202"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The delay difference =486 ns\n",
+ "\n",
+ " The rms pulse broadening =140.49 ns\n",
+ "\n",
+ " The max bit rate =1.42 M bits/sec\n",
+ "\n",
+ " The bandwidth length product =14.24 MHz km\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "from __future__ import division\n",
+ "n1=1.46## core refractive index\n",
+ "dl=0.01## relative index difference\n",
+ "L=10*10**3## optical length in meter\n",
+ "c=3*10**8## the speed of light in m/s\n",
+ "dt=(L*n1*dl)/c## delay difference in s\n",
+ "dT=dt*10**9## delay difference in ns\n",
+ "rm=(L*n1*dl)/(2*sqrt(3)*c)## rms pulse broadening s\n",
+ "rM=rm*10**9## rms pulse broadening ns\n",
+ "bt=0.2/rm## max bit rate in bit/sec\n",
+ "bT=bt/10**6## max bit rate in M bits/sec\n",
+ "bl=bt*L## bandwidth length product in Hz meter\n",
+ "bL=(bt*L)/(10**6*10**3)## bandwidth length product in MHz km\n",
+ "print \"The delay difference =%d ns\"%( dT)#\n",
+ "print \"\\n The rms pulse broadening =%0.2f ns\"%( rM)#\n",
+ "print \"\\n The max bit rate =%0.2f M bits/sec\"%( bT)#\n",
+ "print \"\\n The bandwidth length product =%0.2f MHz km\"%( bL)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ex:5.7 Pg: 202"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The rms pulse broadening =86.60 ns\n",
+ "\n",
+ " The max bit rate =2.31 M bits/sec\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "from __future__ import division\n",
+ "n1=1.5## core refractive index\n",
+ "dl=0.01## relative index difference\n",
+ "L=6*10**3## optical length in meter\n",
+ "c=3*10**8## the speed of light in m/s\n",
+ "rm=(L*n1*dl)/(2*sqrt(3)*c)## rms pulse broadening s\n",
+ "rM=rm*10**9## rms pulse broadening ns\n",
+ "bt=0.2/rm## max bit rate in bit/sec\n",
+ "bT=bt/10**6## max bit rate in M bits/sec\n",
+ "print \"The rms pulse broadening =%0.2f ns\"%( rM)#\n",
+ "print \"\\n The max bit rate =%0.2f M bits/sec\"%( bT)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ex:5.8 Pg: 203"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The delay difference =336 ns\n",
+ "\n",
+ " The rms pulse broadening =96.99 ns\n",
+ "\n",
+ " The max bit rate =2.06 M bits/sec\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "from __future__ import division\n",
+ "n1=1.4## core refractive index\n",
+ "dl=0.012## relative index difference\n",
+ "L=6*10**3## optical length in meter\n",
+ "c=3*10**8## the speed of light in m/s\n",
+ "dt=(L*n1*dl)/c## delay difference in s\n",
+ "dT=dt*10**9## delay difference in ns\n",
+ "rm=(L*n1*dl)/(2*sqrt(3)*c)## rms pulse broadening s\n",
+ "rM=rm*10**9## rms pulse broadening ns\n",
+ "bt=0.2/rm## max bit rate in bit/sec\n",
+ "bT=bt/10**6## max bit rate in M bits/sec\n",
+ "print \"The delay difference =%d ns\"%( dT)#\n",
+ "print \"\\n The rms pulse broadening =%0.2f ns\"%( rM)#\n",
+ "print \"\\n The max bit rate =%0.2f M bits/sec\"%( bT)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ex:5.9 Pg: 204"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The total rms pulse broadening =22.40 ns/km\n",
+ "\n",
+ " The bandwidth length product =8.93 MHz km\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "from __future__ import division\n",
+ "n1=1.5## core refractive index\n",
+ "c=3*10**8## the speed of light m/s\n",
+ "w=6*10**-6## rms spectral width in m\n",
+ "M=200## material dispersion parameter in ps/nm/km\n",
+ "NA=0.25## numerical aperture\n",
+ "w=50## spectral width in nm\n",
+ "L=1## length in m\n",
+ "rm=w*L*M## rms pulse broadening in s/km\n",
+ "rM=rm/10**3## rms pulse broadening in ns/km due to material dispersion\n",
+ "rm1=(L*1000*(NA)**2)/(4*sqrt(3)*n1*c)##rms pulse broadening in ns/km due to material dispersion in sec/m\n",
+ "rM1=rm1*10**9## rms pulse broadening in ns/km due to intermodel dispersion in ns/km\n",
+ "rmt=sqrt(rM**2+rM1**2)## total rms pulse broadening in ns/km\n",
+ "bl=0.2/(rmt*10**-9)## bandwidth length product in Hz km\n",
+ "bL=bl/10**6## bandwidth length product in MHz km\n",
+ "print \"The total rms pulse broadening =%0.2f ns/km\"%(rmt)#\n",
+ "print \"\\n The bandwidth length product =%0.2f MHz km\"%(bL)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ex:5.10 Pg: 204"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The toal first order dispersion at 1290 nm =-2.86 ps/nm/km\n",
+ "\n",
+ " The toal first order dispersion at 1550 nm =17.46 ps/nm/km\n",
+ "\n",
+ " The wavelength dispersion at 1550 nm =3.56 ps/nm/km\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "yo=1320## zero dispersion wavelength in nm\n",
+ "y=1290## dispersion wavelength in nm\n",
+ "so=0.092## dispersion slop\n",
+ "dt=(y*so/4)*(1-(yo/y)**4)## toal first order dispersion at 1290 nm in ps/nm/km\n",
+ "yo1=1310## zero dispersion wavelength in um\n",
+ "y1=1550## dispersion wavelength in nm\n",
+ "so=0.092## dispersion slop\n",
+ "dt1=(y1*so/4)*(1-(yo1/y1)**4)## toal first order dispersion at 1550 nm in ps/nm/km\n",
+ "DM=13.5## profile dispersion in ps/nm/km\n",
+ "DP=0.4## profile dispersion in ps/nm/km\n",
+ "DW=dt1-(DM+DP)## wavelength dispersion in ps/nm/km\n",
+ "print \"The toal first order dispersion at 1290 nm =%0.2f ps/nm/km\"%( dt)#\n",
+ "print \"\\n The toal first order dispersion at 1550 nm =%0.2f ps/nm/km\"%( dt1)#\n",
+ "print \"\\n The wavelength dispersion at 1550 nm =%0.2f ps/nm/km\"%( DW)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ex:5.11 Pg: 205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The model birefrigence =21.67 um\n",
+ "\n",
+ " The coherence length=13.00 m\n",
+ "\n",
+ " The difference beween two propagation constants=104.67\n",
+ "\n",
+ " The difference beween two propagation constants=104.67\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "L=6*10**-2## beat length in m\n",
+ "dy=6*10**-9## spectral width in m\n",
+ "y=1.3*10**-6## operating wavelength in m\n",
+ "BF=y/(L)##model birefrigence in um\n",
+ "Lc=y**2/(BF*dy)## coherence length in m\n",
+ "db=2*3.14/(L)## difference beween two propagation constants\n",
+ "dB=(2*3.14*BF)/y#\n",
+ "print \"The model birefrigence =%0.2f um\"%( BF*10**6)#\n",
+ "print \"\\n The coherence length=%0.2f m\"%( Lc)#\n",
+ "print \"\\n The difference beween two propagation constants=%0.2f\"%( db)#\n",
+ "print \"\\n The difference beween two propagation constants=%0.2f\"%( dB)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ex:5.12 Pg: 206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The model birefrigenceat 0.5 nm =0.00*10**-3\n",
+ "\n",
+ " The model birefrigence at 75 m =1.13*10**-8 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "y=0.85*10**-6## operating wavelength in m\n",
+ "L=0.5*10**-3## beat length in m\n",
+ "BF=y/(L)##model birefrigence in um\n",
+ "L1=75## beat length in m\n",
+ "BF1=y/(L1)##model birefrigence in um\n",
+ "print \"The model birefrigenceat 0.5 nm =%0.2f*10**-3\"%( BF)#\n",
+ "print \"\\n The model birefrigence at 75 m =%0.2f*10**-8 \"%( BF1*10**8)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ex:5.13 Pg: 206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The beat length=113.64 m\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "Lc=100000## coherence length in m\n",
+ "y=1.32*10**-6## operating wavelength in m\n",
+ "dy=1.5*10**-9## spectral width in m\n",
+ "BF=y**2/(Lc*dy)##model birefrigence in um\n",
+ "L=y/BF## beat length in m\n",
+ "print \"The beat length=%0.2f m\"%( L)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ex:5.14 Pg: 206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The intermodel pulse broadening =144.17 ns/km\n",
+ "\n",
+ " The bandwidth =1.30 MHz\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "from __future__ import division\n",
+ "n1=1.46## core refractive index\n",
+ "NA=0.25## numerical aperture\n",
+ "c=3*10**5## the speed of light km/s\n",
+ "L=7## length in km\n",
+ "si=NA**2/(4*sqrt(3)*n1*c)##intermodel pulse broadening ns/km\n",
+ "st=si*L##total intermodel pulse broadening\n",
+ "BW=0.187/st## bandwidth in MHz\n",
+ "print \"The intermodel pulse broadening =%0.2f ns/km\"%( st*10**9)#\n",
+ "print \"\\n The bandwidth =%0.2f MHz\"%( BW/10**6)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ex:5.15 Pg: 207"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The max dispersion =0.19 ns/m\n",
+ "\n",
+ " The answer in the textbook is wrong\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "n1=1.46## core refractive index\n",
+ "df=0.025#\n",
+ "L=500## length in m\n",
+ "c=3*10**8## the speed of light in m/s\n",
+ "dt=(n1*L*df**2)/(8*c)## max dispersion in ns/m\n",
+ "print \"The max dispersion =%0.2f ns/m\"%( dt*10**9)#\n",
+ "print \"\\n The answer in the textbook is wrong\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ex:5.16 Pg: 207"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The max dispersion =4.27e-03 ns/km**2/nm\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "dy=15## spectral width in nm\n",
+ "L=25## optical length in km\n",
+ "ps=1.60##pulse spreads in ns/km\n",
+ "pS=1.6## pulse spreads in ns/km\n",
+ "d=pS/(dy*L)## material dispersion in ns/km**2/nm\n",
+ "print \"The max dispersion =%0.2e ns/km**2/nm\"%( d)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ex:5.17 Pg: 208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The intermodel dispersion =68.49 ns/km\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "n1=1.46## core refractive index\n",
+ "NA=0.2## numerical aperture\n",
+ "L=1.5*10**3## length in m\n",
+ "c=3*10**8## the spee of light in m/s\n",
+ "dt=(L*NA**2)/(2*c*n1)##intermodel dispersion in ns/km\n",
+ "print \"The intermodel dispersion =%0.2f ns/km\"%( dt*10**9)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ex:3.18 Pg: 209"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The intermodel pulse width broadening =1.28 ns/km\n",
+ "\n",
+ " pulse broadening due to material dispersion =2.25 ns/km\n",
+ "\n",
+ " The combine pulse broadening =2.59 ns/km\n",
+ "\n",
+ " The actual BLP =142.22 MHz.km\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "from __future__ import division\n",
+ "BLP=250*10**6## bandwidth length product in Hz\n",
+ "tr=0.32/BLP## intermodel pulse width broadening\n",
+ "md=75## material dispersion in ps/nm.km\n",
+ "tm=2.25##pulse broadening due to material dispersion in ns/km\n",
+ "tc=sqrt((tr*10**9)**2+tm**2)## combine pulse broadening in ns/km\n",
+ "Ba=0.32/tm*10**9## actual BLP in Hz.km\n",
+ "Bac=Ba/10**6## actual BLP in MHz.km\n",
+ "print \"The intermodel pulse width broadening =%0.2f ns/km\"%( tr*10**9)#\n",
+ "print \"\\n pulse broadening due to material dispersion =%0.2f ns/km\"%( tm)#\n",
+ "print \"\\n The combine pulse broadening =%0.2f ns/km\"%( tc)#\n",
+ "print \"\\n The actual BLP =%0.2f MHz.km\"%( Bac)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ex:5.19 Pg: 209"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The chromatic/material dispersion =0.24 ns\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "L=40## length in m\n",
+ "Ny=.75## in ps/nm\n",
+ "dy=8## spectral width in nm\n",
+ "t_mat=L*Ny*dy## chromatic/material dispersion in ps\n",
+ "t_mat1=t_mat/1000## chromatic/material dispersion in ns\n",
+ "print \"The chromatic/material dispersion =%0.2f ns\"%( t_mat1)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ex:5.20 Pg: 210"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The received pulse width =3.44 ns\n",
+ "\n",
+ " The max bit rate =58.07 mbps\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "from __future__ import division\n",
+ "y=1.3## operating wavelength in um\n",
+ "md=2.80## material dispersion in ns\n",
+ "wd=0.50## waveguide dispersion in ns\n",
+ "wt=0.60## width of transmitted pulse in ns\n",
+ "td=sqrt(md**2+wd**2)## total dispersion in ns\n",
+ "dt=wt+td## received pulse width in ns\n",
+ "br=1/(5*dt*10**-9)## max bit rate bit/sec\n",
+ "Br=br/10**6## max bit rate in mbps\n",
+ "print \"The received pulse width =%0.2f ns\"%( dt)#\n",
+ "print \"\\n The max bit rate =%0.2f mbps\"%( Br)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ex:5.21 Pg: 210"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The received pulse width =3.29 ns\n",
+ "\n",
+ " The max bit rate =60.85 mbps\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "from __future__ import division\n",
+ "y=0.85## operating wavelength in um\n",
+ "md=2.75## material dispersion in ns\n",
+ "wd=0.45## waveguide dispersion in ns\n",
+ "wt=0.50## width of transmitted pulse in ns\n",
+ "td=sqrt(md**2+wd**2)## total dispersion in ns\n",
+ "dt=wt+td## received pulse width in ns\n",
+ "br=1/(5*dt*10**-9)## max bit rate bit/sec\n",
+ "Br=br/10**6## max bit rate in mbps\n",
+ "print \"The received pulse width =%0.2f ns\"%( dt)#\n",
+ "print \"\\n The max bit rate =%0.2f mbps\"%( Br)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ex:5.22 Pg: 211"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The max dispersion =187 ns\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "n1=1.46## core refractive index\n",
+ "df=0.025#\n",
+ "L=1500## length in meter\n",
+ "c=3*10**8## the speed of ligth in m/s\n",
+ "md=(n1*L*df)/(c*(1-df))## max dispersion in sec\n",
+ "Md=md*10**9## max dispersion in ns\n",
+ "print \"The max dispersion =%d ns\"%( Md)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ex:5.23 Pg: 212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The max dispersion =53 ns\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "n1=1.5## core refractive index\n",
+ "L=1000## length in meter\n",
+ "NA=0.22## numerical aperture\n",
+ "dl=(NA/n1)**2/2#\n",
+ "c=3*10**8## the speed of ligth in m/s\n",
+ "dt=(L*n1*dl)/c##intermodel dispersion in sec\n",
+ "dT=dt*10**9##intermodel dispersion in ns\n",
+ "print \"The max dispersion =%d ns\"%( dT)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ex:5.24 Pg: 212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The max dispersion =9 ns\n",
+ "\n",
+ " The max dispersion =3.83 ns\n",
+ "\n",
+ " The max dispersion =9.78 ns\n",
+ "\n",
+ " answer in the textbook is wrong\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "from __future__ import division\n",
+ "w=30## line width in nm\n",
+ "L=1.5## length in km\n",
+ "d1=6## in ns/km\n",
+ "d2=85## in ps/km/nm\n",
+ "d3=d2/1000## in ns/km/nm\n",
+ "dt=d1*L## intermodel dispersion in ns\n",
+ "dt1=w*d3*L## intramodel dispersion in ns\n",
+ "dT=sqrt(dt**2+dt1**2)## total dispersion in ns\n",
+ "print \"The max dispersion =%d ns\"%( dt)#\n",
+ "print \"\\n The max dispersion =%0.2f ns\"%( dt1)#\n",
+ "print \"\\n The max dispersion =%0.2f ns\"%( dT)#\n",
+ "print \"\\n answer in the textbook is wrong\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ex:5.25 Pg: 213"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The intermodel dispersion =52.70 ns\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "n1=1.55## core refractive index\n",
+ "n2=1.48## cladding refractive index\n",
+ "l=150##fiber length in m\n",
+ "c=3*10**8##the speed of light in m/s\n",
+ "dl=(n1**2-n2**2)/(2*n1)#\n",
+ "dL=0.068#\n",
+ "dt=(l*n1*dL)/(c)## intermodel dispersion in s\n",
+ "dT=dt*10**9## intermodel dispersion in ns\n",
+ "print \"The intermodel dispersion =%0.2f ns\"%( dT)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ex:5.29 Pg: 214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The intermodel dispersion per km =94.67 ns/km\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "n1=1.42## core refractive index\n",
+ "dl=0.02#\n",
+ "c=3*10**8##the speed of light in m/s\n",
+ "dt=(n1*dl)/c## intermodel disersion in sec/m\n",
+ "dt1=dt*1000## intermodel disersion in sec/km\n",
+ "dt2=dt1*10**9## intermodel disersion in ns/km\n",
+ "print \"The intermodel dispersion per km =%0.2f ns/km\"%( dt2)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ex:5.28 Pg: 214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The pulse spreading =634.57 ns\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "y=900## operating wavelength in nm\n",
+ "yo=1343## wavelength in nm\n",
+ "so=0.095## in ps/nm**2-km\n",
+ "L=150## in km\n",
+ "dy=50##in nm\n",
+ "Dy=(so*y/4)*(1-(yo/y)**4)## inps/nm-km\n",
+ "Dy1=Dy*(-1)## do not consider -ve sign\n",
+ "dt=Dy1*L*dy## pulse spreading in ps\n",
+ "dt1=dt/1000## pulse spreading in ns\n",
+ "print \"The pulse spreading =%0.2f ns\"%( dt1)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ex:5.29 Pg: 215"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The pulse spreading =2.14 ps\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "n1=1.48## core refractive index\n",
+ "y=900## operating wavelength in nm\n",
+ "yo=1343## wavelength in nm\n",
+ "so=0.095## in ps/nm**2-km\n",
+ "L=1.5## in km\n",
+ "dy=50##in nm\n",
+ "dl=0.002#\n",
+ "c=3*10**8## the speed of ligth in m/s\n",
+ "Dm=(so*y/4)*(1-(yo/y)**4)## inps/nm-km\n",
+ "Dm1=Dm*(-1)## do not consider -ve sign\n",
+ "Vd=0.26#\n",
+ "Dw=((n1*dl)/(c*y*10**-9))*(Vd)#\n",
+ "DW=Dw*10**6## in ps/nm-km\n",
+ "dt=DW*L*dy## pulse spreading in ps\n",
+ "dt1=dt/100## pulse spreading in ns\n",
+ "print \"The pulse spreading =%0.2f ps\"%( dt1)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ex:5.30 Pg: 215"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The value of wo =5.20 um\n",
+ "\n",
+ " The value of wp =5.13 um\n",
+ "\n",
+ " The value of wo1 =6.23 um\n",
+ "\n",
+ " The value of wp1 =5.10 um\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "from __future__ import division\n",
+ "a=4.1*10**-6## core radius in um\n",
+ "dl=0.0036#\n",
+ "y1=1.310*10**-6## operating wavelength in um\n",
+ "y2=1.550*10**-6## operating wavelength in um\n",
+ "n1=1.4677## core refrative index at y=1.310\n",
+ "n2=1.4682## core refrative index at y=1.550\n",
+ "v1=(2*3.14*a*n1*sqrt(2*dl))/y1## normalised frequency at y=1.310\n",
+ "v2=(2*3.14*a*n2*sqrt(2*dl))/y2## normalised frequency at y=1.550\n",
+ "wo=a*(0.65+(1.619/v1**1.5)+2.879/v1**3)#\n",
+ "wp=wo-a*(0.016+1.567/v1**7)#\n",
+ "wo1=a*(0.65+(1.619/v2**1.5)+2.879/v2**3)#\n",
+ "wp1=wo-a*(0.016+1.567/v2**7)#\n",
+ "print \"The value of wo =%0.2f um\"%( wo*10**6)#\n",
+ "print \"\\n The value of wp =%0.2f um\"%( wp*10**6)#\n",
+ "print \"\\n The value of wo1 =%0.2f um\"%( wo1*10**6)#\n",
+ "print \"\\n The value of wp1 =%0.2f um\"%( wp1*10**6)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ex:5.31 Pg: 215"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The max core radius =4.83 um\n",
+ "\n",
+ " The max core radius =48.31 um\n",
+ "\n",
+ " The beat length =1.30 m\n",
+ "\n",
+ " The beat length =13.00 cm\n",
+ "\n",
+ " Hence, range of beat length# 13cm-1.3m\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "y=1.30*10**-6## operating wavelength in m\n",
+ "dn1=10**-6#\n",
+ "dn2=10**-5#\n",
+ "db1=(dn1*2*3.14)/y## in per m\n",
+ "db2=(dn2*2*3.14)/y## in per m\n",
+ "Lp1=(2*3.14)/(db1)## beat length in m\n",
+ "Lp2=(2*3.14)/(db2)## beat length in m\n",
+ "print \"The max core radius =%0.2f um\"%( db1)#\n",
+ "print \"\\n The max core radius =%0.2f um\"%( db2)#\n",
+ "print \"\\n The beat length =%0.2f m\"%( Lp1)#\n",
+ "print \"\\n The beat length =%0.2f cm\"%( Lp2*100)#\n",
+ "print \"\\n Hence, range of beat length# 13cm-1.3m\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Ex:5.32 Pg: 216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The wavelength dispersion =-2.52 ps n/m/km\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "from __future__ import division\n",
+ "n1=1.48## core refractive index\n",
+ "dl=0.0027#\n",
+ "a=4.4*10**-6## radius in m\n",
+ "y=1.32*10**-6## operating wavelength in m\n",
+ "n2=n1*(1-dl)#\n",
+ "c=3*10**8## the speed of ligth in m/s\n",
+ "v=(2*3.14*a*n1*sqrt(2*dl))/y#\n",
+ "VD=0.080+0.549*(2.834-v)**2#\n",
+ "DW=(-1)*(n2*dl*VD)/(c*y)## wavelength dispersion in s /um/m\n",
+ "Dw=DW*10**6## wavelength dispersion in ps /nm/km\n",
+ "print \"The wavelength dispersion =%0.2f ps n/m/km\"%( Dw)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa:5.33 Pg: 216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The core radius =2.75 um\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "from __future__ import division\n",
+ "n1=1.48## core refractive index\n",
+ "dl=0.01## refractive index difference\n",
+ "c=3*10**8## the speed of light in m/s\n",
+ "y=1.55## wavelength in um\n",
+ "DM=7## in ps/nm-km\n",
+ "DW=(-1)*DM## in ps/nm-km\n",
+ "X=-10**12*(n1*dl)/(c*y)## in ps/nm/km\n",
+ "Z=(DW/X)-0.08## \n",
+ "V=2.834-sqrt(Z/0.549)#\n",
+ "a=(V*y)/(2*pi*n1*sqrt(2*dl))## core radius in um\n",
+ "print \"The core radius =%0.2f um\"%( a)"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}