summaryrefslogtreecommitdiff
path: root/Optical_Fiber_Communication/Chapter10_1.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'Optical_Fiber_Communication/Chapter10_1.ipynb')
-rwxr-xr-xOptical_Fiber_Communication/Chapter10_1.ipynb487
1 files changed, 487 insertions, 0 deletions
diff --git a/Optical_Fiber_Communication/Chapter10_1.ipynb b/Optical_Fiber_Communication/Chapter10_1.ipynb
new file mode 100755
index 00000000..22b4a658
--- /dev/null
+++ b/Optical_Fiber_Communication/Chapter10_1.ipynb
@@ -0,0 +1,487 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:cf07634df992def504a143e6666719b95350cb053657de1ded2573417a8b0796"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 : Optical Fiber System-II"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1: PgNo-505"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "r=30.8*math.pow(10,-12) # electro optice coefficient in m/V\n",
+ "L=3*math.pow(10,-2) # length in m\n",
+ "y=1.3*math.pow(10,-6) # wavelength in m\n",
+ "n=2.1\n",
+ "d=30*math.pow(10,-6) # distance between the electrodes in m\n",
+ "V=(y*d)/(math.pow(n,3)*r*L) # voltage required to have a pi radian phase change in volt\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The voltage required to have a pi radian phase change = \",V,\"volt\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The voltage required to have a pi radian phase change = 4.558 volt\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2: PgNo-511"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable initialisation\n",
+ "a_fc=4 #fider cable loss in dB/km\n",
+ "aj=0.7 #splice loss in db/km\n",
+ "L=5 # length in km\n",
+ "a_cr1=4 # connector losses\n",
+ "a_cr2=3.5 # connector losses\n",
+ "CL=(a_fc+aj)*L+(a_cr1+a_cr2) # total channel loss in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.f %s' %(\" The total channel loss = \",CL,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total channel loss = 31 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3: PgNo-517"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "p=0.5*math.pow(10,-9) # pulse broadening in s/km\n",
+ "L=12 # length in km\n",
+ "\n",
+ "# calculations\n",
+ "Pt=p*math.sqrt(L) # with mode coupling, the total rms broadening in s\n",
+ "BT=20*math.pow(10,6)\n",
+ "DL=2*pow((2*Pt*BT*math.sqrt(2)),4) # dispersion equalization penalty in dB\n",
+ "Pt1=p*L # without mode coupling, the total rms broadening in s\n",
+ "DL1=2*math.pow((2*Pt1*BT*math.sqrt(2)),4) # without mode coupling, equalization penalty in dB\n",
+ "DL2=2*math.pow((2*Pt1*150*math.pow(10,6)*math.sqrt(2)),4) # without mode coupling,dispersion equalization penalty with 125 Mb/s\n",
+ "DL3=2*math.pow((2*Pt*125*math.pow(10,6)*math.sqrt(2)),4) # with mode coupling,dispersion equalization penalty with 125 Mb/s\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" With mode coupling, the total rms broadening = \",Pt*pow(10,9),\"ns\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The dispersion equalization penalty = \",DL*pow(10,4),\"dB\"))\n",
+ "print ('%s %.f %s' %(\"\\n without mode coupling, the total rms broadening = \",Pt1*pow(10,9),\"dB\"))\n",
+ "print ('%s %.3f %s' %(\"\\n without mode coupling, equalization penalty = \",DL1,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n without mode coupling,dispersion equalization penalty with 125 Mb/s = \",DL2,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n with mode coupling,dispersion equalization penalty with 125 Mb/s = \",DL3,\"dB\"))\n",
+ "print (\"\\n The answer is wrong in the textbook\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " With mode coupling, the total rms broadening = 1.73 ns\n",
+ "\n",
+ " The dispersion equalization penalty = 1.84 dB\n",
+ "\n",
+ " without mode coupling, the total rms broadening = 6 dB\n",
+ "\n",
+ " without mode coupling, equalization penalty = 0.027 dB\n",
+ "\n",
+ " without mode coupling,dispersion equalization penalty with 125 Mb/s = 83.98 dB\n",
+ "\n",
+ " with mode coupling,dispersion equalization penalty with 125 Mb/s = 0.28 dB\n",
+ "\n",
+ " The answer is wrong in the textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 4: PgNo-522"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Pi=-2.5 # mean optical power launched into the fiber in dBm\n",
+ "Po=-45 # mean output optical power available at the receiver in dBm\n",
+ "a_fc=0.35 # fider cable loss in dB/km\n",
+ "aj=0.1 # splice loss in db/km\n",
+ "a_cr=1 # connector losses\n",
+ "Ma=6 # safety margin in dB\n",
+ "L=(Pi-Po-a_cr-Ma)/(a_fc+aj) # length in km when system operating at 25 Mbps\n",
+ "Po1=-35 # mean output optical power available at the receiver in dBm\n",
+ "L1=(Pi-Po1-a_cr-Ma)/(a_fc+aj) # length in km when system operating at 350 Mbps\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The length when system operating at 25 Mbps = \",L,\"km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The length when system operating at 350 Mbps = \",L1,\"km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The length when system operating at 25 Mbps = 78.89 km\n",
+ "\n",
+ " The length when system operating at 350 Mbps = 56.67 km\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5: PgNo-526"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "Tx=-80 # transmitter output in dBm\n",
+ "Rx=-40 # receiver sensitivity in dBm\n",
+ "sm=32 # system margin in dB\n",
+ "L=10 # in km\n",
+ "fl=2*L # fider loss in dB\n",
+ "cl=1 # detector coupling loss in dB\n",
+ "tl=0.4*8 # total splicing loss in dB\n",
+ "ae=5 # angle effects & future splice in dB\n",
+ "ta=29.2 # total attenuation in dB\n",
+ "Ep=2.8 # excess power margin in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.1f %s' %(\" The fider loss = \",fl,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The total splicing loss = \",tl,\"dB\"))\n",
+ "print ('%s %.1f %s' %(\"\\n The fangle effects & future splice = \",ae,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The total attenuation = \",ta,\"dB\"))\n",
+ "print ('%s %.1f %s' %(\"\\n The excess power margin = \",Ep,\"dB\"))\n",
+ "print (\"\\n Hence the system can operate with small excess power margin \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The fider loss = 20.0 dB\n",
+ "\n",
+ " The total splicing loss = 3.20 dB\n",
+ "\n",
+ " The fangle effects & future splice = 5.0 dB\n",
+ "\n",
+ " The total attenuation = 29.20 dB\n",
+ "\n",
+ " The excess power margin = 2.8 dB\n",
+ "\n",
+ " Hence the system can operate with small excess power margin \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6: PgNo-529"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "Lc=1 # connector loss in db\n",
+ "Ls=5 # star coupler insertion loss in dB\n",
+ "af=2 # fider loss in dB\n",
+ "Ps=-14 # transmitted power in dBm\n",
+ "Pr=-49 # receiver sensitivity in dBm\n",
+ "sm=6 # system margin in dB\n",
+ "N=16.0\n",
+ "L=(Ps-Pr-Ls-4*Lc-(10*math.log(N))/math.log(10)-sm)/(2*af) # max transmission length in km when transmission star coupler is used\n",
+ "N1=32\n",
+ "L1=(Ps-Pr-Ls-4*Lc-(10*math.log(N1))/math.log(10)-sm)/(2*af) # max transmission length in km when reflection star coupler is used\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The max transmission length when transmission star coupler is used = \",L,\"km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The max transmission length when reflection star coupler is used = \",L1,\"km\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max transmission length when transmission star coupler is used = 1.99 km\n",
+ "\n",
+ " The max transmission length when reflection star coupler is used = 1.24 km\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7: PgNo-531"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "y=860*math.pow(10,-9) # wavelength in m\n",
+ "L=5000 # length in m\n",
+ "X=0.024\n",
+ "dy=20*math.pow(10,-9) # spectral width in m\n",
+ "dts=6*math.pow(10,-9) # silica optical link rise time in s\n",
+ "dtr=8*math.pow(10,-9) # detector rise in s\n",
+ "c=3*math.pow(10,8)# speed of light in m/s\n",
+ "dtm=-(L*dy*X)/(c*y) # material dispersion delay time in s\n",
+ "id=2.5*math.pow(10,-12) # intermodel dispersion in s/m\n",
+ "dti=id*L # intermodel dispersion delay time\n",
+ "dtsy=math.sqrt(math.pow(dts,2)+math.pow(dtr,2)+math.pow(dtm,2)+math.pow(dti,2)) # system rise time in s\n",
+ "Br_max=0.7/dtsy # max bit rate for NRZ coding in bit/s\n",
+ "Br_max1=0.35/dtsy # max bit rate for RZ coding in bit/s\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The system rise time = \",dtsy*pow(10,9),\"ns\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The max bit rate for NRZ coding = \",Br_max/pow(10,6),\"Mbit/s\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The max bit rate for RZ coding = \",Br_max1/pow(10,6),\"Mbit/s\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The system rise time = 18.51 ns\n",
+ "\n",
+ " The max bit rate for NRZ coding = 37.81 Mbit/s\n",
+ "\n",
+ " The max bit rate for RZ coding = 18.90 Mbit/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8: PgNo-533"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "Br=50*math.pow(10,6) # data rate in b/s\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "n1=1.47\n",
+ "dl=0.02\n",
+ "n12=n1*dl # the difference b/w n1 and n2\n",
+ "L_si=(0.35*c)/(n12*Br) # transmission distance for Si fiber\n",
+ "L_GI=(2.8*c*math.pow(n1,2))/(2*n1*n12*Br) # transmission distance for GRIN fiber\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The transmission distance for Si fiber = \",L_si,\"m\"))\n",
+ "print ('%s %.f %s' %(\"\\n The transmission distance for GRIN fiber = \",L_GI,\"m\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The transmission distance for Si fiber = 71.429 m\n",
+ "\n",
+ " The transmission distance for GRIN fiber = 420 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9: PgNo-537"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "Br=20*math.pow(10,6) # data rate in b/s\n",
+ "c=3*math.pow(10,8)# speed of light in m/s\n",
+ "y=86*math.pow(10,-9)# wavelength in m\n",
+ "dy=30*math.pow(10,-9) # spectral width in m\n",
+ "X=0.024\n",
+ "Tb=1/Br\n",
+ "Lmax=(0.35*Tb*c*y)/(dy*X)# material dispersion limited transmission distance for RZ coding in m\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The material dispersion limited transmission distance = \",Lmax,\"m\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The material dispersion limited transmission distance = 627.083 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10: PgNo-543"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "y=860*math.pow(10,-9) # wavelength in m\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "n1=1.47 \n",
+ "dl=0.02 \n",
+ "n12=n1*dl # the difference b/w n1 and n2\n",
+ "La=1/1000.0 # loss a in dB/m\n",
+ "Pr=-65 # receiver power in dB\n",
+ "Pt=-5 #transmitted power in dB\n",
+ "dy=30*math.pow(10,-9) # line width in m\n",
+ "X=0.024\n",
+ "Lmax=(0.35*c*y)/(dy*X) # material dispersion limited distance for RZ coding in m\n",
+ "L_GI=(1.4*c*n1)/(n12)# model dispersion limited distance for RZ coding in m\n",
+ "L_At=(Pt-Pr)/(La) # attenuation limited distance for RZ coding in m\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The material dispersion limited distance = \",Lmax/pow(10,10),\"*10^10*1/Br m\"))\n",
+ "print ('%s %.1f %s' %(\"\\n The model dispersion limited distance = \",L_GI/pow(10,10),\"*10^10*1/Br m\"))\n",
+ "print ('%s %.f %s' %(\"\\n The attenuation limited distance = \",L_At/pow(10,3),\"-20log(Br) km\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The material dispersion limited distance = 12.54 *10^10*1/Br m\n",
+ "\n",
+ " The model dispersion limited distance = 2.1 *10^10*1/Br m\n",
+ "\n",
+ " The attenuation limited distance = 60 -20log(Br) km\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file