diff options
Diffstat (limited to 'Optical_Fiber_Communication')
24 files changed, 16596 insertions, 0 deletions
diff --git a/Optical_Fiber_Communication/Chapter10.ipynb b/Optical_Fiber_Communication/Chapter10.ipynb new file mode 100755 index 00000000..22b4a658 --- /dev/null +++ b/Optical_Fiber_Communication/Chapter10.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 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 diff --git a/Optical_Fiber_Communication/Chapter2.ipynb b/Optical_Fiber_Communication/Chapter2.ipynb new file mode 100755 index 00000000..32f1c5a2 --- /dev/null +++ b/Optical_Fiber_Communication/Chapter2.ipynb @@ -0,0 +1,721 @@ +{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ab3713dc22f25eef68710ebd9039d7fba92418b0de95b0ba48c70d6376545f8e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2- Optical Fiber"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1: PgNo- 18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.55 # core refractive index\n",
+ "n2=1.50 #cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "x=math.asin(n2/n1) #Critical angle in radians\n",
+ "x1=x*180/math.pi #Critical angle in degree\n",
+ "n_a=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # Numerical aperture\n",
+ "x_a=math.asin(n_a)*180/math.pi\n",
+ "x_a1=math.ceil(x_a) # Acceptance angle in Degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" Critical angle in degree= \", x1,\"degree\"))\n",
+ "print ('%s %.2f ' %(\"\\n Numerical aperture= \",n_a))\n",
+ "print ('%s %.1f %s' %(\"\\n Acceptance angle in degree= \",x_a1,\"degree\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Critical angle in degree= 75.41 degree\n",
+ "\n",
+ " Numerical aperture= 0.39 \n",
+ "\n",
+ " Acceptance angle in degree= 23.0 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2:PgNo-21"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variable declaration\n",
+ "\n",
+ "c=3*math.pow(10,8) #speed of light in m/s\n",
+ "v=2*math.pow(10,8) # in m/s\n",
+ "# calculations\n",
+ "n1=c/v\n",
+ "x=75 # in degree\n",
+ "n2=n1*math.sin((x*math.pi/180))\n",
+ "n_2=1.44\n",
+ "n_a=math.sqrt(math.pow(n1,2)-math.pow(n_2,2)) # numerical aperture\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" Numerical aperture = \",n_a))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Numerical aperture = 0.42\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3:PgNo-25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=1.47 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "dl=(n1-n2)/n1\n",
+ "n_a=n1*(math.sqrt(2*dl))# numerical aperture\n",
+ "x_a=(math.asin(n_a))*180/math.pi #acceptance angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" Numerical aperture = \",n_a))\n",
+ "print ('%s %.2f %s' %(\"\\n Acceptance angle in degree = \",x_a,\"degree\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Numerical aperture = 0.30\n",
+ "\n",
+ " Acceptance angle in degree = 17.46 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4:PgNo-27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=1.45 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "dl=(n1-n2)/n1\n",
+ "n_a=n1*(math.sqrt(2*dl)) # numerical aperture\n",
+ "x_a=(math.asin(n_a))*180/math.pi # acceptance angle in degree\n",
+ "x_c=(math.asin(n2/n1))*180/math.pi # critical angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" Numerical aperture = \",n_a))\n",
+ "print ('%s %.2f %s' %(\"\\n acceptance angle in degree = \",x_a,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n critical angle in degree = \",x_c,\"degree\"))\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Numerical aperture = 0.39\n",
+ "\n",
+ " acceptance angle in degree = 22.79 degree\n",
+ "\n",
+ " critical angle in degree = 75.16 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5:PgNo- 32"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "dl=0.012\n",
+ "n_a=0.22 # numerical aperture\n",
+ "\n",
+ "# Calculations\n",
+ "n1=n_a/(math.sqrt(2*dl)) # core refractive index\n",
+ "n2=n1-(dl*n1)# cladding refractive index\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" core refractive index = \",n1))\n",
+ "print ('%s %.2f' %(\"\\n cladding refractive index = \",n2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " core refractive index = 1.42\n",
+ "\n",
+ " cladding refractive index = 1.40\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6:PgNo-34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "dl=0.012\n",
+ "n_a=0.22 # numerical aperture\n",
+ "\n",
+ "# Calculations\n",
+ "n1=n_a/(math.sqrt(2*dl)) # core refractive index\n",
+ "n2=n1-(dl*n1)# cladding refractive index\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" core refractive index = \",n1))\n",
+ "print ('%s %.2f' %(\"\\n cladding refractive index = \",n2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " core refractive index = 1.42\n",
+ "\n",
+ " cladding refractive index = 1.40\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7:PgNo-37"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n2=1.59 # cladding refractive index\n",
+ "n_a=0.2 # numerical aperture\n",
+ "n_1=1.60 # core refractive index\n",
+ "n_o=1.33\n",
+ "\n",
+ "# Calculations\n",
+ "n1=math.sqrt(math.pow(n2,2)+math.pow(n_a,2)) # core refractive index\n",
+ "A=(math.sqrt(math.pow(n_1,2)-math.pow(n2,2)))/n_o\n",
+ "x_a=(math.asin(A))*180/math.pi # acceptance angle in degree\n",
+ "x_c=(math.asin(n2/n1))*180/math.pi #critical angle in degree\n",
+ "y=1300*math.pow(10,(-9)) # in meter\n",
+ "a=25*math.pow(10,(-6)) # in meter\n",
+ "v=(2*math.pi*a*n_a)/y\n",
+ "V=math.floor(v)\n",
+ "M=math.pow(V,2)/2 # number of modes transmitted\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" acceptance angle in degree = \",x_a,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n critical angle in degree = \",x_c,\"degree\"))\n",
+ "print ('%s %d' %(\"\\n number of modes transmitted = \",M))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " acceptance angle in degree = 7.72 degree\n",
+ "\n",
+ " critical angle in degree = 82.83 degree\n",
+ "\n",
+ " number of modes transmitted = 288\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8:PgNo-42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=1.47 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "dl=(n1-n2)/n1\n",
+ "n_a=n1*(math.sqrt(2*dl)) # numerical aperture\n",
+ "x_e=(math.asin(n_a))*180/math.pi # the maximum entrance angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.1f' %(\" Numerical aperture = \",n_a))\n",
+ "print ('%s %.2f %s' %(\"\\n The maximum entrance angle in degree = \",x_e,\"degree\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Numerical aperture = 0.3\n",
+ "\n",
+ " The maximum entrance angle in degree = 17.46 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9:PgNo-47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.44 # core refractive index\n",
+ "dl=0.02\n",
+ "\n",
+ "# Calculations\n",
+ "n_a=n1*math.sqrt(2*dl)\n",
+ "n_a=n1*(math.sqrt(2*dl)) # numerical aperture\n",
+ "x_a=(math.asin(n_a))*180/math.pi # acceptance angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print \" Numerical aperture = \",n_a\n",
+ "print ('%s %.2f %s'%(\"\\n acceptance angle in degree = \",x_a,\"degree\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Numerical aperture = 0.288\n",
+ "\n",
+ " acceptance angle in degree = 16.74 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10:PgNo-53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=(99.0/100.0)*1.50 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "x_c=math.asin(n2/n1)*(180/math.pi) # critical angle in degree\n",
+ "n_m=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" critical angle = \",x_c,\"degree\"))\n",
+ "print ('%s %.2f' %(\"\\n numerical aperture = \",n_m))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " critical angle = 81.89 degree\n",
+ "\n",
+ " numerical aperture = 0.21\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11: PgNo-58"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=1.45 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "n_m=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "dl=(n1-n2)/n1 # fractional difference\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" numerical aperture = \",n_m))\n",
+ "print ('%s %.2f' %(\"\\n fractional difference = \",dl))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " numerical aperture = 0.38\n",
+ "\n",
+ " fractional difference = 0.03\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12: PgNo-65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.46 # core refractive index\n",
+ "n2=1.45 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "x_c=(math.asin(n2/n1))*180/math.pi # critical angle in degree\n",
+ "n_m=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "x_a=(math.asin(n_m))*180/math.pi # acceptance angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" critical angle = \",x_c,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n acceptance angle = \",x_a,\"degree\"))\n",
+ "print ('%s %.2f' %(\"\\n numerical aperture = \",n_m))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " critical angle = 83.29 degree\n",
+ "\n",
+ " acceptance angle = 9.82 degree\n",
+ "\n",
+ " numerical aperture = 0.17\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13: PgNo-67"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variable declaration\n",
+ "n_m=0.204 #numerical aperture\n",
+ "dl=0.01 # index difference\n",
+ "\n",
+ "# Calculations\n",
+ "n1=n_m/(math.sqrt(2*dl)) # core refractive index\n",
+ "n2=n1*(1-dl) # cladding refractive index\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" core refractive index = \",n1))\n",
+ "print ('%s %.2f' %(\"\\n cladding refractive index = \",n2))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " core refractive index = 1.44\n",
+ "\n",
+ " cladding refractive index = 1.43\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14: PgNo-71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variable declaration\n",
+ "\n",
+ "n1=1.46 #core refractive index\n",
+ "dl=0.01 # index difference\n",
+ "\n",
+ "# Calculations\n",
+ "n_2=n1-(n1*dl) # cladding refractive index\n",
+ "x_c=(math.asin(n_2/n1))*180/math.pi #critical angle in degree\n",
+ "n_m=math.sqrt(math.pow(n1,2)-math.pow(n_2,2)) # numerical aperture\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" critical angle = \",x_c,\"degree\"))\n",
+ "print ('%s %.2f' %(\"\\n numerical aperture = \",n_m))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " critical angle = 81.89 degree\n",
+ "\n",
+ " numerical aperture = 0.21\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15: PgNo-76"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=1.45 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "x_c=(math.asin(n2/n1))*180/math.pi # critical angle in degree\n",
+ "n_m=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "x_a=(math.asin(n_m))*180/math.pi # acceptance angle in degree\n",
+ "n_c=math.pow((n_m),2)*100 # percentage of light\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" critical angle= \",x_c,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n acceptance angle= \",x_a,\"degree\"))\n",
+ "print ('%s %.2f' %(\"\\n numerical aperture= \",n_m))\n",
+ "print ('%s %.2f %s'%(\"\\n percentage of light= \",n_c,\"%\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " critical angle= 75.16 degree\n",
+ "\n",
+ " acceptance angle= 22.59 degree\n",
+ "\n",
+ " numerical aperture= 0.38\n",
+ "\n",
+ " percentage of light= 14.75 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16: PgNo-81"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "dl=0.01 # index difference\n",
+ "\n",
+ "# Calculations\n",
+ "n_m=n1*(math.sqrt(2*dl)) # numerical aperture\n",
+ "x_a=math.pi*math.pow((n_m),2) # acceptance angle in radian\n",
+ "n2_1=(1-dl) # the ratio of n2 to n1\n",
+ "x_c=(math.asin(n2_1))*180/math.pi # critical angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f'%(\" numerical aperture= \",n_m))\n",
+ "print ('%s %.2f %s' %(\"\\n acceptance angle= \",x_a,\"radian\"))\n",
+ "print ('%s %.2f %s'%(\"\\n critical angle= \",x_c,\"degree\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " numerical aperture= 0.21\n",
+ "\n",
+ " acceptance angle= 0.14 radian\n",
+ "\n",
+ " critical angle= 81.89 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Optical_Fiber_Communication/Chapter2_1.ipynb b/Optical_Fiber_Communication/Chapter2_1.ipynb new file mode 100755 index 00000000..32f1c5a2 --- /dev/null +++ b/Optical_Fiber_Communication/Chapter2_1.ipynb @@ -0,0 +1,721 @@ +{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ab3713dc22f25eef68710ebd9039d7fba92418b0de95b0ba48c70d6376545f8e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2- Optical Fiber"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1: PgNo- 18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.55 # core refractive index\n",
+ "n2=1.50 #cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "x=math.asin(n2/n1) #Critical angle in radians\n",
+ "x1=x*180/math.pi #Critical angle in degree\n",
+ "n_a=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # Numerical aperture\n",
+ "x_a=math.asin(n_a)*180/math.pi\n",
+ "x_a1=math.ceil(x_a) # Acceptance angle in Degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" Critical angle in degree= \", x1,\"degree\"))\n",
+ "print ('%s %.2f ' %(\"\\n Numerical aperture= \",n_a))\n",
+ "print ('%s %.1f %s' %(\"\\n Acceptance angle in degree= \",x_a1,\"degree\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Critical angle in degree= 75.41 degree\n",
+ "\n",
+ " Numerical aperture= 0.39 \n",
+ "\n",
+ " Acceptance angle in degree= 23.0 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2:PgNo-21"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variable declaration\n",
+ "\n",
+ "c=3*math.pow(10,8) #speed of light in m/s\n",
+ "v=2*math.pow(10,8) # in m/s\n",
+ "# calculations\n",
+ "n1=c/v\n",
+ "x=75 # in degree\n",
+ "n2=n1*math.sin((x*math.pi/180))\n",
+ "n_2=1.44\n",
+ "n_a=math.sqrt(math.pow(n1,2)-math.pow(n_2,2)) # numerical aperture\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" Numerical aperture = \",n_a))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Numerical aperture = 0.42\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3:PgNo-25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=1.47 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "dl=(n1-n2)/n1\n",
+ "n_a=n1*(math.sqrt(2*dl))# numerical aperture\n",
+ "x_a=(math.asin(n_a))*180/math.pi #acceptance angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" Numerical aperture = \",n_a))\n",
+ "print ('%s %.2f %s' %(\"\\n Acceptance angle in degree = \",x_a,\"degree\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Numerical aperture = 0.30\n",
+ "\n",
+ " Acceptance angle in degree = 17.46 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4:PgNo-27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=1.45 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "dl=(n1-n2)/n1\n",
+ "n_a=n1*(math.sqrt(2*dl)) # numerical aperture\n",
+ "x_a=(math.asin(n_a))*180/math.pi # acceptance angle in degree\n",
+ "x_c=(math.asin(n2/n1))*180/math.pi # critical angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" Numerical aperture = \",n_a))\n",
+ "print ('%s %.2f %s' %(\"\\n acceptance angle in degree = \",x_a,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n critical angle in degree = \",x_c,\"degree\"))\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Numerical aperture = 0.39\n",
+ "\n",
+ " acceptance angle in degree = 22.79 degree\n",
+ "\n",
+ " critical angle in degree = 75.16 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5:PgNo- 32"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "dl=0.012\n",
+ "n_a=0.22 # numerical aperture\n",
+ "\n",
+ "# Calculations\n",
+ "n1=n_a/(math.sqrt(2*dl)) # core refractive index\n",
+ "n2=n1-(dl*n1)# cladding refractive index\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" core refractive index = \",n1))\n",
+ "print ('%s %.2f' %(\"\\n cladding refractive index = \",n2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " core refractive index = 1.42\n",
+ "\n",
+ " cladding refractive index = 1.40\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6:PgNo-34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "dl=0.012\n",
+ "n_a=0.22 # numerical aperture\n",
+ "\n",
+ "# Calculations\n",
+ "n1=n_a/(math.sqrt(2*dl)) # core refractive index\n",
+ "n2=n1-(dl*n1)# cladding refractive index\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" core refractive index = \",n1))\n",
+ "print ('%s %.2f' %(\"\\n cladding refractive index = \",n2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " core refractive index = 1.42\n",
+ "\n",
+ " cladding refractive index = 1.40\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7:PgNo-37"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n2=1.59 # cladding refractive index\n",
+ "n_a=0.2 # numerical aperture\n",
+ "n_1=1.60 # core refractive index\n",
+ "n_o=1.33\n",
+ "\n",
+ "# Calculations\n",
+ "n1=math.sqrt(math.pow(n2,2)+math.pow(n_a,2)) # core refractive index\n",
+ "A=(math.sqrt(math.pow(n_1,2)-math.pow(n2,2)))/n_o\n",
+ "x_a=(math.asin(A))*180/math.pi # acceptance angle in degree\n",
+ "x_c=(math.asin(n2/n1))*180/math.pi #critical angle in degree\n",
+ "y=1300*math.pow(10,(-9)) # in meter\n",
+ "a=25*math.pow(10,(-6)) # in meter\n",
+ "v=(2*math.pi*a*n_a)/y\n",
+ "V=math.floor(v)\n",
+ "M=math.pow(V,2)/2 # number of modes transmitted\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" acceptance angle in degree = \",x_a,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n critical angle in degree = \",x_c,\"degree\"))\n",
+ "print ('%s %d' %(\"\\n number of modes transmitted = \",M))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " acceptance angle in degree = 7.72 degree\n",
+ "\n",
+ " critical angle in degree = 82.83 degree\n",
+ "\n",
+ " number of modes transmitted = 288\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8:PgNo-42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=1.47 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "dl=(n1-n2)/n1\n",
+ "n_a=n1*(math.sqrt(2*dl)) # numerical aperture\n",
+ "x_e=(math.asin(n_a))*180/math.pi # the maximum entrance angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.1f' %(\" Numerical aperture = \",n_a))\n",
+ "print ('%s %.2f %s' %(\"\\n The maximum entrance angle in degree = \",x_e,\"degree\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Numerical aperture = 0.3\n",
+ "\n",
+ " The maximum entrance angle in degree = 17.46 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9:PgNo-47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.44 # core refractive index\n",
+ "dl=0.02\n",
+ "\n",
+ "# Calculations\n",
+ "n_a=n1*math.sqrt(2*dl)\n",
+ "n_a=n1*(math.sqrt(2*dl)) # numerical aperture\n",
+ "x_a=(math.asin(n_a))*180/math.pi # acceptance angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print \" Numerical aperture = \",n_a\n",
+ "print ('%s %.2f %s'%(\"\\n acceptance angle in degree = \",x_a,\"degree\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Numerical aperture = 0.288\n",
+ "\n",
+ " acceptance angle in degree = 16.74 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10:PgNo-53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=(99.0/100.0)*1.50 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "x_c=math.asin(n2/n1)*(180/math.pi) # critical angle in degree\n",
+ "n_m=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" critical angle = \",x_c,\"degree\"))\n",
+ "print ('%s %.2f' %(\"\\n numerical aperture = \",n_m))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " critical angle = 81.89 degree\n",
+ "\n",
+ " numerical aperture = 0.21\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11: PgNo-58"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=1.45 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "n_m=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "dl=(n1-n2)/n1 # fractional difference\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" numerical aperture = \",n_m))\n",
+ "print ('%s %.2f' %(\"\\n fractional difference = \",dl))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " numerical aperture = 0.38\n",
+ "\n",
+ " fractional difference = 0.03\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12: PgNo-65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.46 # core refractive index\n",
+ "n2=1.45 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "x_c=(math.asin(n2/n1))*180/math.pi # critical angle in degree\n",
+ "n_m=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "x_a=(math.asin(n_m))*180/math.pi # acceptance angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" critical angle = \",x_c,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n acceptance angle = \",x_a,\"degree\"))\n",
+ "print ('%s %.2f' %(\"\\n numerical aperture = \",n_m))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " critical angle = 83.29 degree\n",
+ "\n",
+ " acceptance angle = 9.82 degree\n",
+ "\n",
+ " numerical aperture = 0.17\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13: PgNo-67"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variable declaration\n",
+ "n_m=0.204 #numerical aperture\n",
+ "dl=0.01 # index difference\n",
+ "\n",
+ "# Calculations\n",
+ "n1=n_m/(math.sqrt(2*dl)) # core refractive index\n",
+ "n2=n1*(1-dl) # cladding refractive index\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" core refractive index = \",n1))\n",
+ "print ('%s %.2f' %(\"\\n cladding refractive index = \",n2))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " core refractive index = 1.44\n",
+ "\n",
+ " cladding refractive index = 1.43\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14: PgNo-71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variable declaration\n",
+ "\n",
+ "n1=1.46 #core refractive index\n",
+ "dl=0.01 # index difference\n",
+ "\n",
+ "# Calculations\n",
+ "n_2=n1-(n1*dl) # cladding refractive index\n",
+ "x_c=(math.asin(n_2/n1))*180/math.pi #critical angle in degree\n",
+ "n_m=math.sqrt(math.pow(n1,2)-math.pow(n_2,2)) # numerical aperture\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" critical angle = \",x_c,\"degree\"))\n",
+ "print ('%s %.2f' %(\"\\n numerical aperture = \",n_m))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " critical angle = 81.89 degree\n",
+ "\n",
+ " numerical aperture = 0.21\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15: PgNo-76"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=1.45 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "x_c=(math.asin(n2/n1))*180/math.pi # critical angle in degree\n",
+ "n_m=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "x_a=(math.asin(n_m))*180/math.pi # acceptance angle in degree\n",
+ "n_c=math.pow((n_m),2)*100 # percentage of light\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" critical angle= \",x_c,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n acceptance angle= \",x_a,\"degree\"))\n",
+ "print ('%s %.2f' %(\"\\n numerical aperture= \",n_m))\n",
+ "print ('%s %.2f %s'%(\"\\n percentage of light= \",n_c,\"%\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " critical angle= 75.16 degree\n",
+ "\n",
+ " acceptance angle= 22.59 degree\n",
+ "\n",
+ " numerical aperture= 0.38\n",
+ "\n",
+ " percentage of light= 14.75 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16: PgNo-81"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "dl=0.01 # index difference\n",
+ "\n",
+ "# Calculations\n",
+ "n_m=n1*(math.sqrt(2*dl)) # numerical aperture\n",
+ "x_a=math.pi*math.pow((n_m),2) # acceptance angle in radian\n",
+ "n2_1=(1-dl) # the ratio of n2 to n1\n",
+ "x_c=(math.asin(n2_1))*180/math.pi # critical angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f'%(\" numerical aperture= \",n_m))\n",
+ "print ('%s %.2f %s' %(\"\\n acceptance angle= \",x_a,\"radian\"))\n",
+ "print ('%s %.2f %s'%(\"\\n critical angle= \",x_c,\"degree\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " numerical aperture= 0.21\n",
+ "\n",
+ " acceptance angle= 0.14 radian\n",
+ "\n",
+ " critical angle= 81.89 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Optical_Fiber_Communication/Chapter3.ipynb b/Optical_Fiber_Communication/Chapter3.ipynb new file mode 100755 index 00000000..4ff5c94e --- /dev/null +++ b/Optical_Fiber_Communication/Chapter3.ipynb @@ -0,0 +1,1352 @@ +{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2b710cf5b5be9f51b281cf20f926c177245f0b5c79ffccf88ed3e06dd1ffcbfa"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3- Optical Fiber Fabrication"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1: PgNo-83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=1.48 # cladding refractive index\n",
+ "y=1.3*math.pow(10,(-6))\n",
+ "m=1000 # the no. of models\n",
+ "\n",
+ "# Calculations\n",
+ "v=math.sqrt(2*m)\n",
+ "a=(v*y)/(2*math.pi*(math.sqrt(pow(n1,2)-math.pow(n2,2)))*math.pow(10,6)) # core radius in micrometer\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2e %s' %(\" core radius= \",a ,\"micrometer\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " core radius= 3.79e-11 micrometer\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2: PgNo-83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.505 # core refractive index\n",
+ "n2=1.502 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "n_m=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "y=1.3*math.pow(10,(-6))\n",
+ "v=2.4\n",
+ "a=(v*y)/(2*math.pi*(math.sqrt(math.pow(n1,2)-math.pow(n2,2))))*math.pow(10,6)# core radius in micrometer\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f'%(\" numerical aperture= \",n_m))\n",
+ "print ('%s %.3f %s' %(\"\\n core radius= \",a,\"micrometer\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " numerical aperture= 0.09\n",
+ "\n",
+ " core radius= 5.228 micrometer\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3: PgNo-84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variable declaration\n",
+ "\n",
+ "n1=1.5 # core refractive index\n",
+ "dl=0.01 # index difference\n",
+ "m=0 # for the dominant mode\n",
+ "v=0 # for the dominant mode\n",
+ "y=1.3 # in micrometer\n",
+ "a=5.0 # radius in micrometer\n",
+ "\n",
+ "# Calculations\n",
+ "k=(2*math.pi)/y\n",
+ "b=math.pow(k,2)*math.pow(n1,2)-(2*k*n1*math.sqrt(2*dl))/a\n",
+ "B=math.sqrt(b) # propagation constant in rad/um\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" propagation constant= \",B,\"rad/um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " propagation constant= 7.221 rad/um\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4: PgNo-86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Printing the results\n",
+ "b=1/2 # propagtion constant\n",
+ "print (\" normalised propagtion constant\")\n",
+ "print (\"\\n B=(pow((b/k),2)-pow(n2,2))/(pow(n1,2)-pow(n2,2))\")\n",
+ "print (\"\\n thus when b=1/2\")\n",
+ "print (\"\\n B=k*sqrt(pow(n2,2)+b*(pow(n1,2)-pow(n2,2))\")\n",
+ "print (\"\\n B=k*sqrt(pow(n1,2)-pow(n2,2)/2)\")\n",
+ "print (\"\\n which gives its rms value\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " normalised propagtion constant\n",
+ "\n",
+ " B=(pow((b/k),2)-pow(n2,2))/(pow(n1,2)-pow(n2,2))\n",
+ "\n",
+ " thus when b=1/2\n",
+ "\n",
+ " B=k*sqrt(pow(n2,2)+b*(pow(n1,2)-pow(n2,2))\n",
+ "\n",
+ " B=k*sqrt(pow(n1,2)-pow(n2,2)/2)\n",
+ "\n",
+ " which gives its rms value\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5: PgNo-87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=3.6 #core refractive index\n",
+ "n2=3.3 # cladding refractive index\n",
+ "d=2.0 # thickness in um\n",
+ "y=0.8 # wavelength in um\n",
+ "\n",
+ "# Calculations\n",
+ "m=(2*d*math.sqrt(math.pow(n1,2)-math.pow(n2,2))/y) # total no. of models allowed\n",
+ "M=math.ceil(m) # total no. of models allowed\n",
+ "\n",
+ "print \" Total no. of models allowed= \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Total no. of models allowed= 8\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6: PgNo-88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.48 # core refractive index\n",
+ "a=40*(math.pow(10,-6)) #core radius in meter\n",
+ "dl=0.015 # index difference\n",
+ "y=0.85*(math.pow(10,-6)) # wavelength in um\n",
+ "\n",
+ "# Calculations\n",
+ "v=(2*math.pi*a*n1*math.sqrt(2*dl))/y # normalised frequency\n",
+ "M=math.pow(v,2)/2\n",
+ "m=math.ceil(M) # the total no. of guided modes\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" normalised frequency= \",v))\n",
+ "print \"\\n The total no. of guided modess = \",int(m)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " normalised frequency= 75.80\n",
+ "\n",
+ " The total no. of guided modess = 2873\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7: PgNo-89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.46 # core refractive index\n",
+ "dl=0.015 # index difference\n",
+ "a=30*(math.pow(10,-6))# core radius in meter\n",
+ "y=0.85*(math.pow(10,-6)) #wavelength in um\n",
+ "\n",
+ "# calcualtions\n",
+ "n2=n1-(n1*dl)# cladding refractive index\n",
+ "v=(2*math.pi*a*n1*math.sqrt(2*dl))/y # normalised frequency\n",
+ "M=math.pow(v,2)/2 # the total no. of guided modes\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" Cladding refractive index= \",n2))\n",
+ "print ('%s %.3f'%(\"\\n Normalised frequency= \",v))\n",
+ "print \"\\n The total no. of guided modes = \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Cladding refractive index= 1.44\n",
+ "\n",
+ " Normalised frequency= 56.078\n",
+ "\n",
+ " The total no. of guided modes = 1572\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example8: PgNo-91"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.5 # core refractive index\n",
+ "dl=0.01 # index difference\n",
+ "M=1100 # the total no. of guided modes\n",
+ "y=1.3*(math.pow(10,-6)) # wavelength in um\n",
+ "v=math.sqrt(2*M)# normalised frequency\n",
+ "\n",
+ "# Calculations\n",
+ "a=(v*y)/(2*math.pi*n1*math.sqrt(2*dl))*math.pow(10,6) #core radius in meter\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" Normalised frequency= \",v))\n",
+ "print ('%s %.2f %s' %(\"\\n The diameter of the fiber core = \",2*a,\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Normalised frequency= 46.90\n",
+ "\n",
+ " The diameter of the fiber core = 91.50 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example9: PgNo-91"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.45 # core refractive index\n",
+ "n_m=0.16 # numerical aperture\n",
+ "\n",
+ "# Calculations\n",
+ "a=30*math.pow(10,-6) # core radius in micrometer\n",
+ "y=0.5*(math.pow(10,-6)) # wavelength in um\n",
+ "v=(2*math.pi*a*n_m)/y #normalised frequency\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" Normalised frequency= \",v))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Normalised frequency= 60.32\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example10: PgNo-93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=3.6 # core refractive index\n",
+ "n2=3.56 # cladding refractive index\n",
+ "y=0.85*(math.pow(10,-6))# wavelength in um\n",
+ "m=1\n",
+ "n=0\n",
+ "v_c=2.405 # for planner guide\n",
+ "\n",
+ "# Calculations\n",
+ "a=(v_c*y)/(2*math.pi*math.sqrt(math.pow(n1,2)-math.pow(n2,2)))# core radius in micrometer\n",
+ "\n",
+ "print ('%s %.2f %s' %(\"The max thickness= \",a*pow(10,6),\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The max thickness= 0.61 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example11: PgNo-94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "n1=1.5 #core refractive index\n",
+ "y=1.3*(math.pow(10,-6)) # wavelength in um\n",
+ "M=1100 # total no. of models\n",
+ "dl=0.01 # index difference\n",
+ "\n",
+ "# Calculations\n",
+ "v=math.sqrt(2*M)\n",
+ "V=math.ceil(v)\n",
+ "a=(V*y)/(2*math.pi*n1*math.sqrt(2*dl))*math.pow(10,6) # core radius in micrometer\n",
+ "a1=math.ceil(a)# core radius in micrometer\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\"The core diameter= \",2*a1,\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The core diameter= 92.00 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example12: PgNo-96"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.45 # core refractive index\n",
+ "dl=0.015 # index difference\n",
+ "\n",
+ "# Calculations\n",
+ "y=0.85*(math.pow(10,-6)) # wavelength in meter\n",
+ "v=2.4*math.pow((1+(2/2)),(0.5))# Max normalised frequency\n",
+ "a=(v*y)/(2*math.pi*n1*math.pow((2*dl),(0.5))) # Max core radius in m\n",
+ "d=2*a # The max core diameter in meter\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s'%(\" The max core diameter in meter= \",d*pow(10,6),\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max core diameter in meter= 3.657 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example13: PgNo-98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable Initialisation\n",
+ "n1=1.48 #core refractive index\n",
+ "n2=1.46 # cladding refractive index\n",
+ "a=2.5 # radius in um\n",
+ "y=0.85 # wavelength in um\n",
+ "dl=(n1-n2)/n1 # index difference\n",
+ "v=(2*math.pi*a*n1*math.pow((2*dl),(0.5)))/y #the normaised frequency\n",
+ "M=(v*v)/2 # number of modes\n",
+ "print \" The number of modes= \",int(M)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The number of modes= 10\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example14: PgNo-101"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "a=25 # radius in um\n",
+ "y=1.3 # wavelength in um\n",
+ "v=26.6 # the normaised frequency\n",
+ "NA=(v*y)/(2*math.pi*a) #Numerical aperture\n",
+ "a_c=math.pi*math.pow((NA),2)\n",
+ "M=(v*v)/2\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f' %(\" The number of modes= \", NA))\n",
+ "print ('%s %.3f' %(\"\\n The number of modes= \", a_c))\n",
+ "print (\"\\n Answer in textbook is wrong\")\n",
+ "print \"\\n The number of modes= \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The number of modes= 0.220\n",
+ "\n",
+ " The number of modes= 0.152\n",
+ "\n",
+ " Answer in textbook is wrong\n",
+ "\n",
+ " The number of modes= 353\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example15: PgNo-103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Declaration of variables\n",
+ "n1=1.49 # core refractive index\n",
+ "n2=1.47 # cladding refractive index\n",
+ "a=2 # radius in um\n",
+ "dl=(n1-n2)/n1 # index difference\n",
+ "v_c=2.405\n",
+ "\n",
+ "# calculations\n",
+ "y_c=(2*math.pi*a*n1*math.pow((2*dl),(0.5)))/v_c # cut off wavelength in um\n",
+ "Y=1.31 # wavelength in um\n",
+ "A=(v_c*Y)/(2*math.pi*n1*math.pow((2*dl),(0.5))) # min core radius in um\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The cut off wavelength = \",y_c,\"um\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The min core radius = \",A,\"um\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 1.276 um\n",
+ "\n",
+ " The min core radius = 2.054 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example16: PgNo-105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "a=25 # radius in um\n",
+ "NA=0.3 # Numerical aperture\n",
+ "y=1 # wavelength in um\n",
+ "v=(2*math.pi*a*NA)/y # the normalised frequency\n",
+ "V=47.1 # the normalised frequency\n",
+ "M=(V*V)/4 # The mode volume\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" The normalised frequency = \",v))\n",
+ "print \"\\n The mode volume = \",int(M),\"guided modes\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The normalised frequency = 47.12\n",
+ "\n",
+ " The mode volume = 554 guided modes\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example17: PgNo-107"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "n1=1.46 # core refractive index\n",
+ "a=4.5 # radius in um\n",
+ "dl=0.0025 # relative index difference\n",
+ "v_c=2.405\n",
+ "\n",
+ "# calculations\n",
+ "y_c=(2*math.pi*a*n1*math.pow((2*dl),(0.5)))/v_c # cut off wavelength in um\n",
+ "\n",
+ "print ('%s %.3f %s' %(\" The cut off wavelength = \",y_c,\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 1.214 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example18: PgNo-109"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.5 #core refractive index\n",
+ "n2=1.45 # cladding refractive index\n",
+ "a=50 # radius in um\n",
+ "y=1.3 #operating wavelength in um\n",
+ "\n",
+ "# calculations\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "N_A=0.38 \n",
+ "v=(2*math.pi*a*N_A)/y # cut of numbers\n",
+ "M=math.pow(v,2)/2 # number of modes\n",
+ "\n",
+ "print ('%s %.2f'%(\" The cut of numbers = \",v))\n",
+ "print \"\\n The number of modes = \",int(M)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut of numbers = 91.83\n",
+ "\n",
+ " The number of modes = 4216\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example19: PgNo-111"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.53 # core refractive index\n",
+ "n2=1.5 # cladding refractive index\n",
+ "y=1.5 # operating wavelength in um\n",
+ "\n",
+ "# calculation\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "a=(2.405*y)/(2*math.pi*NA)# max radius in um\n",
+ "\n",
+ "print ('%s %.2f %s' %(\" The max core radius = \",a,\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max core radius = 1.90 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example20: PgNo-112"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "a=25 # max radius in um\n",
+ "y=0.8 # operating wavelength in um\n",
+ "NA=0.343 # numerical aperture\n",
+ "v=(2*math.pi*a*NA)/y # v-number\n",
+ "M=math.pow(v,2)/2 #number of modes\n",
+ "\n",
+ "print ('%s %.6f' %(\" The v-number = \",v))\n",
+ "print \"\\n The number of modes = \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The v-number = 67.347893\n",
+ "\n",
+ " The number of modes = 2267\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example21: PgNo-114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.5 #core refractive index\n",
+ "NA=0.38 # numerical aperture\n",
+ "v=75 # v-number\n",
+ "y=1.3 # operating wavelength in um\n",
+ "a=(v*y)/(2*math.pi*NA) # core radius in um\n",
+ "n2=math.sqrt(math.pow(n1,2)-math.pow(NA,2))# cladding refractive index\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The core radius = \",a,\"um\"))\n",
+ "print ('%s %.2f' %(\"\\n The cladding refractive index = \", n2))\n",
+ "print (\"\\n answer in textbook is wrong \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The core radius = 40.84 um\n",
+ "\n",
+ " The cladding refractive index = 1.45\n",
+ "\n",
+ " answer in textbook is wrong \n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example22: PgNo-117"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Initialisation of variables\n",
+ "y=1.2 # operating wavelength in um\n",
+ "w=5 # spot size in um\n",
+ "x=(2*y)/(math.pi*w) # the divergence angle in degree\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.3f %s' %(\" The divergence angle = \",x,\"degree\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The divergence angle = 0.153 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example23: PgNo-119"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.46 # core refractive index\n",
+ "a=4.5 # core radius in um\n",
+ "dl=0.0025 # relative index difference\n",
+ "NA=n1*(math.sqrt(2*dl)) # numerical aperture\n",
+ "v=2.405\n",
+ "y=(2*math.pi*a*NA)/(v) # cut off wavelength in um\n",
+ "\n",
+ "print ('%s %.3f %s' %(\" The cut off wavelength = \",y,\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 1.214 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example24: PgNo-121"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "n1=1.5 # core refractive index\n",
+ "n2=1.47 # cladding refractive index\n",
+ "y1=0.87 # operating wavelength in um\n",
+ "y2=1.5 # operating wavelength in um\n",
+ "a=25.0 # max radius in um\n",
+ "\n",
+ "# Calculations\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "v1=(2*math.pi*a*NA)/y1\n",
+ "v2=(2*math.pi*a*NA)/y2\n",
+ "al=2.0 # parabolic index profile for GRIN\n",
+ "M1=(al/(al+2))*(math.pow(v1,2)/2)# number of modes\n",
+ "M2=(al/(al+2))*(math.pow(v2,2)/2)# number of modes\n",
+ "\n",
+ "# Results\n",
+ "print \" The number of modes at 870 nm = \",int(M1),\"um\"\n",
+ "print \"\\n The number of modes = \",int(M2),\"um\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The number of modes at 870 nm = 726 um\n",
+ "\n",
+ " The number of modes = 244 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example25: PgNo-122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.5 # core refractive index\n",
+ "n2=1.46 # cladding refractive index\n",
+ "v=2.4 # cut off parameter\n",
+ "y=0.85 # operating wavelength in um\n",
+ "\n",
+ "# Calculations\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "a=(v*y)/(2*math.pi*NA)# max radius in um\n",
+ "w=v*a # spot size\n",
+ "x=(2*y)/(3.4*w) # divergence angle in degree\n",
+ "d=50 # distance in meter\n",
+ "w_s=(y*d)/(math.pi*w) # spot size at 50 meter\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The numerical aperture = \",NA,\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The max core radius = \",a,\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The spot size = \",w,\"um\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The divergence angle = \",x,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The spot size at 50 meter = \",w_s,\"m\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The numerical aperture = 0.34 um\n",
+ "\n",
+ " The max core radius = 0.94 um\n",
+ "\n",
+ " The spot size = 2.26 um\n",
+ "\n",
+ " The divergence angle = 0.221 degree\n",
+ "\n",
+ " The spot size at 50 meter = 5.97 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example26: PgNo-124"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.53 # core refractive index\n",
+ "n2=1.50 # cladding refractive index\n",
+ "y=1.2 # wavelength in um\n",
+ "v=2.405\n",
+ "a=(v*y)/(2*math.pi*(math.sqrt(math.pow(n1,2)-math.pow(n2,2)))) #core radius in micrometer\n",
+ "\n",
+ "print ('%s %.3f %s' %(\" The max diameter= \",2*a,\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max diameter= 3.047 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example27: PgNo-127"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Initialisation of variables\n",
+ "n1=1.47 # core refractive index\n",
+ "n2=1.46 # cladding refractive index\n",
+ "y=1.3 # wavelength in um\n",
+ "dl=(n1-n2)/n1 # fractional refractive index diff\n",
+ "\n",
+ "# calculations\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2))\n",
+ "v=2.405\n",
+ "a=(v*y)/(2*math.pi*(math.sqrt(math.pow(n1,2)-math.pow(n2,2))))# largest core radius in micrometer\n",
+ "n_eff=n1-(NA/(2*math.pi*(a/y))) # fractional refractive index\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The largest core radius = \",a,\"um\"))\n",
+ "print ('%s %.2f' %(\"\\n The fractional refractive index= \",n_eff))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The largest core radius = 2.91 um\n",
+ "\n",
+ " The fractional refractive index= 1.46\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example28: PgNo-130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# initialisation of variables\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=1.48 # cladding refractive index\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "a=25 # core radius in um\n",
+ "y=0.85 # wavelength in um\n",
+ "v=(2*math.pi*a*NA)/y #cut off parameter\n",
+ "M=math.pow(v,2)/2 # number of modes\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f' %(\" The cut off parameter = \",v))\n",
+ "print \"\\n The number of modes = \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off parameter = 45.115\n",
+ "\n",
+ " The number of modes = 1017\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example29: PgNo-132"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# initialisation of variables\n",
+ "n1=1.50 # core refractive index\n",
+ "a=25 # core radius in um\n",
+ "y=1.5 # wavelength in um\n",
+ "v=2.405\n",
+ "\n",
+ "# Calculations\n",
+ "NA=(v*y)/(2*math.pi*a) # numerical aperture\n",
+ "D=math.pow((NA/n1),2)/(2) # max value of D\n",
+ "n2=n1-(D*n1) # cladding refractive index\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.6f' %(\" The max value of D = \",D))\n",
+ "print ('%s %.2f' %(\"\\n The cladding refractive index = \",n2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max value of D = 0.000117\n",
+ "\n",
+ " The cladding refractive index = 1.50\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example30: PgNo-133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# variable declaration\n",
+ "n1=1.52 #core refractive index\n",
+ "n2=1.48 #cladding refractive index\n",
+ "a=45 # core radius in um\n",
+ "y=0.85 # wavelength in um\n",
+ "\n",
+ "# Calculations\n",
+ "dl=(n1-n2)/n1 # relative refractive index\n",
+ "x=(math.asin(n2/n1))*(180/math.pi) # critical angle in degree\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) #numerical aperture\n",
+ "a_c=(math.asin(NA))*(180/math.pi) #acceptance angle in degree\n",
+ "a_s=math.pi*(math.pow(n1,2)-math.pow(n2,2))# solid acceptance angle\n",
+ "v=(2*math.pi*a*0.34)/y # normalise v-number\n",
+ "M=math.pow(v,2)/2 # number of guided modes\n",
+ "a1=5 # for single mode step fiber\n",
+ "v1=(2*math.pi*a1*0.34)/y\n",
+ "M1=math.pow(v1,2)/2\n",
+ "R=int(M)-int(M1)# reduction in modes\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f' %(\" The max value of D = \",dl))\n",
+ "print ('%s %.2f %s' %(\"\\n The critical angle = \",x,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The acceptance angle = \",2*a_c,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The solid acceptance angle = \",a_s,\"degree\"))\n",
+ "print ('%s %.2f ' %(\"\\n The numerical aperture = \",NA))\n",
+ "print ('%s %.2f ' %(\"\\n The normalise v-number = \",v))\n",
+ "print \"\\n The number of guided modes = \",int(M)\n",
+ "print \"\\n The reduction in modes = \",R\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max value of D = 0.0263\n",
+ "\n",
+ " The critical angle = 76.83 degree\n",
+ "\n",
+ " The acceptance angle = 40.54 degree\n",
+ "\n",
+ " The solid acceptance angle = 0.38 degree\n",
+ "\n",
+ " The numerical aperture = 0.35 \n",
+ "\n",
+ " The normalise v-number = 113.10 \n",
+ "\n",
+ " The number of guided modes = 6395\n",
+ "\n",
+ " The reduction in modes = 6317\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example31: PgNo-135"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Initialisation of variables\n",
+ "\n",
+ "n1=1.46 #core refractive index\n",
+ "a=45/2 #max radius in um\n",
+ "y=0.85 # operating wavelength in um\n",
+ "NA=0.17 # numerical aperture\n",
+ "v=(2*math.pi*a*NA)/y #normalised frequency\n",
+ "M=math.pow(v,2)/2 # number of modes\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" The normalised frequency = \",v))\n",
+ "print \"\\n The number of modes = \",int(M)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The normalised frequency = 27.65\n",
+ "\n",
+ " The number of modes = 382\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Optical_Fiber_Communication/Chapter3_1.ipynb b/Optical_Fiber_Communication/Chapter3_1.ipynb new file mode 100755 index 00000000..4ff5c94e --- /dev/null +++ b/Optical_Fiber_Communication/Chapter3_1.ipynb @@ -0,0 +1,1352 @@ +{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2b710cf5b5be9f51b281cf20f926c177245f0b5c79ffccf88ed3e06dd1ffcbfa"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3- Optical Fiber Fabrication"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1: PgNo-83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=1.48 # cladding refractive index\n",
+ "y=1.3*math.pow(10,(-6))\n",
+ "m=1000 # the no. of models\n",
+ "\n",
+ "# Calculations\n",
+ "v=math.sqrt(2*m)\n",
+ "a=(v*y)/(2*math.pi*(math.sqrt(pow(n1,2)-math.pow(n2,2)))*math.pow(10,6)) # core radius in micrometer\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2e %s' %(\" core radius= \",a ,\"micrometer\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " core radius= 3.79e-11 micrometer\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2: PgNo-83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.505 # core refractive index\n",
+ "n2=1.502 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "n_m=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "y=1.3*math.pow(10,(-6))\n",
+ "v=2.4\n",
+ "a=(v*y)/(2*math.pi*(math.sqrt(math.pow(n1,2)-math.pow(n2,2))))*math.pow(10,6)# core radius in micrometer\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f'%(\" numerical aperture= \",n_m))\n",
+ "print ('%s %.3f %s' %(\"\\n core radius= \",a,\"micrometer\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " numerical aperture= 0.09\n",
+ "\n",
+ " core radius= 5.228 micrometer\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3: PgNo-84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variable declaration\n",
+ "\n",
+ "n1=1.5 # core refractive index\n",
+ "dl=0.01 # index difference\n",
+ "m=0 # for the dominant mode\n",
+ "v=0 # for the dominant mode\n",
+ "y=1.3 # in micrometer\n",
+ "a=5.0 # radius in micrometer\n",
+ "\n",
+ "# Calculations\n",
+ "k=(2*math.pi)/y\n",
+ "b=math.pow(k,2)*math.pow(n1,2)-(2*k*n1*math.sqrt(2*dl))/a\n",
+ "B=math.sqrt(b) # propagation constant in rad/um\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" propagation constant= \",B,\"rad/um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " propagation constant= 7.221 rad/um\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4: PgNo-86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Printing the results\n",
+ "b=1/2 # propagtion constant\n",
+ "print (\" normalised propagtion constant\")\n",
+ "print (\"\\n B=(pow((b/k),2)-pow(n2,2))/(pow(n1,2)-pow(n2,2))\")\n",
+ "print (\"\\n thus when b=1/2\")\n",
+ "print (\"\\n B=k*sqrt(pow(n2,2)+b*(pow(n1,2)-pow(n2,2))\")\n",
+ "print (\"\\n B=k*sqrt(pow(n1,2)-pow(n2,2)/2)\")\n",
+ "print (\"\\n which gives its rms value\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " normalised propagtion constant\n",
+ "\n",
+ " B=(pow((b/k),2)-pow(n2,2))/(pow(n1,2)-pow(n2,2))\n",
+ "\n",
+ " thus when b=1/2\n",
+ "\n",
+ " B=k*sqrt(pow(n2,2)+b*(pow(n1,2)-pow(n2,2))\n",
+ "\n",
+ " B=k*sqrt(pow(n1,2)-pow(n2,2)/2)\n",
+ "\n",
+ " which gives its rms value\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5: PgNo-87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=3.6 #core refractive index\n",
+ "n2=3.3 # cladding refractive index\n",
+ "d=2.0 # thickness in um\n",
+ "y=0.8 # wavelength in um\n",
+ "\n",
+ "# Calculations\n",
+ "m=(2*d*math.sqrt(math.pow(n1,2)-math.pow(n2,2))/y) # total no. of models allowed\n",
+ "M=math.ceil(m) # total no. of models allowed\n",
+ "\n",
+ "print \" Total no. of models allowed= \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Total no. of models allowed= 8\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6: PgNo-88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.48 # core refractive index\n",
+ "a=40*(math.pow(10,-6)) #core radius in meter\n",
+ "dl=0.015 # index difference\n",
+ "y=0.85*(math.pow(10,-6)) # wavelength in um\n",
+ "\n",
+ "# Calculations\n",
+ "v=(2*math.pi*a*n1*math.sqrt(2*dl))/y # normalised frequency\n",
+ "M=math.pow(v,2)/2\n",
+ "m=math.ceil(M) # the total no. of guided modes\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" normalised frequency= \",v))\n",
+ "print \"\\n The total no. of guided modess = \",int(m)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " normalised frequency= 75.80\n",
+ "\n",
+ " The total no. of guided modess = 2873\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7: PgNo-89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.46 # core refractive index\n",
+ "dl=0.015 # index difference\n",
+ "a=30*(math.pow(10,-6))# core radius in meter\n",
+ "y=0.85*(math.pow(10,-6)) #wavelength in um\n",
+ "\n",
+ "# calcualtions\n",
+ "n2=n1-(n1*dl)# cladding refractive index\n",
+ "v=(2*math.pi*a*n1*math.sqrt(2*dl))/y # normalised frequency\n",
+ "M=math.pow(v,2)/2 # the total no. of guided modes\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" Cladding refractive index= \",n2))\n",
+ "print ('%s %.3f'%(\"\\n Normalised frequency= \",v))\n",
+ "print \"\\n The total no. of guided modes = \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Cladding refractive index= 1.44\n",
+ "\n",
+ " Normalised frequency= 56.078\n",
+ "\n",
+ " The total no. of guided modes = 1572\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example8: PgNo-91"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.5 # core refractive index\n",
+ "dl=0.01 # index difference\n",
+ "M=1100 # the total no. of guided modes\n",
+ "y=1.3*(math.pow(10,-6)) # wavelength in um\n",
+ "v=math.sqrt(2*M)# normalised frequency\n",
+ "\n",
+ "# Calculations\n",
+ "a=(v*y)/(2*math.pi*n1*math.sqrt(2*dl))*math.pow(10,6) #core radius in meter\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" Normalised frequency= \",v))\n",
+ "print ('%s %.2f %s' %(\"\\n The diameter of the fiber core = \",2*a,\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Normalised frequency= 46.90\n",
+ "\n",
+ " The diameter of the fiber core = 91.50 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example9: PgNo-91"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.45 # core refractive index\n",
+ "n_m=0.16 # numerical aperture\n",
+ "\n",
+ "# Calculations\n",
+ "a=30*math.pow(10,-6) # core radius in micrometer\n",
+ "y=0.5*(math.pow(10,-6)) # wavelength in um\n",
+ "v=(2*math.pi*a*n_m)/y #normalised frequency\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" Normalised frequency= \",v))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Normalised frequency= 60.32\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example10: PgNo-93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=3.6 # core refractive index\n",
+ "n2=3.56 # cladding refractive index\n",
+ "y=0.85*(math.pow(10,-6))# wavelength in um\n",
+ "m=1\n",
+ "n=0\n",
+ "v_c=2.405 # for planner guide\n",
+ "\n",
+ "# Calculations\n",
+ "a=(v_c*y)/(2*math.pi*math.sqrt(math.pow(n1,2)-math.pow(n2,2)))# core radius in micrometer\n",
+ "\n",
+ "print ('%s %.2f %s' %(\"The max thickness= \",a*pow(10,6),\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The max thickness= 0.61 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example11: PgNo-94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "n1=1.5 #core refractive index\n",
+ "y=1.3*(math.pow(10,-6)) # wavelength in um\n",
+ "M=1100 # total no. of models\n",
+ "dl=0.01 # index difference\n",
+ "\n",
+ "# Calculations\n",
+ "v=math.sqrt(2*M)\n",
+ "V=math.ceil(v)\n",
+ "a=(V*y)/(2*math.pi*n1*math.sqrt(2*dl))*math.pow(10,6) # core radius in micrometer\n",
+ "a1=math.ceil(a)# core radius in micrometer\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\"The core diameter= \",2*a1,\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The core diameter= 92.00 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example12: PgNo-96"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.45 # core refractive index\n",
+ "dl=0.015 # index difference\n",
+ "\n",
+ "# Calculations\n",
+ "y=0.85*(math.pow(10,-6)) # wavelength in meter\n",
+ "v=2.4*math.pow((1+(2/2)),(0.5))# Max normalised frequency\n",
+ "a=(v*y)/(2*math.pi*n1*math.pow((2*dl),(0.5))) # Max core radius in m\n",
+ "d=2*a # The max core diameter in meter\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s'%(\" The max core diameter in meter= \",d*pow(10,6),\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max core diameter in meter= 3.657 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example13: PgNo-98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable Initialisation\n",
+ "n1=1.48 #core refractive index\n",
+ "n2=1.46 # cladding refractive index\n",
+ "a=2.5 # radius in um\n",
+ "y=0.85 # wavelength in um\n",
+ "dl=(n1-n2)/n1 # index difference\n",
+ "v=(2*math.pi*a*n1*math.pow((2*dl),(0.5)))/y #the normaised frequency\n",
+ "M=(v*v)/2 # number of modes\n",
+ "print \" The number of modes= \",int(M)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The number of modes= 10\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example14: PgNo-101"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "a=25 # radius in um\n",
+ "y=1.3 # wavelength in um\n",
+ "v=26.6 # the normaised frequency\n",
+ "NA=(v*y)/(2*math.pi*a) #Numerical aperture\n",
+ "a_c=math.pi*math.pow((NA),2)\n",
+ "M=(v*v)/2\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f' %(\" The number of modes= \", NA))\n",
+ "print ('%s %.3f' %(\"\\n The number of modes= \", a_c))\n",
+ "print (\"\\n Answer in textbook is wrong\")\n",
+ "print \"\\n The number of modes= \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The number of modes= 0.220\n",
+ "\n",
+ " The number of modes= 0.152\n",
+ "\n",
+ " Answer in textbook is wrong\n",
+ "\n",
+ " The number of modes= 353\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example15: PgNo-103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Declaration of variables\n",
+ "n1=1.49 # core refractive index\n",
+ "n2=1.47 # cladding refractive index\n",
+ "a=2 # radius in um\n",
+ "dl=(n1-n2)/n1 # index difference\n",
+ "v_c=2.405\n",
+ "\n",
+ "# calculations\n",
+ "y_c=(2*math.pi*a*n1*math.pow((2*dl),(0.5)))/v_c # cut off wavelength in um\n",
+ "Y=1.31 # wavelength in um\n",
+ "A=(v_c*Y)/(2*math.pi*n1*math.pow((2*dl),(0.5))) # min core radius in um\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The cut off wavelength = \",y_c,\"um\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The min core radius = \",A,\"um\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 1.276 um\n",
+ "\n",
+ " The min core radius = 2.054 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example16: PgNo-105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "a=25 # radius in um\n",
+ "NA=0.3 # Numerical aperture\n",
+ "y=1 # wavelength in um\n",
+ "v=(2*math.pi*a*NA)/y # the normalised frequency\n",
+ "V=47.1 # the normalised frequency\n",
+ "M=(V*V)/4 # The mode volume\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" The normalised frequency = \",v))\n",
+ "print \"\\n The mode volume = \",int(M),\"guided modes\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The normalised frequency = 47.12\n",
+ "\n",
+ " The mode volume = 554 guided modes\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example17: PgNo-107"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "n1=1.46 # core refractive index\n",
+ "a=4.5 # radius in um\n",
+ "dl=0.0025 # relative index difference\n",
+ "v_c=2.405\n",
+ "\n",
+ "# calculations\n",
+ "y_c=(2*math.pi*a*n1*math.pow((2*dl),(0.5)))/v_c # cut off wavelength in um\n",
+ "\n",
+ "print ('%s %.3f %s' %(\" The cut off wavelength = \",y_c,\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 1.214 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example18: PgNo-109"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.5 #core refractive index\n",
+ "n2=1.45 # cladding refractive index\n",
+ "a=50 # radius in um\n",
+ "y=1.3 #operating wavelength in um\n",
+ "\n",
+ "# calculations\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "N_A=0.38 \n",
+ "v=(2*math.pi*a*N_A)/y # cut of numbers\n",
+ "M=math.pow(v,2)/2 # number of modes\n",
+ "\n",
+ "print ('%s %.2f'%(\" The cut of numbers = \",v))\n",
+ "print \"\\n The number of modes = \",int(M)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut of numbers = 91.83\n",
+ "\n",
+ " The number of modes = 4216\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example19: PgNo-111"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.53 # core refractive index\n",
+ "n2=1.5 # cladding refractive index\n",
+ "y=1.5 # operating wavelength in um\n",
+ "\n",
+ "# calculation\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "a=(2.405*y)/(2*math.pi*NA)# max radius in um\n",
+ "\n",
+ "print ('%s %.2f %s' %(\" The max core radius = \",a,\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max core radius = 1.90 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example20: PgNo-112"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "a=25 # max radius in um\n",
+ "y=0.8 # operating wavelength in um\n",
+ "NA=0.343 # numerical aperture\n",
+ "v=(2*math.pi*a*NA)/y # v-number\n",
+ "M=math.pow(v,2)/2 #number of modes\n",
+ "\n",
+ "print ('%s %.6f' %(\" The v-number = \",v))\n",
+ "print \"\\n The number of modes = \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The v-number = 67.347893\n",
+ "\n",
+ " The number of modes = 2267\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example21: PgNo-114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.5 #core refractive index\n",
+ "NA=0.38 # numerical aperture\n",
+ "v=75 # v-number\n",
+ "y=1.3 # operating wavelength in um\n",
+ "a=(v*y)/(2*math.pi*NA) # core radius in um\n",
+ "n2=math.sqrt(math.pow(n1,2)-math.pow(NA,2))# cladding refractive index\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The core radius = \",a,\"um\"))\n",
+ "print ('%s %.2f' %(\"\\n The cladding refractive index = \", n2))\n",
+ "print (\"\\n answer in textbook is wrong \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The core radius = 40.84 um\n",
+ "\n",
+ " The cladding refractive index = 1.45\n",
+ "\n",
+ " answer in textbook is wrong \n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example22: PgNo-117"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Initialisation of variables\n",
+ "y=1.2 # operating wavelength in um\n",
+ "w=5 # spot size in um\n",
+ "x=(2*y)/(math.pi*w) # the divergence angle in degree\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.3f %s' %(\" The divergence angle = \",x,\"degree\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The divergence angle = 0.153 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example23: PgNo-119"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.46 # core refractive index\n",
+ "a=4.5 # core radius in um\n",
+ "dl=0.0025 # relative index difference\n",
+ "NA=n1*(math.sqrt(2*dl)) # numerical aperture\n",
+ "v=2.405\n",
+ "y=(2*math.pi*a*NA)/(v) # cut off wavelength in um\n",
+ "\n",
+ "print ('%s %.3f %s' %(\" The cut off wavelength = \",y,\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 1.214 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example24: PgNo-121"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "n1=1.5 # core refractive index\n",
+ "n2=1.47 # cladding refractive index\n",
+ "y1=0.87 # operating wavelength in um\n",
+ "y2=1.5 # operating wavelength in um\n",
+ "a=25.0 # max radius in um\n",
+ "\n",
+ "# Calculations\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "v1=(2*math.pi*a*NA)/y1\n",
+ "v2=(2*math.pi*a*NA)/y2\n",
+ "al=2.0 # parabolic index profile for GRIN\n",
+ "M1=(al/(al+2))*(math.pow(v1,2)/2)# number of modes\n",
+ "M2=(al/(al+2))*(math.pow(v2,2)/2)# number of modes\n",
+ "\n",
+ "# Results\n",
+ "print \" The number of modes at 870 nm = \",int(M1),\"um\"\n",
+ "print \"\\n The number of modes = \",int(M2),\"um\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The number of modes at 870 nm = 726 um\n",
+ "\n",
+ " The number of modes = 244 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example25: PgNo-122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.5 # core refractive index\n",
+ "n2=1.46 # cladding refractive index\n",
+ "v=2.4 # cut off parameter\n",
+ "y=0.85 # operating wavelength in um\n",
+ "\n",
+ "# Calculations\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "a=(v*y)/(2*math.pi*NA)# max radius in um\n",
+ "w=v*a # spot size\n",
+ "x=(2*y)/(3.4*w) # divergence angle in degree\n",
+ "d=50 # distance in meter\n",
+ "w_s=(y*d)/(math.pi*w) # spot size at 50 meter\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The numerical aperture = \",NA,\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The max core radius = \",a,\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The spot size = \",w,\"um\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The divergence angle = \",x,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The spot size at 50 meter = \",w_s,\"m\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The numerical aperture = 0.34 um\n",
+ "\n",
+ " The max core radius = 0.94 um\n",
+ "\n",
+ " The spot size = 2.26 um\n",
+ "\n",
+ " The divergence angle = 0.221 degree\n",
+ "\n",
+ " The spot size at 50 meter = 5.97 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example26: PgNo-124"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.53 # core refractive index\n",
+ "n2=1.50 # cladding refractive index\n",
+ "y=1.2 # wavelength in um\n",
+ "v=2.405\n",
+ "a=(v*y)/(2*math.pi*(math.sqrt(math.pow(n1,2)-math.pow(n2,2)))) #core radius in micrometer\n",
+ "\n",
+ "print ('%s %.3f %s' %(\" The max diameter= \",2*a,\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max diameter= 3.047 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example27: PgNo-127"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Initialisation of variables\n",
+ "n1=1.47 # core refractive index\n",
+ "n2=1.46 # cladding refractive index\n",
+ "y=1.3 # wavelength in um\n",
+ "dl=(n1-n2)/n1 # fractional refractive index diff\n",
+ "\n",
+ "# calculations\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2))\n",
+ "v=2.405\n",
+ "a=(v*y)/(2*math.pi*(math.sqrt(math.pow(n1,2)-math.pow(n2,2))))# largest core radius in micrometer\n",
+ "n_eff=n1-(NA/(2*math.pi*(a/y))) # fractional refractive index\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The largest core radius = \",a,\"um\"))\n",
+ "print ('%s %.2f' %(\"\\n The fractional refractive index= \",n_eff))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The largest core radius = 2.91 um\n",
+ "\n",
+ " The fractional refractive index= 1.46\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example28: PgNo-130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# initialisation of variables\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=1.48 # cladding refractive index\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "a=25 # core radius in um\n",
+ "y=0.85 # wavelength in um\n",
+ "v=(2*math.pi*a*NA)/y #cut off parameter\n",
+ "M=math.pow(v,2)/2 # number of modes\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f' %(\" The cut off parameter = \",v))\n",
+ "print \"\\n The number of modes = \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off parameter = 45.115\n",
+ "\n",
+ " The number of modes = 1017\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example29: PgNo-132"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# initialisation of variables\n",
+ "n1=1.50 # core refractive index\n",
+ "a=25 # core radius in um\n",
+ "y=1.5 # wavelength in um\n",
+ "v=2.405\n",
+ "\n",
+ "# Calculations\n",
+ "NA=(v*y)/(2*math.pi*a) # numerical aperture\n",
+ "D=math.pow((NA/n1),2)/(2) # max value of D\n",
+ "n2=n1-(D*n1) # cladding refractive index\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.6f' %(\" The max value of D = \",D))\n",
+ "print ('%s %.2f' %(\"\\n The cladding refractive index = \",n2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max value of D = 0.000117\n",
+ "\n",
+ " The cladding refractive index = 1.50\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example30: PgNo-133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# variable declaration\n",
+ "n1=1.52 #core refractive index\n",
+ "n2=1.48 #cladding refractive index\n",
+ "a=45 # core radius in um\n",
+ "y=0.85 # wavelength in um\n",
+ "\n",
+ "# Calculations\n",
+ "dl=(n1-n2)/n1 # relative refractive index\n",
+ "x=(math.asin(n2/n1))*(180/math.pi) # critical angle in degree\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) #numerical aperture\n",
+ "a_c=(math.asin(NA))*(180/math.pi) #acceptance angle in degree\n",
+ "a_s=math.pi*(math.pow(n1,2)-math.pow(n2,2))# solid acceptance angle\n",
+ "v=(2*math.pi*a*0.34)/y # normalise v-number\n",
+ "M=math.pow(v,2)/2 # number of guided modes\n",
+ "a1=5 # for single mode step fiber\n",
+ "v1=(2*math.pi*a1*0.34)/y\n",
+ "M1=math.pow(v1,2)/2\n",
+ "R=int(M)-int(M1)# reduction in modes\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f' %(\" The max value of D = \",dl))\n",
+ "print ('%s %.2f %s' %(\"\\n The critical angle = \",x,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The acceptance angle = \",2*a_c,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The solid acceptance angle = \",a_s,\"degree\"))\n",
+ "print ('%s %.2f ' %(\"\\n The numerical aperture = \",NA))\n",
+ "print ('%s %.2f ' %(\"\\n The normalise v-number = \",v))\n",
+ "print \"\\n The number of guided modes = \",int(M)\n",
+ "print \"\\n The reduction in modes = \",R\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max value of D = 0.0263\n",
+ "\n",
+ " The critical angle = 76.83 degree\n",
+ "\n",
+ " The acceptance angle = 40.54 degree\n",
+ "\n",
+ " The solid acceptance angle = 0.38 degree\n",
+ "\n",
+ " The numerical aperture = 0.35 \n",
+ "\n",
+ " The normalise v-number = 113.10 \n",
+ "\n",
+ " The number of guided modes = 6395\n",
+ "\n",
+ " The reduction in modes = 6317\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example31: PgNo-135"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Initialisation of variables\n",
+ "\n",
+ "n1=1.46 #core refractive index\n",
+ "a=45/2 #max radius in um\n",
+ "y=0.85 # operating wavelength in um\n",
+ "NA=0.17 # numerical aperture\n",
+ "v=(2*math.pi*a*NA)/y #normalised frequency\n",
+ "M=math.pow(v,2)/2 # number of modes\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" The normalised frequency = \",v))\n",
+ "print \"\\n The number of modes = \",int(M)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The normalised frequency = 27.65\n",
+ "\n",
+ " The number of modes = 382\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Optical_Fiber_Communication/Chapter4.ipynb b/Optical_Fiber_Communication/Chapter4.ipynb new file mode 100755 index 00000000..5cb4e7c2 --- /dev/null +++ b/Optical_Fiber_Communication/Chapter4.ipynb @@ -0,0 +1,887 @@ +{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:7b1c137849cf93f7c696bb48d79752abb9cdb5dcbbc9af1acedb41baab1b64d4"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4: Transmission Characteristics of Optical Fibers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1: PgNo-138"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Pi=100*math.pow(10,-6) # mean optical power in watt\n",
+ "Po=2*math.pow(10,-6) # output mean power in watt\n",
+ "L=6 # length in km\n",
+ "L1=8 # length in km\n",
+ "asp=10*math.log(Pi/Po)/math.log(10) # signal attenuation in dB\n",
+ "as1=asp/L # signal attenuation per km\n",
+ "Li=as1*L1 # Loss incurred along 8 km\n",
+ "Ls=7 # Loss due to splice in dB\n",
+ "as2=Li+Ls #overall signal attenuation in dB\n",
+ "As2=29.4 #aprox. overall signal attenuation in dB\n",
+ "Pio=math.pow(10,(As2/10)) #i/p o/p power ratio\n",
+ "\n",
+ "#Results\n",
+ "print ('%s %.2f %s' %(\" The signal attenuation = \",asp,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The signal attenuation per km = \",as1,\"dB/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The trgth = \",Li,\"km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The overall signal attenuation = \",as2,\"dB\"))\n",
+ "print ('%s %.2f' %(\"\\n The i/p o/p power ratio = \", Pio))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The signal attenuation = 16.99 dB\n",
+ "\n",
+ " The signal attenuation per km = 2.83 dB/km\n",
+ "\n",
+ " The trgth = 22.65 km\n",
+ "\n",
+ " The overall signal attenuation = 29.65 dB\n",
+ "\n",
+ " The i/p o/p power ratio = 870.96\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2: PgNo-142"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Pi=1.5*math.pow(10,-3) # mean optical power in watt\n",
+ "Po=2*math.pow(10,-6) # output mean power in watt\n",
+ "a=0.5 # dB/km\n",
+ "L=(10*math.log(Pi/Po)/math.log(10))/a # max possible link Length in km\n",
+ "\n",
+ "print ('%s %.3f %s' %(\" The max possible link Length = \",L,\"km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max possible link Length = 57.501 km\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3: PgNo-147"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable Declaration\n",
+ "n=1.46 # core refractive index\n",
+ "p=0.286 # photoelastic coeff\n",
+ "b=7*math.pow(10,-11) # isothermal compressibility\n",
+ "k=1.381*math.pow(10,-23) # boltzmann's constant\n",
+ "tf=1400 # fictive temperature in k\n",
+ "y1=0.85*math.pow(10,-6) # wavelength in m\n",
+ "\n",
+ "# Calculations\n",
+ "yr=((8*math.pow(math.pi,3)*math.pow(n,8)*math.pow(p,2)*(b*k*tf)))/(3*math.pow(y1,4))\n",
+ "akm=pow(math.e,(-yr*math.pow(10,3)))\n",
+ "at=10*math.log(1/akm)/math.log(10)# attenuation at y=0.85 um\n",
+ "y2=1.55*math.pow(10,-6) # wavelength in m\n",
+ "yr1=((8*math.pow(math.pi,3)*math.pow(n,8)*math.pow(p,2)*(b*k*tf)))/(3*math.pow(y2,4))\n",
+ "akm1=math.pow(math.e,(-yr1*math.pow(10,3)))\n",
+ "at1=10*math.log(1/akm1)/math.log(10)# attenuation at y=1.55 um\n",
+ "y3=1.30*math.pow(10,-6) # wavelength in m\n",
+ "yr2=((8*math.pow(math.pi,3)*math.pow(n,8)*math.pow(p,2)*(b*k*tf)))/(3*math.pow(y3,4))\n",
+ "akm2=math.pow(math.e,(-yr2*math.pow(10,3)))\n",
+ "at2=10*math.log(1/akm2)/math.log(10)# attenuation at y=1.30 um\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The Loss of an optical fiber = \",at,\"dB/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The Loss of an optical fiber = \",at1,\"dB/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The Loss of an optical fiber = \",at2,\"dB/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Loss of an optical fiber = 1.57 dB/km\n",
+ "\n",
+ " The Loss of an optical fiber = 0.14 dB/km\n",
+ "\n",
+ " The Loss of an optical fiber = 0.29 dB/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4: PgNo-149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "d=6 # core diameter in m\n",
+ "y=1.55 # wavelength in m\n",
+ "a=0.5 # attenuation in dB/km\n",
+ "v=0.4\n",
+ "Pb=4.4*math.pow(10,-3)*math.pow(d,2)*math.pow(y,2)*a*v # threshold power for SBS\n",
+ "Pr=5.9*math.pow(10,-2)*math.pow(d,2)*y*a # threshold power for SRS\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The threshold power for SBS = \",Pb*pow(10,3),\"mw\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The threshold power for SRS = \",Pr,\"W\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The threshold power for SBS = 76.11 mw\n",
+ "\n",
+ " The threshold power for SRS = 1.65 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5: PgNo-153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.46 # core refractive index\n",
+ "dl=0.03 # relative refractive index difference\n",
+ "y=0.85*math.pow(10,-6) #operating wavelength in m\n",
+ "a=4*math.pow(10,-6) # core radous in m\n",
+ "\n",
+ "# Calculations\n",
+ "n2=math.sqrt(math.pow(n1,2)-2*dl*math.pow(n1,2)) #cladding refractive index\n",
+ "Rc=(3*math.pow(n1,2)*y)/(4*math.pi*math.pow((math.pow(n1,2)-math.pow(n2,2)),1.5)) # critical radius of curvature for multimode fiber\n",
+ "Dl=0.003 # relative refractive index difference\n",
+ "N2=math.sqrt(math.pow(n1,2)-2*Dl*math.pow(n1,2))\n",
+ "yc=math.pow(2*math.pi*a*n1*(2*Dl),0.5)/2.405 # cut off wavelength in m\n",
+ "y1=1.55*math.pow(10,-6) # operating wavelength in m\n",
+ "Rcs=(20*y1*math.pow((2.748-0.996*(y1/yc)),-3))/math.pow((0.005),1.5) # critical radius of curvature for a single mode fiber\n",
+ "\n",
+ "# Results\n",
+ "print '%s %.4f %s' %(\" The critical radius of curvature for multimode fiber = \",Rc*math.pow(10,6),\"um\")\n",
+ "print '%s %.4f %s' %(\"\\n The critical radius of curvature for a single mode fiber = \",Rcs*math.pow(10,3),\"um\")\n",
+ "print \"\\nThe answer is wrong in the textbook for single mode fiber\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The critical radius of curvature for multimode fiber = 9.4569 um\n",
+ "\n",
+ " The critical radius of curvature for a single mode fiber = 4.2620 um\n",
+ "\n",
+ "The answer is wrong in the textbook for single mode fiber\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6: PgNo-157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "x=2.0 # index profile\n",
+ "dl=0.0126 #index difference\n",
+ "a=(85.0/2.0)*math.pow(10,-6) # core radius\n",
+ "R=2.0*math.pow(10,-3) # curve of radius\n",
+ "n1=1.45 # core refractive index\n",
+ "k=6.28\n",
+ "\n",
+ "# Calculations\n",
+ "y=850.0*math.pow(10,-9) # wavelength in m\n",
+ "A=(x+2)/(2*x*dl)\n",
+ "B=(2*a/R)\n",
+ "C=math.pow((3*y/(2*k*R*n1)),(2.0/3.0))\n",
+ "D=B+C\n",
+ "E=A*D\n",
+ "F=1-E\n",
+ "Lm=-10*math.log(-F)/math.log(10) # macrobend loss in dB\n",
+ "print ('%s %.2f %s' %(\" The macrobend loss = \",Lm,\"dB\"))\n",
+ "print (\"\\n The answer is wrong in the textbook \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The macrobend loss = -3.99 dB\n",
+ "\n",
+ " The answer is wrong in the textbook \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7: PgNO-160"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Pi=15 # optical power in uw\n",
+ "Po=7 # ouput power in uw\n",
+ "L=0.15 # length in km\n",
+ "Ls=(10*math.log(Pi/Po)/math.log(10))/L # Loss of an optical fiber in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The Loss of an optical fiber = \",Ls,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Loss of an optical fiber = 20.07 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8: PgNo-163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Pi=200*math.pow(10,-6) # average optical power in watt\n",
+ "Po=5*math.pow(10,-6) # average output power in watt\n",
+ "L=20 # in km\n",
+ "L1=12 # in km\n",
+ "ns=5 # number of attenuation\n",
+ "a=0.9 # attenuation in dB\n",
+ "\n",
+ "# Calculations\n",
+ "sa=10*math.log(Pi/Po)/math.log(10) # signal attenuation\n",
+ "sp=sa/L # signal attenuation per km\n",
+ "sn=sp*L1 # signal attenuation for 12 km\n",
+ "sn1=ns*a # attenuation in dB\n",
+ "sn2=sn+sn1 # overall signal attenuation in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The signal attenuation per km = \",sp,\"dB/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The overall signal attenuation= \",sn2,\"dB \"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The signal attenuation per km = 0.80 dB/km\n",
+ "\n",
+ " The overall signal attenuation= 14.11 dB \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9: PgNo-166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Pi=100*math.pow(10,-6) # average optical power in watt\n",
+ "Po=4*math.pow(10,-6) # average output power in watt\n",
+ "L=6 # in km\n",
+ "L1=10 # in km\n",
+ "\n",
+ "# Calculations\n",
+ "sa=10*math.log(Pi/Po)/math.log(10) # signal attenuation\n",
+ "sp=sa/L # signal attenuation per km\n",
+ "sn=sp*L1 # signal attenuation for 12 km\n",
+ "sn1=sn+9 # overall signal attenuation in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The signal attenuation= \",sa,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The signal attenuation per km = \",sp,\"dB/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The overall signal attenuation= \",sn1,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The signal attenuation= 13.98 dB\n",
+ "\n",
+ " The signal attenuation per km = 2.33 dB/km\n",
+ "\n",
+ " The overall signal attenuation= 32.30 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10: PgNo-167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "Pi=20*math.pow(10,-6) #average optical power in watt\n",
+ "Po=7.5*math.pow(10,-6) # average output power in watt\n",
+ "sl=10*math.log(Pi/Po)/math.log(10) # signal Loss in dB\n",
+ "L=15 #in km\n",
+ "L1=30 # in km\n",
+ "ns=29 # number of attenuation\n",
+ "sp=sl/L # signal Loss per km\n",
+ "sn=sp*L1 # signal attenuation for 30 km\n",
+ "sn1=sn+ns # overall signal attenuation in dB\n",
+ "i_o=math.pow(10,(sn1/20)) # input output power ratio\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The signal Loss = \",sl,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The signal Loss per km= \",sp,\"dB/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The overall signal attenuation= \",sn1,\"dB\"))\n",
+ "print ('%s %.2f' %(\"\\n The input output power ratio= \",i_o))\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The signal Loss = 4.26 dB\n",
+ "\n",
+ " The signal Loss per km= 0.28 dB/km\n",
+ "\n",
+ " The overall signal attenuation= 37.52 dB\n",
+ "\n",
+ " The input output power ratio= 75.16\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11: PgNo-171"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Tf=1400 # temperature in k\n",
+ "Bc=7*math.pow(10,-11) # in m^2/N\n",
+ "n=1.38\n",
+ "P=0.29 # Photoelastic coefficient\n",
+ "y=0.9*math.pow(10,-6) # wavelength in m\n",
+ "K=1.38*math.pow(10,-23) # boltzman's constant\n",
+ "\n",
+ "# Calculations\n",
+ "Rrs=((8*math.pow(math.pi,3)*math.pow(n,8)*math.pow(P,2)*(Bc*Tf*K))/(3*math.pow(y,4)))\n",
+ "Rrs1=Rrs/math.pow(10,-3) # per km\n",
+ "Lkm=math.pow(math.e,(-Rrs1)) # transmission loss facter\n",
+ "At=10*math.log(1/Lkm)/math.log(10) # Attenuation in dB/km\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.2f %s' %(\" The Attenuation= \",At,\"dB/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Attenuation= 0.82 dB/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12: PgNo-172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "y=1.35 # wavelength in um\n",
+ "d=5 # core diamater in um\n",
+ "a=0.75 # attenuation in dB/km\n",
+ "v=0.45 # bandwidth in GHz\n",
+ "\n",
+ "# calculations\n",
+ "Pb=4.4*math.pow(10,-3)*math.pow(d,2)*math.pow(y,2)*(a*v) #threshold optical power for sbs\n",
+ "Pr=5.9*math.pow(10,-2)*math.pow(d,2)*(y)*(a) #threshold optical power for sbr\n",
+ "Pbr=Pb/Pr # the ratio of threshold power level\n",
+ "print ('%s %.2f %s' %(\" The ratio of threshold power level= \",Pbr*100,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The ratio of threshold power level= 4.53 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13: PgNo-175"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.5 #core refractive index\n",
+ "y=0.85*math.pow(10,-6) # wavelength in m\n",
+ "dl=0.024 # relative refractive index difference\n",
+ "N2=math.sqrt(math.pow(n1,2)-2*dl*math.pow(n1,2)) # cladding refractive index\n",
+ "n2=1.46\n",
+ "Rcs=(3*math.pow(n1,2)*y)/((4*math.pi)*math.pow((math.pow(n1,2)-math.pow(n2,2)),1.5)) # critical radius of curvature for multimode fiber\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The critical radius of curvature = \",Rcs*pow(10,6),\"um\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The critical radius of curvature = 11.207 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14: PgNo-177"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.45 # core refractive index\n",
+ "y=1.5*math.pow(10,-6) # wavelength in m\n",
+ "dl=0.03 # relative refractive index difference\n",
+ "a=5.0*math.pow(10,-6) # core radius\n",
+ "n2=math.sqrt(math.pow(n1,2)-2*dl*math.pow(n1,2)) # cladding refractive index\n",
+ "yc=(2*math.pi*a*n1*math.sqrt(2*dl))/(2.405)\n",
+ "Rcs=(20.0*y*(2.748-0.996*math.pow((y/yc),-3)))/math.pow((math.pow(n1,2)-math.pow(n2,2)),1.5)#critical radius of curvature for single mode fiber\n",
+ "Rcs1=(3*math.pow(n1,2)*y)/((4*math.pi)*math.pow(math.pow(n1,2)-math.pow(n2,2),1.5)) # critical radius of curvature for multimode fiber\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The critical radius of curvature for single mode fiber = \",Rcs*pow(10,6),\"um\"))\n",
+ "print (\"\\n The answer is wrong in the textbook \")\n",
+ "print ('%s %.2f %s' %(\"\\n The critical radius of curvature for multimode fiber = \",Rcs1*pow(10,6),\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The critical radius of curvature for single mode fiber = -17893.87 um\n",
+ "\n",
+ " The answer is wrong in the textbook \n",
+ "\n",
+ " The critical radius of curvature for multimode fiber = 16.80 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15: PgNo-179"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "L=500.0/1000.0 # distance in km\n",
+ "Pio=(1/(1-0.75))\n",
+ "Ls=10*math.log(Pio)/math.log(10)/L # Loss in dB/km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The Loss = \",Ls,\"dB/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Loss = 12.041 dB/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16: PgNo-181"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "L=5 # length in km\n",
+ "a=0.5 # attenuaion loss in dB/km\n",
+ "# Calculations\n",
+ "Po=math.pow(10,-3)*math.pow(10,(-(a*L)/10)) # power level in mW\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The power level = \",Po*pow(10,3),\"mW\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The power level = 0.562 mW\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17: PgNo-186"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "L=1 #distance in km\n",
+ "Pio=(1/(1-0.40))\n",
+ "# Calculations\n",
+ "Ls=10*math.log(Pio)/math.log(10)/L # Loss in dB/km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The Loss = \",Ls,\"dB/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Loss = 2.218 dB/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18: PgNo-188"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "Pi=1*math.pow(10,-3) # input power in watt\n",
+ "Po=0.75*math.pow(10,-3) # output power in watt\n",
+ "a=0.5 #in dB/km\n",
+ "L=(10*math.log(Pi/Po)/math.log(10))/a # transmission length in km\n",
+ "\n",
+ "print ('%s %.1f %s'%(\" The transmission length = \",L,\"km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The transmission length = 2.5 km\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19: PgNo-189"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "y=1300.0*math.pow(10,-9) # wavelemgth in m\n",
+ "yc=1200.0*math.pow(10,-9) # cut off wavelength in m\n",
+ "rc=5.0*math.pow(10,-6) #core diameter in m\n",
+ "n=1.5 #refractive index\n",
+ "R=1.2/100.0 # curve of radius in m\n",
+ "\n",
+ "# Calculations\n",
+ "dmf=2*rc*((0.65)+0.434*math.pow((y/yc),1.5)+0.0149*math.pow((y/yc),6)) # mode field diameter\n",
+ "K=(2.0*math.pi)/y\n",
+ "Lm=-10*math.log(-1*(1-math.pow(K,4)*math.pow(n,4)*math.pow(((3.95*math.pow(10,-6))/(8*math.pow(R,2))),6)))/math.log(10) # macrobend loss\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The mode field diameter = \",dmf*pow(10,6),\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The macrobend loss = \",Lm,\"dB\"))\n",
+ "print (\"\\n The answer is wrong in the textbook\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The mode field diameter = 11.63 um\n",
+ "\n",
+ " The macrobend loss = -126.52 dB\n",
+ "\n",
+ " The answer is wrong in the textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20: PgNO-191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable initialisation\n",
+ "Pi=10*math.pow(10,-3) # input power in watt\n",
+ "Po=8*math.pow(10,-3) # output power in watt\n",
+ "L=0.150 # length in km\n",
+ "Ls=(10*math.log(Po/Pi)/math.log(10))/L\n",
+ "\n",
+ "print ('%s %.2f %s' %(\" The transmission length = \",Ls,\"km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The transmission length = -6.46 km\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Optical_Fiber_Communication/Chapter4_1.ipynb b/Optical_Fiber_Communication/Chapter4_1.ipynb new file mode 100755 index 00000000..5cb4e7c2 --- /dev/null +++ b/Optical_Fiber_Communication/Chapter4_1.ipynb @@ -0,0 +1,887 @@ +{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:7b1c137849cf93f7c696bb48d79752abb9cdb5dcbbc9af1acedb41baab1b64d4"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4: Transmission Characteristics of Optical Fibers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1: PgNo-138"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Pi=100*math.pow(10,-6) # mean optical power in watt\n",
+ "Po=2*math.pow(10,-6) # output mean power in watt\n",
+ "L=6 # length in km\n",
+ "L1=8 # length in km\n",
+ "asp=10*math.log(Pi/Po)/math.log(10) # signal attenuation in dB\n",
+ "as1=asp/L # signal attenuation per km\n",
+ "Li=as1*L1 # Loss incurred along 8 km\n",
+ "Ls=7 # Loss due to splice in dB\n",
+ "as2=Li+Ls #overall signal attenuation in dB\n",
+ "As2=29.4 #aprox. overall signal attenuation in dB\n",
+ "Pio=math.pow(10,(As2/10)) #i/p o/p power ratio\n",
+ "\n",
+ "#Results\n",
+ "print ('%s %.2f %s' %(\" The signal attenuation = \",asp,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The signal attenuation per km = \",as1,\"dB/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The trgth = \",Li,\"km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The overall signal attenuation = \",as2,\"dB\"))\n",
+ "print ('%s %.2f' %(\"\\n The i/p o/p power ratio = \", Pio))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The signal attenuation = 16.99 dB\n",
+ "\n",
+ " The signal attenuation per km = 2.83 dB/km\n",
+ "\n",
+ " The trgth = 22.65 km\n",
+ "\n",
+ " The overall signal attenuation = 29.65 dB\n",
+ "\n",
+ " The i/p o/p power ratio = 870.96\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2: PgNo-142"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Pi=1.5*math.pow(10,-3) # mean optical power in watt\n",
+ "Po=2*math.pow(10,-6) # output mean power in watt\n",
+ "a=0.5 # dB/km\n",
+ "L=(10*math.log(Pi/Po)/math.log(10))/a # max possible link Length in km\n",
+ "\n",
+ "print ('%s %.3f %s' %(\" The max possible link Length = \",L,\"km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max possible link Length = 57.501 km\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3: PgNo-147"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable Declaration\n",
+ "n=1.46 # core refractive index\n",
+ "p=0.286 # photoelastic coeff\n",
+ "b=7*math.pow(10,-11) # isothermal compressibility\n",
+ "k=1.381*math.pow(10,-23) # boltzmann's constant\n",
+ "tf=1400 # fictive temperature in k\n",
+ "y1=0.85*math.pow(10,-6) # wavelength in m\n",
+ "\n",
+ "# Calculations\n",
+ "yr=((8*math.pow(math.pi,3)*math.pow(n,8)*math.pow(p,2)*(b*k*tf)))/(3*math.pow(y1,4))\n",
+ "akm=pow(math.e,(-yr*math.pow(10,3)))\n",
+ "at=10*math.log(1/akm)/math.log(10)# attenuation at y=0.85 um\n",
+ "y2=1.55*math.pow(10,-6) # wavelength in m\n",
+ "yr1=((8*math.pow(math.pi,3)*math.pow(n,8)*math.pow(p,2)*(b*k*tf)))/(3*math.pow(y2,4))\n",
+ "akm1=math.pow(math.e,(-yr1*math.pow(10,3)))\n",
+ "at1=10*math.log(1/akm1)/math.log(10)# attenuation at y=1.55 um\n",
+ "y3=1.30*math.pow(10,-6) # wavelength in m\n",
+ "yr2=((8*math.pow(math.pi,3)*math.pow(n,8)*math.pow(p,2)*(b*k*tf)))/(3*math.pow(y3,4))\n",
+ "akm2=math.pow(math.e,(-yr2*math.pow(10,3)))\n",
+ "at2=10*math.log(1/akm2)/math.log(10)# attenuation at y=1.30 um\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The Loss of an optical fiber = \",at,\"dB/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The Loss of an optical fiber = \",at1,\"dB/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The Loss of an optical fiber = \",at2,\"dB/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Loss of an optical fiber = 1.57 dB/km\n",
+ "\n",
+ " The Loss of an optical fiber = 0.14 dB/km\n",
+ "\n",
+ " The Loss of an optical fiber = 0.29 dB/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4: PgNo-149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "d=6 # core diameter in m\n",
+ "y=1.55 # wavelength in m\n",
+ "a=0.5 # attenuation in dB/km\n",
+ "v=0.4\n",
+ "Pb=4.4*math.pow(10,-3)*math.pow(d,2)*math.pow(y,2)*a*v # threshold power for SBS\n",
+ "Pr=5.9*math.pow(10,-2)*math.pow(d,2)*y*a # threshold power for SRS\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The threshold power for SBS = \",Pb*pow(10,3),\"mw\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The threshold power for SRS = \",Pr,\"W\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The threshold power for SBS = 76.11 mw\n",
+ "\n",
+ " The threshold power for SRS = 1.65 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5: PgNo-153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.46 # core refractive index\n",
+ "dl=0.03 # relative refractive index difference\n",
+ "y=0.85*math.pow(10,-6) #operating wavelength in m\n",
+ "a=4*math.pow(10,-6) # core radous in m\n",
+ "\n",
+ "# Calculations\n",
+ "n2=math.sqrt(math.pow(n1,2)-2*dl*math.pow(n1,2)) #cladding refractive index\n",
+ "Rc=(3*math.pow(n1,2)*y)/(4*math.pi*math.pow((math.pow(n1,2)-math.pow(n2,2)),1.5)) # critical radius of curvature for multimode fiber\n",
+ "Dl=0.003 # relative refractive index difference\n",
+ "N2=math.sqrt(math.pow(n1,2)-2*Dl*math.pow(n1,2))\n",
+ "yc=math.pow(2*math.pi*a*n1*(2*Dl),0.5)/2.405 # cut off wavelength in m\n",
+ "y1=1.55*math.pow(10,-6) # operating wavelength in m\n",
+ "Rcs=(20*y1*math.pow((2.748-0.996*(y1/yc)),-3))/math.pow((0.005),1.5) # critical radius of curvature for a single mode fiber\n",
+ "\n",
+ "# Results\n",
+ "print '%s %.4f %s' %(\" The critical radius of curvature for multimode fiber = \",Rc*math.pow(10,6),\"um\")\n",
+ "print '%s %.4f %s' %(\"\\n The critical radius of curvature for a single mode fiber = \",Rcs*math.pow(10,3),\"um\")\n",
+ "print \"\\nThe answer is wrong in the textbook for single mode fiber\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The critical radius of curvature for multimode fiber = 9.4569 um\n",
+ "\n",
+ " The critical radius of curvature for a single mode fiber = 4.2620 um\n",
+ "\n",
+ "The answer is wrong in the textbook for single mode fiber\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6: PgNo-157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "x=2.0 # index profile\n",
+ "dl=0.0126 #index difference\n",
+ "a=(85.0/2.0)*math.pow(10,-6) # core radius\n",
+ "R=2.0*math.pow(10,-3) # curve of radius\n",
+ "n1=1.45 # core refractive index\n",
+ "k=6.28\n",
+ "\n",
+ "# Calculations\n",
+ "y=850.0*math.pow(10,-9) # wavelength in m\n",
+ "A=(x+2)/(2*x*dl)\n",
+ "B=(2*a/R)\n",
+ "C=math.pow((3*y/(2*k*R*n1)),(2.0/3.0))\n",
+ "D=B+C\n",
+ "E=A*D\n",
+ "F=1-E\n",
+ "Lm=-10*math.log(-F)/math.log(10) # macrobend loss in dB\n",
+ "print ('%s %.2f %s' %(\" The macrobend loss = \",Lm,\"dB\"))\n",
+ "print (\"\\n The answer is wrong in the textbook \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The macrobend loss = -3.99 dB\n",
+ "\n",
+ " The answer is wrong in the textbook \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7: PgNO-160"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Pi=15 # optical power in uw\n",
+ "Po=7 # ouput power in uw\n",
+ "L=0.15 # length in km\n",
+ "Ls=(10*math.log(Pi/Po)/math.log(10))/L # Loss of an optical fiber in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The Loss of an optical fiber = \",Ls,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Loss of an optical fiber = 20.07 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8: PgNo-163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Pi=200*math.pow(10,-6) # average optical power in watt\n",
+ "Po=5*math.pow(10,-6) # average output power in watt\n",
+ "L=20 # in km\n",
+ "L1=12 # in km\n",
+ "ns=5 # number of attenuation\n",
+ "a=0.9 # attenuation in dB\n",
+ "\n",
+ "# Calculations\n",
+ "sa=10*math.log(Pi/Po)/math.log(10) # signal attenuation\n",
+ "sp=sa/L # signal attenuation per km\n",
+ "sn=sp*L1 # signal attenuation for 12 km\n",
+ "sn1=ns*a # attenuation in dB\n",
+ "sn2=sn+sn1 # overall signal attenuation in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The signal attenuation per km = \",sp,\"dB/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The overall signal attenuation= \",sn2,\"dB \"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The signal attenuation per km = 0.80 dB/km\n",
+ "\n",
+ " The overall signal attenuation= 14.11 dB \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9: PgNo-166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Pi=100*math.pow(10,-6) # average optical power in watt\n",
+ "Po=4*math.pow(10,-6) # average output power in watt\n",
+ "L=6 # in km\n",
+ "L1=10 # in km\n",
+ "\n",
+ "# Calculations\n",
+ "sa=10*math.log(Pi/Po)/math.log(10) # signal attenuation\n",
+ "sp=sa/L # signal attenuation per km\n",
+ "sn=sp*L1 # signal attenuation for 12 km\n",
+ "sn1=sn+9 # overall signal attenuation in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The signal attenuation= \",sa,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The signal attenuation per km = \",sp,\"dB/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The overall signal attenuation= \",sn1,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The signal attenuation= 13.98 dB\n",
+ "\n",
+ " The signal attenuation per km = 2.33 dB/km\n",
+ "\n",
+ " The overall signal attenuation= 32.30 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10: PgNo-167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "Pi=20*math.pow(10,-6) #average optical power in watt\n",
+ "Po=7.5*math.pow(10,-6) # average output power in watt\n",
+ "sl=10*math.log(Pi/Po)/math.log(10) # signal Loss in dB\n",
+ "L=15 #in km\n",
+ "L1=30 # in km\n",
+ "ns=29 # number of attenuation\n",
+ "sp=sl/L # signal Loss per km\n",
+ "sn=sp*L1 # signal attenuation for 30 km\n",
+ "sn1=sn+ns # overall signal attenuation in dB\n",
+ "i_o=math.pow(10,(sn1/20)) # input output power ratio\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The signal Loss = \",sl,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The signal Loss per km= \",sp,\"dB/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The overall signal attenuation= \",sn1,\"dB\"))\n",
+ "print ('%s %.2f' %(\"\\n The input output power ratio= \",i_o))\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The signal Loss = 4.26 dB\n",
+ "\n",
+ " The signal Loss per km= 0.28 dB/km\n",
+ "\n",
+ " The overall signal attenuation= 37.52 dB\n",
+ "\n",
+ " The input output power ratio= 75.16\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11: PgNo-171"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Tf=1400 # temperature in k\n",
+ "Bc=7*math.pow(10,-11) # in m^2/N\n",
+ "n=1.38\n",
+ "P=0.29 # Photoelastic coefficient\n",
+ "y=0.9*math.pow(10,-6) # wavelength in m\n",
+ "K=1.38*math.pow(10,-23) # boltzman's constant\n",
+ "\n",
+ "# Calculations\n",
+ "Rrs=((8*math.pow(math.pi,3)*math.pow(n,8)*math.pow(P,2)*(Bc*Tf*K))/(3*math.pow(y,4)))\n",
+ "Rrs1=Rrs/math.pow(10,-3) # per km\n",
+ "Lkm=math.pow(math.e,(-Rrs1)) # transmission loss facter\n",
+ "At=10*math.log(1/Lkm)/math.log(10) # Attenuation in dB/km\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.2f %s' %(\" The Attenuation= \",At,\"dB/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Attenuation= 0.82 dB/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12: PgNo-172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "y=1.35 # wavelength in um\n",
+ "d=5 # core diamater in um\n",
+ "a=0.75 # attenuation in dB/km\n",
+ "v=0.45 # bandwidth in GHz\n",
+ "\n",
+ "# calculations\n",
+ "Pb=4.4*math.pow(10,-3)*math.pow(d,2)*math.pow(y,2)*(a*v) #threshold optical power for sbs\n",
+ "Pr=5.9*math.pow(10,-2)*math.pow(d,2)*(y)*(a) #threshold optical power for sbr\n",
+ "Pbr=Pb/Pr # the ratio of threshold power level\n",
+ "print ('%s %.2f %s' %(\" The ratio of threshold power level= \",Pbr*100,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The ratio of threshold power level= 4.53 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13: PgNo-175"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.5 #core refractive index\n",
+ "y=0.85*math.pow(10,-6) # wavelength in m\n",
+ "dl=0.024 # relative refractive index difference\n",
+ "N2=math.sqrt(math.pow(n1,2)-2*dl*math.pow(n1,2)) # cladding refractive index\n",
+ "n2=1.46\n",
+ "Rcs=(3*math.pow(n1,2)*y)/((4*math.pi)*math.pow((math.pow(n1,2)-math.pow(n2,2)),1.5)) # critical radius of curvature for multimode fiber\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The critical radius of curvature = \",Rcs*pow(10,6),\"um\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The critical radius of curvature = 11.207 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14: PgNo-177"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.45 # core refractive index\n",
+ "y=1.5*math.pow(10,-6) # wavelength in m\n",
+ "dl=0.03 # relative refractive index difference\n",
+ "a=5.0*math.pow(10,-6) # core radius\n",
+ "n2=math.sqrt(math.pow(n1,2)-2*dl*math.pow(n1,2)) # cladding refractive index\n",
+ "yc=(2*math.pi*a*n1*math.sqrt(2*dl))/(2.405)\n",
+ "Rcs=(20.0*y*(2.748-0.996*math.pow((y/yc),-3)))/math.pow((math.pow(n1,2)-math.pow(n2,2)),1.5)#critical radius of curvature for single mode fiber\n",
+ "Rcs1=(3*math.pow(n1,2)*y)/((4*math.pi)*math.pow(math.pow(n1,2)-math.pow(n2,2),1.5)) # critical radius of curvature for multimode fiber\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The critical radius of curvature for single mode fiber = \",Rcs*pow(10,6),\"um\"))\n",
+ "print (\"\\n The answer is wrong in the textbook \")\n",
+ "print ('%s %.2f %s' %(\"\\n The critical radius of curvature for multimode fiber = \",Rcs1*pow(10,6),\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The critical radius of curvature for single mode fiber = -17893.87 um\n",
+ "\n",
+ " The answer is wrong in the textbook \n",
+ "\n",
+ " The critical radius of curvature for multimode fiber = 16.80 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15: PgNo-179"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "L=500.0/1000.0 # distance in km\n",
+ "Pio=(1/(1-0.75))\n",
+ "Ls=10*math.log(Pio)/math.log(10)/L # Loss in dB/km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The Loss = \",Ls,\"dB/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Loss = 12.041 dB/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16: PgNo-181"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "L=5 # length in km\n",
+ "a=0.5 # attenuaion loss in dB/km\n",
+ "# Calculations\n",
+ "Po=math.pow(10,-3)*math.pow(10,(-(a*L)/10)) # power level in mW\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The power level = \",Po*pow(10,3),\"mW\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The power level = 0.562 mW\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17: PgNo-186"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "L=1 #distance in km\n",
+ "Pio=(1/(1-0.40))\n",
+ "# Calculations\n",
+ "Ls=10*math.log(Pio)/math.log(10)/L # Loss in dB/km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The Loss = \",Ls,\"dB/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Loss = 2.218 dB/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18: PgNo-188"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "Pi=1*math.pow(10,-3) # input power in watt\n",
+ "Po=0.75*math.pow(10,-3) # output power in watt\n",
+ "a=0.5 #in dB/km\n",
+ "L=(10*math.log(Pi/Po)/math.log(10))/a # transmission length in km\n",
+ "\n",
+ "print ('%s %.1f %s'%(\" The transmission length = \",L,\"km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The transmission length = 2.5 km\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19: PgNo-189"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "y=1300.0*math.pow(10,-9) # wavelemgth in m\n",
+ "yc=1200.0*math.pow(10,-9) # cut off wavelength in m\n",
+ "rc=5.0*math.pow(10,-6) #core diameter in m\n",
+ "n=1.5 #refractive index\n",
+ "R=1.2/100.0 # curve of radius in m\n",
+ "\n",
+ "# Calculations\n",
+ "dmf=2*rc*((0.65)+0.434*math.pow((y/yc),1.5)+0.0149*math.pow((y/yc),6)) # mode field diameter\n",
+ "K=(2.0*math.pi)/y\n",
+ "Lm=-10*math.log(-1*(1-math.pow(K,4)*math.pow(n,4)*math.pow(((3.95*math.pow(10,-6))/(8*math.pow(R,2))),6)))/math.log(10) # macrobend loss\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The mode field diameter = \",dmf*pow(10,6),\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The macrobend loss = \",Lm,\"dB\"))\n",
+ "print (\"\\n The answer is wrong in the textbook\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The mode field diameter = 11.63 um\n",
+ "\n",
+ " The macrobend loss = -126.52 dB\n",
+ "\n",
+ " The answer is wrong in the textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20: PgNO-191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable initialisation\n",
+ "Pi=10*math.pow(10,-3) # input power in watt\n",
+ "Po=8*math.pow(10,-3) # output power in watt\n",
+ "L=0.150 # length in km\n",
+ "Ls=(10*math.log(Po/Pi)/math.log(10))/L\n",
+ "\n",
+ "print ('%s %.2f %s' %(\" The transmission length = \",Ls,\"km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The transmission length = -6.46 km\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Optical_Fiber_Communication/Chapter5.ipynb b/Optical_Fiber_Communication/Chapter5.ipynb new file mode 100755 index 00000000..d4366624 --- /dev/null +++ b/Optical_Fiber_Communication/Chapter5.ipynb @@ -0,0 +1,1476 @@ +{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:9df1a39eaf45bb37d3874de747aedcb050a5a7704427c92544b1342299e9f172"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5 : Optical Sources Laser"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1: PgNo-193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "t=0.1*math.pow(10,-6) # pulse broading in sec\n",
+ "d=12 # disance in km\n",
+ "B=1/(2*t) # max bandwidth MHz\n",
+ "\n",
+ "# Calculations\n",
+ "ds=t/d #dispersion in ns/km\n",
+ "bl=B*d # bandwidth length product\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.1f %s' %(\" The max bandwidth = \",B/pow(10,6),\"MHz\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The dispersion = \",ds*pow(10,9),\"ns/km\"))\n",
+ "print ('%s %.1f %s' %(\"\\n bandwidth length product = \",bl/pow(10,6),\"MHz km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max bandwidth = 5.0 MHz\n",
+ "\n",
+ " The dispersion = 8.333 ns/km\n",
+ "\n",
+ " bandwidth length product = 60.0 MHz km\n"
+ ]
+ }
+ ],
+ "prompt_number": 65
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2: PgNo-194"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variable initialisation\n",
+ "t=0.1*math.pow(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",
+ "\n",
+ "# Results\n",
+ "print ('%s %.1f %s' %(\" The max bandwidth = \",B/pow(10,6),\"MHz\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The dispersion = \",ds*pow(10,9),\"ns/km\"))\n",
+ "print ('%s %.1f %s' %(\"\\n bandwidth length product = \",bl/pow(10,6),\"MHz km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max bandwidth = 5.0 MHz\n",
+ "\n",
+ " The dispersion = 6.667 ns/km\n",
+ "\n",
+ " bandwidth length product = 75.0 MHz km\n"
+ ]
+ }
+ ],
+ "prompt_number": 66
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3: PgNo-197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.465 # core refractive index\n",
+ "n2=1.45 #cladding refractive index\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "Mp=math.pow(NA,2)/(2*n1*c) # multipath pulse broadening in ns/km\n",
+ "bl=(1/math.pow(NA,2))*(2*n1*c) # bandwidth length product in GHz km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" The numerical aperture = \", NA))\n",
+ "print ('%s %.2f %s' %(\"\\n The multipath pulse broadening = \",Mp*pow(10,9),\"ns/km\"))\n",
+ "print ('%s %.1f %s' %(\"\\n The bandwidth length product = \",bl/pow(10,9),\"GHz km\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The numerical aperture = 0.21\n",
+ "\n",
+ " The multipath pulse broadening = 0.05 ns/km\n",
+ "\n",
+ " The bandwidth length product = 20.1 GHz km\n"
+ ]
+ }
+ ],
+ "prompt_number": 67
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4: PgNo-199"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "ds=0.020 # material dispersion\n",
+ "c=3*math.pow(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",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The material dispersion parameter = \",M*math.pow(10,12),\"ps/nm/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The rms pulse broadening = \",rm*math.pow(10,9),\"ns/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The material dispersion parameter = 51.28 ps/nm/km\n",
+ "\n",
+ " The rms pulse broadening = 0.31 ns/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 68
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5: PgNo-201"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "wr=0.0014 # relative spectral width in nm\n",
+ "y=1.3*math.pow(10,-6) # wavelength in m\n",
+ "w=wr*y # spectral width in nm\n",
+ "ds=0.020 # material dispersion\n",
+ "c=3*math.pow(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",
+ "\n",
+ "print ('%s %.3f %s' %(\" The rms pulse broadening = \",rm*pow(10,9)*pow(10,3),\"ns/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The rms pulse broadening = 0.093 ns/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 69
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6: PgNo-205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.46 # core refractive index\n",
+ "dl=0.01 # relative index difference\n",
+ "L=10*math.pow(10,3) # optical length in meter\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "\n",
+ "# calculations\n",
+ "dt=(L*n1*dl)/c #delay difference in s\n",
+ "dT=dt*math.pow(10,9) # delay difference in ns\n",
+ "rm=(L*n1*dl)/(2*math.sqrt(3)*c) # rms pulse broadening s\n",
+ "rM=rm*math.pow(10,9) # rms pulse broadening ns\n",
+ "bt=0.2/rm # max bit rate in bit/sec\n",
+ "bT=bt/math.pow(10,6) # max bit rate in M bits/sec\n",
+ "bl=bt*L # bandwidth length product in Hz meter\n",
+ "bL=(bt*L)/(math.pow(10,6)*math.pow(10,3)) #bandwidth length product in MHz km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The delay difference = \",dT,\"ns\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The rms pulse broadening = \",rM,\"ns\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The max bit rate = \",bT,\"M bits/sec\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The bandwidth length product = \",bL,\"MHz km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The delay difference = 486.67 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"
+ ]
+ }
+ ],
+ "prompt_number": 70
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7: PgNo-208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.5 # core refractive index\n",
+ "dl=0.01 # relative index difference\n",
+ "L=6*math.pow(10,3) # optical length in meter\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "\n",
+ "# calculations\n",
+ "rm=(L*n1*dl)/(2*math.sqrt(3)*c) # rms pulse broadening s\n",
+ "rM=rm*math.pow(10,9) # rms pulse broadening ns\n",
+ "bt=0.2/rm # max bit rate in bit/sec\n",
+ "bT=bt/math.pow(10,6) # max bit rate in M bits/sec\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The rms pulse broadening = \",rM,\"ns\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The max bit rate = \",bT,\"M bits/sec\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The rms pulse broadening = 86.60 ns\n",
+ "\n",
+ " The max bit rate = 2.3094 M bits/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 71
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8: PgNo-209"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.4 # core refractive index\n",
+ "dl=0.012 # relative index difference\n",
+ "L=6*math.pow(10,3) # optical length in meter\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "\n",
+ "# Calculations\n",
+ "dt=(L*n1*dl)/c # delay difference in s\n",
+ "dT=dt*math.pow(10,9) # delay difference in ns\n",
+ "rm=(L*n1*dl)/(2*math.sqrt(3)*c) # rms pulse broadening s\n",
+ "rM=rm*math.pow(10,9) # rms pulse broadening ns\n",
+ "bt=0.2/rm # max bit rate in bit/sec\n",
+ "bT=bt/math.pow(10,6) # max bit rate in M bits/sec\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.f %s' %(\" The delay difference = \",dT,\"ns\"))\n",
+ "print ('%s %.1f %s' %(\"\\n The rms pulse broadening = \",rM,\"ns\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The max bit rate = \",bT,\"M bits/sec\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The delay difference = 336 ns\n",
+ "\n",
+ " The rms pulse broadening = 97.0 ns\n",
+ "\n",
+ " The max bit rate = 2.062 M bits/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 72
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9: PgNo-211"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "n1=1.5 #core refractive index\n",
+ "c=3*math.pow(10,8) # the speed of light m/s\n",
+ "w=6*math.pow(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",
+ "\n",
+ "# calculations\n",
+ "rm=w*L*M # rms pulse broadening in s/km\n",
+ "rM=rm/math.pow(10,3) # rms pulse broadening in ns/km due to material dispersion\n",
+ "rm1=(L*1000*math.pow((NA),2))/(4*math.sqrt(3)*n1*c) # rms pulse broadening in ns/km due to material dispersion in sec/m\n",
+ "rM1=rm1*math.pow(10,9) # rms pulse broadening in ns/km due to intermodel dispersion in ns/km\n",
+ "rmt=math.sqrt(math.pow(rM,2)+math.pow(rM1,2)) # total rms pulse broadening in ns/km\n",
+ "bl=0.2/(rmt*math.pow(10,-9)) # bandwidth length product in Hz km\n",
+ "bL=bl/math.pow(10,6) # bandwidth length product in MHz km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The total rms pulse broadening = \",rmt,\"ns/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The bandwidth length product = \",bL,\"MHz km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total rms pulse broadening = 22.40 ns/km\n",
+ "\n",
+ " The bandwidth length product = 8.93 MHz km\n"
+ ]
+ }
+ ],
+ "prompt_number": 73
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10: PgNo-214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "yo=1320.0 # zero dispersion wavelength in nm\n",
+ "y=1290.0 # dispersion wavelength in nm\n",
+ "so=0.092 # dispersion slop\n",
+ "dt=(y*so/4)*(1-math.pow((yo/y),4)) #toal first order dispersion at 1290 nm in ps/nm/km\n",
+ "yo1=1310.0 # zero dispersion wavelength in um\n",
+ "y1=1550.0 # dispersion wavelength in nm\n",
+ "so=0.092 # dispersion slope\n",
+ "dt1=(y1*so/4)*(1-math.pow((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",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The total first order dispersion at 1290 nm = \",dt,\"ps/nm/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The total first order dispersion at 1550 nm = \",dt1,\"ps/nm/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The wavelength dispersion at 1550 nm = \",DW,\"ps/nm/km\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total first order dispersion at 1290 nm = -2.86 ps/nm/km\n",
+ "\n",
+ " The total 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"
+ ]
+ }
+ ],
+ "prompt_number": 74
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11: PgNo-218"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "L=6*math.pow(10,-2) # beat length in m\n",
+ "dy=6*math.pow(10,-9) # spectral width in m\n",
+ "y=1.3*math.pow(10,-6) # operating wavelength in m\n",
+ "\n",
+ "# Calculations\n",
+ "BF=y/(L) # model birefrigence in um\n",
+ "Lc=math.pow(y,2)/(BF*dy) # coherence length in m\n",
+ "db=2*math.pi/(L) #difference beween two propagation constants\n",
+ "dB=(2*math.pi*BF)/y\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The model birefrigence = \",BF*pow(10,6),\"um\"))\n",
+ "print ('%s %.1f %s' %(\"\\n The coherence length= \",Lc,\"m\"))\n",
+ "print ('%s %.2f' %(\"\\n The difference beween two propagation constants= \", db))\n",
+ "print ('%s %.2f' %(\"\\n The difference beween two propagation constants= \", dB))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The model birefrigence = 21.67 um\n",
+ "\n",
+ " The coherence length= 13.0 m\n",
+ "\n",
+ " The difference beween two propagation constants= 104.72\n",
+ "\n",
+ " The difference beween two propagation constants= 104.72\n"
+ ]
+ }
+ ],
+ "prompt_number": 75
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12: PgNo-219"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "y=0.85*math.pow(10,-6) # operating wavelength in m\n",
+ "L=0.5*math.pow(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",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The model birefrigenceat 0.5 nm = \",BF,\"*10^-3\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The model birefrigence at 75 m = \",BF1*math.pow(10,8),\"*10^-8\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The model birefrigenceat 0.5 nm = 0.0017 *10^-3\n",
+ "\n",
+ " The model birefrigence at 75 m = 1.133 *10^-8\n"
+ ]
+ }
+ ],
+ "prompt_number": 76
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13: PgNo-222"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "Lc=100000 # coherence length in m\n",
+ "y=1.32*math.pow(10,-6) # operating wavelength in m\n",
+ "dy=1.5*math.pow(10,-9) # spectral width in m\n",
+ "BF=math.pow(y,2)/(Lc*dy) # model birefrigence in um\n",
+ "L=y/BF # beat length in m\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The beat length= \",L,\"m\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The beat length= 113.64 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 77
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14: PgNo-225"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable initialisation\n",
+ "n1=1.46 # core refractive index\n",
+ "NA=0.25 # numerical aperture\n",
+ "c=3*math.pow(10,5) # the speed of light km/s\n",
+ "L=7 # length in km\n",
+ "si=math.pow(NA,2)/(4*math.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",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The intermodel pulse broadening = \",st*math.pow(10,9),\"ns/km\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The bandwidth = \",BW/math.pow(10,6),\"MHz\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The intermodel pulse broadening = 144.17 ns/km\n",
+ "\n",
+ " The bandwidth = 1.2971 MHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 78
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15: PgNo-227"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.46 # core refractive index\n",
+ "df=0.025\n",
+ "L=500 # length in m\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "dt=(n1*L*math.pow(df,2))/(8*c) # max dispersion in ns/m\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The max dispersion = \",dt*math.pow(10,9),\"ns/m\"))\n",
+ "print (\"\\n The answer in the textbook is wrong \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max dispersion = 0.1901 ns/m\n",
+ "\n",
+ " The answer in the textbook is wrong \n"
+ ]
+ }
+ ],
+ "prompt_number": 79
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16: PgNo-229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\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",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The max dispersion = \",d,\"ns/km^2/nm\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max dispersion = 0.0043 ns/km^2/nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 80
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17: PgNo-231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "n1=1.46 # core refractive index\n",
+ "NA=0.2 # numerical aperture\n",
+ "L=1.5*math.pow(10,3) # length in m\n",
+ "c=3*math.pow(10,8) # the spee of light in m/s\n",
+ "dt=(L*math.pow(NA,2))/(2*c*n1) #intermodel dispersion in ns/km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The intermodel dispersion = \",dt*math.pow(10,9),\"ns/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The intermodel dispersion = 68.493 ns/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 81
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18: PgNo-234"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "BLP=250*math.pow(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=math.sqrt(math.pow((tr*math.pow(10,9)),2)+math.pow(tm,2)) # combine pulse broadening in ns/km\n",
+ "Ba=0.32/tm*math.pow(10,9) # actual BLP in Hz.km\n",
+ "Bac=Ba/math.pow(10,6) # actual BLP in MHz.km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The intermodel pulse width broadening = \",tr*pow(10,9),\"ns/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n pulse broadening due to material dispersion = \",tm,\"ns/km\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The combine pulse broadening = \",tc,\"ns/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The actual BLP = \",Bac,\"MHz.km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "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.5886 ns/km\n",
+ "\n",
+ " The actual BLP = 142.22 MHz.km\n"
+ ]
+ }
+ ],
+ "prompt_number": 82
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19: PgNo-235"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\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",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The chromatic/material dispersion = \",t_mat1,\"ns\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The chromatic/material dispersion = 0.24 ns\n"
+ ]
+ }
+ ],
+ "prompt_number": 83
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20: PgNo-237"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\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",
+ "\n",
+ "# Calculations\n",
+ "td=math.sqrt(math.pow(md,2)+math.pow(wd,2)) # total dispersion in ns\n",
+ "dt=wt+td # received pulse width in ns\n",
+ "br=1/(5*dt*math.pow(10,-9)) # max bit rate bit/sec\n",
+ "Br=br/math.pow(10,6) # max bit rate in mbps\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The received pulse width = \",dt,\"ns\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The max bit rate = \",Br,\"mbps\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The received pulse width = 3.4443 ns\n",
+ "\n",
+ " The max bit rate = 58.0671 mbps\n"
+ ]
+ }
+ ],
+ "prompt_number": 84
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21: PgNo-239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\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",
+ "\n",
+ "# Calculations\n",
+ "td=math.sqrt(math.pow(md,2)+math.pow(wd,2)) # total dispersion in ns\n",
+ "dt=wt+td # received pulse width in ns\n",
+ "br=1/(5*dt*math.pow(10,-9)) # max bit rate bit/sec\n",
+ "Br=br/math.pow(10,6) # max bit rate in mbps\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The received pulse width = \",dt,\"ns\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The max bit rate = \",Br,\"mbps\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The received pulse width = 3.2866 ns\n",
+ "\n",
+ " The max bit rate = 60.85 mbps\n"
+ ]
+ }
+ ],
+ "prompt_number": 85
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 22: PgNo-241"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.46 # core refractive index\n",
+ "df=0.025\n",
+ "L=1500 # length in meter\n",
+ "c=3*math.pow(10,8) # the speed of ligth in m/s\n",
+ "md=(n1*L*df)/(c*(1-df)) # max dispersion in sec\n",
+ "Md=md*math.pow(10,9) # max dispersion in ns\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The max dispersion = \",Md,\"ns\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max dispersion = 187.18 ns\n"
+ ]
+ }
+ ],
+ "prompt_number": 86
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 23: PgNo-243"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.5 # core refractive index\n",
+ "L=1000 # length in meter\n",
+ "NA=0.22 # numerical aperture\n",
+ "\n",
+ "# Calculations\n",
+ "dl=math.pow((NA/n1),2)/2;\n",
+ "c=3*math.pow(10,8) # the speed of ligth in m/s\n",
+ "dt=(L*n1*dl)/c #intermodel dispersion in sec\n",
+ "dT=dt*math.pow(10,9) # intermodel dispersion in ns\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The max dispersion = \",dT,\"ns\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max dispersion = 53.78 ns\n"
+ ]
+ }
+ ],
+ "prompt_number": 87
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 24: PgNo-246"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "w=30.0 # line width in nm\n",
+ "L=1.5 # length in km\n",
+ "d1=6.0 # in ns/km\n",
+ "d2=85.0 # 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=math.sqrt(math.pow(dt,2)+math.pow(dt1,2)) # total dispersion in ns\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.1f %s' %(\" The max dispersion = \",dt,\"ns\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The max dispersion = \",dt1,\"ns\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The max dispersion = \",dT,\"ns\"))\n",
+ "print (\"\\n answer in the textbook is wrong \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max dispersion = 9.0 ns\n",
+ "\n",
+ " The max dispersion = 3.825 ns\n",
+ "\n",
+ " The max dispersion = 9.779 ns\n",
+ "\n",
+ " answer in the textbook is wrong \n"
+ ]
+ }
+ ],
+ "prompt_number": 88
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25: PgNo-248"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.55 # core refractive index\n",
+ "n2=1.48 # cladding refractive index\n",
+ "l=150 # fiber length in m\n",
+ "c=3*math.pow(10,8) #the speed of light in m/s\n",
+ "\n",
+ "# calculations\n",
+ "dl=(math.pow(n1,2)-math.pow(n2,2))/(2*n1)\n",
+ "dL=0.068\n",
+ "dt=(l*n1*dL)/(c) # intermodel dispersion in s\n",
+ "dT=dt*math.pow(10,9) # intermodel dispersion in ns\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The intermodel dispersion = \",dT,\"ns\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The intermodel dispersion = 52.70 ns\n"
+ ]
+ }
+ ],
+ "prompt_number": 89
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 26: PgNo-249"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.42 # core refractive index\n",
+ "dl=0.02\n",
+ "c=3*math.pow(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*math.pow(10,9) # intermodel disersion in ns/km\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The intermodel dispersion per km = \",dt2,\"ns/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The intermodel dispersion per km = 94.667 ns/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 90
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 27: PgNo-251"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Results\n",
+ "print (\" Dwg=n2*(dl/cy)*V(d^2(Vb)/dV^2)\")\n",
+ "print (\"\\n Dwg=n2*(dl/cy)*V(d^2(V(1-exp(-V))))/dv^2\")\n",
+ "print (\"\\n =CV(Z-V)exp(-V)\")\n",
+ "print (\"\\n where C=n2(dl/cy)\")\n",
+ "print (\"\\n waveguide dispersion will be zero , when V=2\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Dwg=n2*(dl/cy)*V(d^2(Vb)/dV^2)\n",
+ "\n",
+ " Dwg=n2*(dl/cy)*V(d^2(V(1-exp(-V))))/dv^2\n",
+ "\n",
+ " =CV(Z-V)exp(-V)\n",
+ "\n",
+ " where C=n2(dl/cy)\n",
+ "\n",
+ " waveguide dispersion will be zero , when V=2\n"
+ ]
+ }
+ ],
+ "prompt_number": 91
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 28: PgNo-255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "y=900.0 # operating wavelength in nm\n",
+ "yo=1343.0 # wavelength in nm\n",
+ "so=0.095 # in ps/nm^2-km\n",
+ "L=150.0 # in km\n",
+ "dy=50.0 # in nm\n",
+ "\n",
+ "# calculations\n",
+ "Dy=(so*y/4)*(1-math.pow((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",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The pulse spreading = \",dt1,\"ns\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The pulse spreading = 634.567 ns\n"
+ ]
+ }
+ ],
+ "prompt_number": 92
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 29: PgNo-260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\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*math.pow(10,8) # the speed of ligth in m/s\n",
+ "\n",
+ "# calculations\n",
+ "Dm=(so*y/4)*(1-math.pow((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*math.pow(10,-9)))*(Vd);\n",
+ "DW=Dw*math.pow(10,6)# in ps/nm-km\n",
+ "dt=DW*L*dy # pulse spreading in ps\n",
+ "dt1=dt/100 # pulse spreading in ns\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The pulse spreading = \",dt1,\"ps\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The pulse spreading = 2.1378 ps\n"
+ ]
+ }
+ ],
+ "prompt_number": 93
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 30: PgNo-263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "a=4.1*math.pow(10,-6) # core radius in um\n",
+ "dl=0.0036\n",
+ "y1=1.310*math.pow(10,-6) # operating wavelength in um\n",
+ "y2=1.550*math.pow(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",
+ "\n",
+ "# Calculations\n",
+ "v1=(2*3.14*a*n1*math.sqrt(2*dl))/y1# normalised frequency at y=1.310\n",
+ "v2=(2*3.14*a*n2*math.sqrt(2*dl))/y2# normalised frequency at y=1.550\n",
+ "wo=a*(0.65+(1.619/math.pow(v1,1.5))+2.879/math.pow(v1,3))\n",
+ "wp=wo-a*(0.016+1.567/math.pow(v1,7))\n",
+ "wo1=a*(0.65+(1.619/math.pow(v2,1.5))+2.879/math.pow(v2,3))\n",
+ "wp1=wo-a*(0.016+1.567/math.pow(v2,7))\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The value of wo = \",wo*pow(10,6),\"um\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The value of wp = \",wp*pow(10,6),\"um\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The value of wo1 = \",wo1*pow(10,6),\"um\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The value of wp1 = \",wp1*pow(10,6),\"um\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The value of wo = 5.2031 um\n",
+ "\n",
+ " The value of wp = 5.1253 um\n",
+ "\n",
+ " The value of wo1 = 6.2264 um\n",
+ "\n",
+ " The value of wp1 = 5.0980 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 94
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 31: PgNo-268"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "y=1.30*math.pow(10,-6) # operating wavelength in m\n",
+ "dn1=math.pow(10,-6)\n",
+ "dn2=math.pow(10,-5)\n",
+ "\n",
+ "# Calculations\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",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The max core radius = \",db1,\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The max core radius = \",db2,\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The beat length = \",Lp1,\"m\"))\n",
+ "print ('%s %.1f %s' %(\"\\n The beat length = \",Lp2*100,\"cm\"))\n",
+ "print (\"\\n Hence, range of beat length; 13cm-1.3m\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "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.0 cm\n",
+ "\n",
+ " Hence, range of beat length; 13cm-1.3m\n"
+ ]
+ }
+ ],
+ "prompt_number": 95
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 32: PgNo-269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.48 # core refractive index\n",
+ "dl=0.0027\n",
+ "a=4.4*math.pow(10,-6) # radius in m\n",
+ "y=1.32*math.pow(10,-6) # operating wavelength in m\n",
+ "n2=n1*(1-dl)\n",
+ "c=3*math.pow(10,8) # the speed of ligth in m/s\n",
+ "v=(2*3.14*a*n1*math.sqrt(2*dl))/y\n",
+ "VD=0.080+0.549*math.pow((2.834-v),2)\n",
+ "DW=(-1)*(n2*dl*VD)/(c*y) # wavelength dispersion in s /um/m\n",
+ "Dw=DW*math.pow(10,6) # wavelength dispersion in ps /nm/km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The wavelength dispersion = \",Dw,\"ps n/m/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The wavelength dispersion = -2.5213 ps n/m/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 96
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 33: PgNo-271"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable initialisation\n",
+ "n1=1.48 # core refractive index\n",
+ "dl=0.01 # refractive index difference\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "y=1.55 # wavelength in um\n",
+ "DM=7.0 # in ps/nm-km\n",
+ "DW=(-1)*DM # in ps/nm-km\n",
+ "\n",
+ "# calculations\n",
+ "X=math.pow(-10,12)*(n1*dl)/(c*y)# in ps/nm/km\n",
+ "Z=(DW/X)-0.08\n",
+ "V=2.834-math.sqrt(-Z/0.549)\n",
+ "a=(V*y)/(2*math.pi*n1*math.sqrt(2*dl))# core radius in um\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The core radius = \",a,\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The core radius = 2.47 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 97
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Optical_Fiber_Communication/Chapter5_1.ipynb b/Optical_Fiber_Communication/Chapter5_1.ipynb new file mode 100755 index 00000000..d4366624 --- /dev/null +++ b/Optical_Fiber_Communication/Chapter5_1.ipynb @@ -0,0 +1,1476 @@ +{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:9df1a39eaf45bb37d3874de747aedcb050a5a7704427c92544b1342299e9f172"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5 : Optical Sources Laser"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1: PgNo-193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "t=0.1*math.pow(10,-6) # pulse broading in sec\n",
+ "d=12 # disance in km\n",
+ "B=1/(2*t) # max bandwidth MHz\n",
+ "\n",
+ "# Calculations\n",
+ "ds=t/d #dispersion in ns/km\n",
+ "bl=B*d # bandwidth length product\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.1f %s' %(\" The max bandwidth = \",B/pow(10,6),\"MHz\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The dispersion = \",ds*pow(10,9),\"ns/km\"))\n",
+ "print ('%s %.1f %s' %(\"\\n bandwidth length product = \",bl/pow(10,6),\"MHz km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max bandwidth = 5.0 MHz\n",
+ "\n",
+ " The dispersion = 8.333 ns/km\n",
+ "\n",
+ " bandwidth length product = 60.0 MHz km\n"
+ ]
+ }
+ ],
+ "prompt_number": 65
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2: PgNo-194"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variable initialisation\n",
+ "t=0.1*math.pow(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",
+ "\n",
+ "# Results\n",
+ "print ('%s %.1f %s' %(\" The max bandwidth = \",B/pow(10,6),\"MHz\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The dispersion = \",ds*pow(10,9),\"ns/km\"))\n",
+ "print ('%s %.1f %s' %(\"\\n bandwidth length product = \",bl/pow(10,6),\"MHz km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max bandwidth = 5.0 MHz\n",
+ "\n",
+ " The dispersion = 6.667 ns/km\n",
+ "\n",
+ " bandwidth length product = 75.0 MHz km\n"
+ ]
+ }
+ ],
+ "prompt_number": 66
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3: PgNo-197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.465 # core refractive index\n",
+ "n2=1.45 #cladding refractive index\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "Mp=math.pow(NA,2)/(2*n1*c) # multipath pulse broadening in ns/km\n",
+ "bl=(1/math.pow(NA,2))*(2*n1*c) # bandwidth length product in GHz km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" The numerical aperture = \", NA))\n",
+ "print ('%s %.2f %s' %(\"\\n The multipath pulse broadening = \",Mp*pow(10,9),\"ns/km\"))\n",
+ "print ('%s %.1f %s' %(\"\\n The bandwidth length product = \",bl/pow(10,9),\"GHz km\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The numerical aperture = 0.21\n",
+ "\n",
+ " The multipath pulse broadening = 0.05 ns/km\n",
+ "\n",
+ " The bandwidth length product = 20.1 GHz km\n"
+ ]
+ }
+ ],
+ "prompt_number": 67
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4: PgNo-199"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "ds=0.020 # material dispersion\n",
+ "c=3*math.pow(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",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The material dispersion parameter = \",M*math.pow(10,12),\"ps/nm/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The rms pulse broadening = \",rm*math.pow(10,9),\"ns/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The material dispersion parameter = 51.28 ps/nm/km\n",
+ "\n",
+ " The rms pulse broadening = 0.31 ns/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 68
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5: PgNo-201"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "wr=0.0014 # relative spectral width in nm\n",
+ "y=1.3*math.pow(10,-6) # wavelength in m\n",
+ "w=wr*y # spectral width in nm\n",
+ "ds=0.020 # material dispersion\n",
+ "c=3*math.pow(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",
+ "\n",
+ "print ('%s %.3f %s' %(\" The rms pulse broadening = \",rm*pow(10,9)*pow(10,3),\"ns/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The rms pulse broadening = 0.093 ns/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 69
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6: PgNo-205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.46 # core refractive index\n",
+ "dl=0.01 # relative index difference\n",
+ "L=10*math.pow(10,3) # optical length in meter\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "\n",
+ "# calculations\n",
+ "dt=(L*n1*dl)/c #delay difference in s\n",
+ "dT=dt*math.pow(10,9) # delay difference in ns\n",
+ "rm=(L*n1*dl)/(2*math.sqrt(3)*c) # rms pulse broadening s\n",
+ "rM=rm*math.pow(10,9) # rms pulse broadening ns\n",
+ "bt=0.2/rm # max bit rate in bit/sec\n",
+ "bT=bt/math.pow(10,6) # max bit rate in M bits/sec\n",
+ "bl=bt*L # bandwidth length product in Hz meter\n",
+ "bL=(bt*L)/(math.pow(10,6)*math.pow(10,3)) #bandwidth length product in MHz km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The delay difference = \",dT,\"ns\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The rms pulse broadening = \",rM,\"ns\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The max bit rate = \",bT,\"M bits/sec\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The bandwidth length product = \",bL,\"MHz km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The delay difference = 486.67 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"
+ ]
+ }
+ ],
+ "prompt_number": 70
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7: PgNo-208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.5 # core refractive index\n",
+ "dl=0.01 # relative index difference\n",
+ "L=6*math.pow(10,3) # optical length in meter\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "\n",
+ "# calculations\n",
+ "rm=(L*n1*dl)/(2*math.sqrt(3)*c) # rms pulse broadening s\n",
+ "rM=rm*math.pow(10,9) # rms pulse broadening ns\n",
+ "bt=0.2/rm # max bit rate in bit/sec\n",
+ "bT=bt/math.pow(10,6) # max bit rate in M bits/sec\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The rms pulse broadening = \",rM,\"ns\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The max bit rate = \",bT,\"M bits/sec\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The rms pulse broadening = 86.60 ns\n",
+ "\n",
+ " The max bit rate = 2.3094 M bits/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 71
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8: PgNo-209"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.4 # core refractive index\n",
+ "dl=0.012 # relative index difference\n",
+ "L=6*math.pow(10,3) # optical length in meter\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "\n",
+ "# Calculations\n",
+ "dt=(L*n1*dl)/c # delay difference in s\n",
+ "dT=dt*math.pow(10,9) # delay difference in ns\n",
+ "rm=(L*n1*dl)/(2*math.sqrt(3)*c) # rms pulse broadening s\n",
+ "rM=rm*math.pow(10,9) # rms pulse broadening ns\n",
+ "bt=0.2/rm # max bit rate in bit/sec\n",
+ "bT=bt/math.pow(10,6) # max bit rate in M bits/sec\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.f %s' %(\" The delay difference = \",dT,\"ns\"))\n",
+ "print ('%s %.1f %s' %(\"\\n The rms pulse broadening = \",rM,\"ns\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The max bit rate = \",bT,\"M bits/sec\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The delay difference = 336 ns\n",
+ "\n",
+ " The rms pulse broadening = 97.0 ns\n",
+ "\n",
+ " The max bit rate = 2.062 M bits/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 72
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9: PgNo-211"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "n1=1.5 #core refractive index\n",
+ "c=3*math.pow(10,8) # the speed of light m/s\n",
+ "w=6*math.pow(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",
+ "\n",
+ "# calculations\n",
+ "rm=w*L*M # rms pulse broadening in s/km\n",
+ "rM=rm/math.pow(10,3) # rms pulse broadening in ns/km due to material dispersion\n",
+ "rm1=(L*1000*math.pow((NA),2))/(4*math.sqrt(3)*n1*c) # rms pulse broadening in ns/km due to material dispersion in sec/m\n",
+ "rM1=rm1*math.pow(10,9) # rms pulse broadening in ns/km due to intermodel dispersion in ns/km\n",
+ "rmt=math.sqrt(math.pow(rM,2)+math.pow(rM1,2)) # total rms pulse broadening in ns/km\n",
+ "bl=0.2/(rmt*math.pow(10,-9)) # bandwidth length product in Hz km\n",
+ "bL=bl/math.pow(10,6) # bandwidth length product in MHz km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The total rms pulse broadening = \",rmt,\"ns/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The bandwidth length product = \",bL,\"MHz km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total rms pulse broadening = 22.40 ns/km\n",
+ "\n",
+ " The bandwidth length product = 8.93 MHz km\n"
+ ]
+ }
+ ],
+ "prompt_number": 73
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10: PgNo-214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "yo=1320.0 # zero dispersion wavelength in nm\n",
+ "y=1290.0 # dispersion wavelength in nm\n",
+ "so=0.092 # dispersion slop\n",
+ "dt=(y*so/4)*(1-math.pow((yo/y),4)) #toal first order dispersion at 1290 nm in ps/nm/km\n",
+ "yo1=1310.0 # zero dispersion wavelength in um\n",
+ "y1=1550.0 # dispersion wavelength in nm\n",
+ "so=0.092 # dispersion slope\n",
+ "dt1=(y1*so/4)*(1-math.pow((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",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The total first order dispersion at 1290 nm = \",dt,\"ps/nm/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The total first order dispersion at 1550 nm = \",dt1,\"ps/nm/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The wavelength dispersion at 1550 nm = \",DW,\"ps/nm/km\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total first order dispersion at 1290 nm = -2.86 ps/nm/km\n",
+ "\n",
+ " The total 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"
+ ]
+ }
+ ],
+ "prompt_number": 74
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11: PgNo-218"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "L=6*math.pow(10,-2) # beat length in m\n",
+ "dy=6*math.pow(10,-9) # spectral width in m\n",
+ "y=1.3*math.pow(10,-6) # operating wavelength in m\n",
+ "\n",
+ "# Calculations\n",
+ "BF=y/(L) # model birefrigence in um\n",
+ "Lc=math.pow(y,2)/(BF*dy) # coherence length in m\n",
+ "db=2*math.pi/(L) #difference beween two propagation constants\n",
+ "dB=(2*math.pi*BF)/y\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The model birefrigence = \",BF*pow(10,6),\"um\"))\n",
+ "print ('%s %.1f %s' %(\"\\n The coherence length= \",Lc,\"m\"))\n",
+ "print ('%s %.2f' %(\"\\n The difference beween two propagation constants= \", db))\n",
+ "print ('%s %.2f' %(\"\\n The difference beween two propagation constants= \", dB))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The model birefrigence = 21.67 um\n",
+ "\n",
+ " The coherence length= 13.0 m\n",
+ "\n",
+ " The difference beween two propagation constants= 104.72\n",
+ "\n",
+ " The difference beween two propagation constants= 104.72\n"
+ ]
+ }
+ ],
+ "prompt_number": 75
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12: PgNo-219"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "y=0.85*math.pow(10,-6) # operating wavelength in m\n",
+ "L=0.5*math.pow(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",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The model birefrigenceat 0.5 nm = \",BF,\"*10^-3\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The model birefrigence at 75 m = \",BF1*math.pow(10,8),\"*10^-8\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The model birefrigenceat 0.5 nm = 0.0017 *10^-3\n",
+ "\n",
+ " The model birefrigence at 75 m = 1.133 *10^-8\n"
+ ]
+ }
+ ],
+ "prompt_number": 76
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13: PgNo-222"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "Lc=100000 # coherence length in m\n",
+ "y=1.32*math.pow(10,-6) # operating wavelength in m\n",
+ "dy=1.5*math.pow(10,-9) # spectral width in m\n",
+ "BF=math.pow(y,2)/(Lc*dy) # model birefrigence in um\n",
+ "L=y/BF # beat length in m\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The beat length= \",L,\"m\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The beat length= 113.64 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 77
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14: PgNo-225"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable initialisation\n",
+ "n1=1.46 # core refractive index\n",
+ "NA=0.25 # numerical aperture\n",
+ "c=3*math.pow(10,5) # the speed of light km/s\n",
+ "L=7 # length in km\n",
+ "si=math.pow(NA,2)/(4*math.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",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The intermodel pulse broadening = \",st*math.pow(10,9),\"ns/km\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The bandwidth = \",BW/math.pow(10,6),\"MHz\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The intermodel pulse broadening = 144.17 ns/km\n",
+ "\n",
+ " The bandwidth = 1.2971 MHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 78
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15: PgNo-227"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.46 # core refractive index\n",
+ "df=0.025\n",
+ "L=500 # length in m\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "dt=(n1*L*math.pow(df,2))/(8*c) # max dispersion in ns/m\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The max dispersion = \",dt*math.pow(10,9),\"ns/m\"))\n",
+ "print (\"\\n The answer in the textbook is wrong \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max dispersion = 0.1901 ns/m\n",
+ "\n",
+ " The answer in the textbook is wrong \n"
+ ]
+ }
+ ],
+ "prompt_number": 79
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16: PgNo-229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\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",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The max dispersion = \",d,\"ns/km^2/nm\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max dispersion = 0.0043 ns/km^2/nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 80
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17: PgNo-231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "n1=1.46 # core refractive index\n",
+ "NA=0.2 # numerical aperture\n",
+ "L=1.5*math.pow(10,3) # length in m\n",
+ "c=3*math.pow(10,8) # the spee of light in m/s\n",
+ "dt=(L*math.pow(NA,2))/(2*c*n1) #intermodel dispersion in ns/km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The intermodel dispersion = \",dt*math.pow(10,9),\"ns/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The intermodel dispersion = 68.493 ns/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 81
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18: PgNo-234"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "BLP=250*math.pow(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=math.sqrt(math.pow((tr*math.pow(10,9)),2)+math.pow(tm,2)) # combine pulse broadening in ns/km\n",
+ "Ba=0.32/tm*math.pow(10,9) # actual BLP in Hz.km\n",
+ "Bac=Ba/math.pow(10,6) # actual BLP in MHz.km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The intermodel pulse width broadening = \",tr*pow(10,9),\"ns/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n pulse broadening due to material dispersion = \",tm,\"ns/km\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The combine pulse broadening = \",tc,\"ns/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The actual BLP = \",Bac,\"MHz.km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "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.5886 ns/km\n",
+ "\n",
+ " The actual BLP = 142.22 MHz.km\n"
+ ]
+ }
+ ],
+ "prompt_number": 82
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19: PgNo-235"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\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",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The chromatic/material dispersion = \",t_mat1,\"ns\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The chromatic/material dispersion = 0.24 ns\n"
+ ]
+ }
+ ],
+ "prompt_number": 83
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20: PgNo-237"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\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",
+ "\n",
+ "# Calculations\n",
+ "td=math.sqrt(math.pow(md,2)+math.pow(wd,2)) # total dispersion in ns\n",
+ "dt=wt+td # received pulse width in ns\n",
+ "br=1/(5*dt*math.pow(10,-9)) # max bit rate bit/sec\n",
+ "Br=br/math.pow(10,6) # max bit rate in mbps\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The received pulse width = \",dt,\"ns\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The max bit rate = \",Br,\"mbps\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The received pulse width = 3.4443 ns\n",
+ "\n",
+ " The max bit rate = 58.0671 mbps\n"
+ ]
+ }
+ ],
+ "prompt_number": 84
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21: PgNo-239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\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",
+ "\n",
+ "# Calculations\n",
+ "td=math.sqrt(math.pow(md,2)+math.pow(wd,2)) # total dispersion in ns\n",
+ "dt=wt+td # received pulse width in ns\n",
+ "br=1/(5*dt*math.pow(10,-9)) # max bit rate bit/sec\n",
+ "Br=br/math.pow(10,6) # max bit rate in mbps\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The received pulse width = \",dt,\"ns\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The max bit rate = \",Br,\"mbps\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The received pulse width = 3.2866 ns\n",
+ "\n",
+ " The max bit rate = 60.85 mbps\n"
+ ]
+ }
+ ],
+ "prompt_number": 85
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 22: PgNo-241"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.46 # core refractive index\n",
+ "df=0.025\n",
+ "L=1500 # length in meter\n",
+ "c=3*math.pow(10,8) # the speed of ligth in m/s\n",
+ "md=(n1*L*df)/(c*(1-df)) # max dispersion in sec\n",
+ "Md=md*math.pow(10,9) # max dispersion in ns\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The max dispersion = \",Md,\"ns\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max dispersion = 187.18 ns\n"
+ ]
+ }
+ ],
+ "prompt_number": 86
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 23: PgNo-243"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.5 # core refractive index\n",
+ "L=1000 # length in meter\n",
+ "NA=0.22 # numerical aperture\n",
+ "\n",
+ "# Calculations\n",
+ "dl=math.pow((NA/n1),2)/2;\n",
+ "c=3*math.pow(10,8) # the speed of ligth in m/s\n",
+ "dt=(L*n1*dl)/c #intermodel dispersion in sec\n",
+ "dT=dt*math.pow(10,9) # intermodel dispersion in ns\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The max dispersion = \",dT,\"ns\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max dispersion = 53.78 ns\n"
+ ]
+ }
+ ],
+ "prompt_number": 87
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 24: PgNo-246"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "w=30.0 # line width in nm\n",
+ "L=1.5 # length in km\n",
+ "d1=6.0 # in ns/km\n",
+ "d2=85.0 # 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=math.sqrt(math.pow(dt,2)+math.pow(dt1,2)) # total dispersion in ns\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.1f %s' %(\" The max dispersion = \",dt,\"ns\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The max dispersion = \",dt1,\"ns\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The max dispersion = \",dT,\"ns\"))\n",
+ "print (\"\\n answer in the textbook is wrong \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max dispersion = 9.0 ns\n",
+ "\n",
+ " The max dispersion = 3.825 ns\n",
+ "\n",
+ " The max dispersion = 9.779 ns\n",
+ "\n",
+ " answer in the textbook is wrong \n"
+ ]
+ }
+ ],
+ "prompt_number": 88
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25: PgNo-248"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.55 # core refractive index\n",
+ "n2=1.48 # cladding refractive index\n",
+ "l=150 # fiber length in m\n",
+ "c=3*math.pow(10,8) #the speed of light in m/s\n",
+ "\n",
+ "# calculations\n",
+ "dl=(math.pow(n1,2)-math.pow(n2,2))/(2*n1)\n",
+ "dL=0.068\n",
+ "dt=(l*n1*dL)/(c) # intermodel dispersion in s\n",
+ "dT=dt*math.pow(10,9) # intermodel dispersion in ns\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The intermodel dispersion = \",dT,\"ns\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The intermodel dispersion = 52.70 ns\n"
+ ]
+ }
+ ],
+ "prompt_number": 89
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 26: PgNo-249"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.42 # core refractive index\n",
+ "dl=0.02\n",
+ "c=3*math.pow(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*math.pow(10,9) # intermodel disersion in ns/km\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The intermodel dispersion per km = \",dt2,\"ns/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The intermodel dispersion per km = 94.667 ns/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 90
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 27: PgNo-251"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Results\n",
+ "print (\" Dwg=n2*(dl/cy)*V(d^2(Vb)/dV^2)\")\n",
+ "print (\"\\n Dwg=n2*(dl/cy)*V(d^2(V(1-exp(-V))))/dv^2\")\n",
+ "print (\"\\n =CV(Z-V)exp(-V)\")\n",
+ "print (\"\\n where C=n2(dl/cy)\")\n",
+ "print (\"\\n waveguide dispersion will be zero , when V=2\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Dwg=n2*(dl/cy)*V(d^2(Vb)/dV^2)\n",
+ "\n",
+ " Dwg=n2*(dl/cy)*V(d^2(V(1-exp(-V))))/dv^2\n",
+ "\n",
+ " =CV(Z-V)exp(-V)\n",
+ "\n",
+ " where C=n2(dl/cy)\n",
+ "\n",
+ " waveguide dispersion will be zero , when V=2\n"
+ ]
+ }
+ ],
+ "prompt_number": 91
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 28: PgNo-255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "y=900.0 # operating wavelength in nm\n",
+ "yo=1343.0 # wavelength in nm\n",
+ "so=0.095 # in ps/nm^2-km\n",
+ "L=150.0 # in km\n",
+ "dy=50.0 # in nm\n",
+ "\n",
+ "# calculations\n",
+ "Dy=(so*y/4)*(1-math.pow((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",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The pulse spreading = \",dt1,\"ns\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The pulse spreading = 634.567 ns\n"
+ ]
+ }
+ ],
+ "prompt_number": 92
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 29: PgNo-260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\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*math.pow(10,8) # the speed of ligth in m/s\n",
+ "\n",
+ "# calculations\n",
+ "Dm=(so*y/4)*(1-math.pow((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*math.pow(10,-9)))*(Vd);\n",
+ "DW=Dw*math.pow(10,6)# in ps/nm-km\n",
+ "dt=DW*L*dy # pulse spreading in ps\n",
+ "dt1=dt/100 # pulse spreading in ns\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The pulse spreading = \",dt1,\"ps\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The pulse spreading = 2.1378 ps\n"
+ ]
+ }
+ ],
+ "prompt_number": 93
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 30: PgNo-263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "a=4.1*math.pow(10,-6) # core radius in um\n",
+ "dl=0.0036\n",
+ "y1=1.310*math.pow(10,-6) # operating wavelength in um\n",
+ "y2=1.550*math.pow(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",
+ "\n",
+ "# Calculations\n",
+ "v1=(2*3.14*a*n1*math.sqrt(2*dl))/y1# normalised frequency at y=1.310\n",
+ "v2=(2*3.14*a*n2*math.sqrt(2*dl))/y2# normalised frequency at y=1.550\n",
+ "wo=a*(0.65+(1.619/math.pow(v1,1.5))+2.879/math.pow(v1,3))\n",
+ "wp=wo-a*(0.016+1.567/math.pow(v1,7))\n",
+ "wo1=a*(0.65+(1.619/math.pow(v2,1.5))+2.879/math.pow(v2,3))\n",
+ "wp1=wo-a*(0.016+1.567/math.pow(v2,7))\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The value of wo = \",wo*pow(10,6),\"um\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The value of wp = \",wp*pow(10,6),\"um\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The value of wo1 = \",wo1*pow(10,6),\"um\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The value of wp1 = \",wp1*pow(10,6),\"um\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The value of wo = 5.2031 um\n",
+ "\n",
+ " The value of wp = 5.1253 um\n",
+ "\n",
+ " The value of wo1 = 6.2264 um\n",
+ "\n",
+ " The value of wp1 = 5.0980 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 94
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 31: PgNo-268"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "y=1.30*math.pow(10,-6) # operating wavelength in m\n",
+ "dn1=math.pow(10,-6)\n",
+ "dn2=math.pow(10,-5)\n",
+ "\n",
+ "# Calculations\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",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The max core radius = \",db1,\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The max core radius = \",db2,\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The beat length = \",Lp1,\"m\"))\n",
+ "print ('%s %.1f %s' %(\"\\n The beat length = \",Lp2*100,\"cm\"))\n",
+ "print (\"\\n Hence, range of beat length; 13cm-1.3m\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "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.0 cm\n",
+ "\n",
+ " Hence, range of beat length; 13cm-1.3m\n"
+ ]
+ }
+ ],
+ "prompt_number": 95
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 32: PgNo-269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.48 # core refractive index\n",
+ "dl=0.0027\n",
+ "a=4.4*math.pow(10,-6) # radius in m\n",
+ "y=1.32*math.pow(10,-6) # operating wavelength in m\n",
+ "n2=n1*(1-dl)\n",
+ "c=3*math.pow(10,8) # the speed of ligth in m/s\n",
+ "v=(2*3.14*a*n1*math.sqrt(2*dl))/y\n",
+ "VD=0.080+0.549*math.pow((2.834-v),2)\n",
+ "DW=(-1)*(n2*dl*VD)/(c*y) # wavelength dispersion in s /um/m\n",
+ "Dw=DW*math.pow(10,6) # wavelength dispersion in ps /nm/km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The wavelength dispersion = \",Dw,\"ps n/m/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The wavelength dispersion = -2.5213 ps n/m/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 96
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 33: PgNo-271"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable initialisation\n",
+ "n1=1.48 # core refractive index\n",
+ "dl=0.01 # refractive index difference\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "y=1.55 # wavelength in um\n",
+ "DM=7.0 # in ps/nm-km\n",
+ "DW=(-1)*DM # in ps/nm-km\n",
+ "\n",
+ "# calculations\n",
+ "X=math.pow(-10,12)*(n1*dl)/(c*y)# in ps/nm/km\n",
+ "Z=(DW/X)-0.08\n",
+ "V=2.834-math.sqrt(-Z/0.549)\n",
+ "a=(V*y)/(2*math.pi*n1*math.sqrt(2*dl))# core radius in um\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The core radius = \",a,\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The core radius = 2.47 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 97
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Optical_Fiber_Communication/Chapter6.ipynb b/Optical_Fiber_Communication/Chapter6.ipynb new file mode 100755 index 00000000..9b5380f8 --- /dev/null +++ b/Optical_Fiber_Communication/Chapter6.ipynb @@ -0,0 +1,104 @@ +{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ade43627b2f5d9f9e9fc6f1fe77b719e4d5ca9dd8c4d3cb361adefbae3d62e1a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6: Optical Sources LEDs"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1: PgNo-277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "r=125*math.pow(10,-6) # cladding radius in meter\n",
+ "R=8*math.pow(10,-2) # curve of radius in meter\n",
+ "s=((R+2*r)/(R+r))-1\n",
+ "s_p=s*100 # percentage of strain\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The percentage of strain = \",s_p,\"%\"))\n",
+ "print (\"\\n If this condition is maintained the fiber will maintain without any break \")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The percentage of strain = 0.16 %\n",
+ "\n",
+ " If this condition is maintained the fiber will maintain without any break \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2: PgNo-279"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# initialisation of variables\n",
+ "w=40*math.pow(10,-3) # cable weighing in kg/m\n",
+ "R=20*math.pow(10,-2) # radius of curvature in meter\n",
+ "n=0.19 # co-efficient of friction\n",
+ "x=(3.14/4) # angle in rad\n",
+ "\n",
+ "# calculations\n",
+ "si=42.36 # pulling tension at the entrance in kg\n",
+ "X=(si/(w*R))\n",
+ "Y=math.asinh(si/(w*R))\n",
+ "Z=w*R*math.sinh(n*x+Y) # puttling tension at the exit of an optical cable\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The puttling tension at the exit of an optical cable = \",Z,\"kg\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The puttling tension at the exit of an optical cable = 49.173 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Optical_Fiber_Communication/Chapter6_1.ipynb b/Optical_Fiber_Communication/Chapter6_1.ipynb new file mode 100755 index 00000000..9b5380f8 --- /dev/null +++ b/Optical_Fiber_Communication/Chapter6_1.ipynb @@ -0,0 +1,104 @@ +{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ade43627b2f5d9f9e9fc6f1fe77b719e4d5ca9dd8c4d3cb361adefbae3d62e1a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6: Optical Sources LEDs"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1: PgNo-277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "r=125*math.pow(10,-6) # cladding radius in meter\n",
+ "R=8*math.pow(10,-2) # curve of radius in meter\n",
+ "s=((R+2*r)/(R+r))-1\n",
+ "s_p=s*100 # percentage of strain\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The percentage of strain = \",s_p,\"%\"))\n",
+ "print (\"\\n If this condition is maintained the fiber will maintain without any break \")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The percentage of strain = 0.16 %\n",
+ "\n",
+ " If this condition is maintained the fiber will maintain without any break \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2: PgNo-279"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# initialisation of variables\n",
+ "w=40*math.pow(10,-3) # cable weighing in kg/m\n",
+ "R=20*math.pow(10,-2) # radius of curvature in meter\n",
+ "n=0.19 # co-efficient of friction\n",
+ "x=(3.14/4) # angle in rad\n",
+ "\n",
+ "# calculations\n",
+ "si=42.36 # pulling tension at the entrance in kg\n",
+ "X=(si/(w*R))\n",
+ "Y=math.asinh(si/(w*R))\n",
+ "Z=w*R*math.sinh(n*x+Y) # puttling tension at the exit of an optical cable\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The puttling tension at the exit of an optical cable = \",Z,\"kg\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The puttling tension at the exit of an optical cable = 49.173 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Optical_Fiber_Communication/Chapter7.ipynb b/Optical_Fiber_Communication/Chapter7.ipynb new file mode 100755 index 00000000..b4eca185 --- /dev/null +++ b/Optical_Fiber_Communication/Chapter7.ipynb @@ -0,0 +1,933 @@ +{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:915bbc296599c9cae8476366ab28673955be075640a27c082930b79dfed61501"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7: Optical Detectors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1: PgNo-284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.46 # core refractive index\n",
+ "n=1 # refractive index due to air\n",
+ "r=math.pow(((n1-n)/(n1+n)),2)\n",
+ "r1=0.03 # r take upto two decimal place\n",
+ "l_s=-10*math.log(1-r1)/math.log(10) # fiber loss in db\n",
+ "l_t=2*l_s # total loss in db\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The fiber loss = \",l_s,\"db\"))\n",
+ "print (\"\\n there is a similar loss at the other interface \")\n",
+ "print ('%s %.2f %s' %(\"\\n The total fiber loss = \",l_t,\"db\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The fiber loss = 0.13 db\n",
+ "\n",
+ " there is a similar loss at the other interface \n",
+ "\n",
+ " The total fiber loss = 0.26 db\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2: PgNo-285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.46 # core refractive index\n",
+ "n=1 # refractive index due to air\n",
+ "a=25*math.pow(10,-6) # core radius in m\n",
+ "y=3*math.pow(10,-6) # in m\n",
+ "\n",
+ "# calculations\n",
+ "A=(y/a)*math.pow((1-math.pow((y/(2*a)),2)),0.5)\n",
+ "B=math.acos(y/(2*a))\n",
+ "C=n1/n\n",
+ "M=(16*math.pow(C,2))/(math.pi*math.pow((1+C),4))\n",
+ "n_lat=M*(2*B-A) # coupling efficiency for multimode step index fiber\n",
+ "L_lat=-10*math.log(n_lat)/math.log(10) # insertion loss for lateral misalignment\n",
+ "n_lat1=(1/math.pi)*(2*B-A) # coupling efficiency when there is no air gap\n",
+ "L_lat1=-10*math.log(n_lat1)/math.log(10) # insertion loss for lateral misalignment when there is no air gap\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f ' %(\" The coupling efficiency for multimode step index fiber = \", n_lat))\n",
+ "print ('%s %.2f %s' %(\"\\n The insertion loss for lateral misalignment = \",L_lat,\"dB\"))\n",
+ "print ('%s %.2f ' %(\"\\n The coupling efficiency when there is no air gap = \", n_lat1))\n",
+ "print ('%s %.2f %s' %(\"\\n The insertion loss for lateral misalignment when there is no air gap = \",L_lat1,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The coupling efficiency for multimode step index fiber = 0.86 \n",
+ "\n",
+ " The insertion loss for lateral misalignment = 0.65 dB\n",
+ "\n",
+ " The coupling efficiency when there is no air gap = 0.92 \n",
+ "\n",
+ " The insertion loss for lateral misalignment when there is no air gap = 0.34 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3: PgNo-287"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n=1 # refractive index due to air\n",
+ "a=25*math.pow(10,-6) # core radius in m\n",
+ "y=4*math.pow(10,-6) # in m\n",
+ "\n",
+ "# calculations\n",
+ "A=(y/a)*math.pow((1-math.pow((y/(2*a)),2)),0.5)\n",
+ "B=math.acos(y/(2*a))\n",
+ "C=n1/n\n",
+ "M=(16*math.pow(C,2))/(math.pi*math.pow((1+C),4))\n",
+ "n_lat=M*(2*B-A) # coupling efficiency for multimode step index fiber\n",
+ "L_lat=-10*math.log(n_lat)/math.log(10) # insertion loss for lateral misalignment\n",
+ "dx=4*(math.pi/180) # angular misalignment in radian\n",
+ "dl=0.02 #relative index difference\n",
+ "NA=n1*math.sqrt(2*dl) # numerical aperture\n",
+ "n_ang=1-(0.069/(math.pi*NA)) # coupling efficiency due to angular misalignment\n",
+ "L_ang=-10*math.log(n_ang)/math.log(10) # loss due to angular misalignment\n",
+ "Lt=L_lat+L_ang # total insertion loss in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %( \" The total insertion loss = \",Lt,\"dB\"))\n",
+ "print (\"\\n the answer is wrong in the textbook \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total insertion loss = 1.15 dB\n",
+ "\n",
+ " the answer is wrong in the textbook \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4: PgNo-292"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "n1=1.46 # core refractive index\n",
+ "n=1 #refractive index due to air\n",
+ "a=1 # core radius in m\n",
+ "y=0.12 #lateral offset \n",
+ "\n",
+ "# Calculations\n",
+ "A=(y/a)*math.pow((1-math.pow((y/(2*a)),2)),0.5)\n",
+ "B=math.acos(y/(2*a))\n",
+ "C=n1/n\n",
+ "M=(16*math.pow(C,2))/(math.pi*math.pow((1+C),4))\n",
+ "n_lat=M*(2*B-A) #coupling efficiency when there is a smsll air gap\n",
+ "L_lat=-10*math.log(n_lat)/math.log(10) # insertion loss when there is a smsll air gap\n",
+ "n_lat1=(1/math.pi)*(2*B-A) # coupling efficiency when the joint is indexed matched\n",
+ "L_lat1=-10*math.log(n_lat1)/math.log(10) # insertion loss when the joint is indexed matched\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The insertion loss when there is a smsll air gap = \",L_lat,\"dB\"))\n",
+ "print ('%s %.2f %s' %( \"\\n The insertion loss when the joint is indexed matched = \",L_lat1,\"dB\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The insertion loss when there is a smsll air gap = 0.65 dB\n",
+ "\n",
+ " The insertion loss when the joint is indexed matched = 0.34 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5: PgNo-296"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "d1=60*math.pow(10,-6)# core diameter of fiber 1 in m\n",
+ "d2=50*math.pow(10,-6) # core diameter of fiber 1 in m\n",
+ "NA1=0.25 # numerical aerture of fiber 1\n",
+ "NA2=0.22 # numerical aerture of fiber 2\n",
+ "a1=2.0 # for fiber 1\n",
+ "a2=1.9 # for fiber 2\n",
+ "\n",
+ "# calculations\n",
+ "n_cd=math.pow((d2/d1),2)\n",
+ "n_NA=math.pow((NA2/NA1),2);\n",
+ "n_a=(1+(2/a1))/(1+(2/a2))\n",
+ "n_t=n_cd*n_NA*n_a # total coupling efficiency\n",
+ "Lt=-10*math.log(n_t)/math.log(10) #total loss at the joint in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f ' %(\" The total coupling efficiency in the frw direction = \", n_t))\n",
+ "print ('%s %.2f %s' %(\"\\n The total loss at the joint in the frw direction = \",Lt,\"dB\"))\n",
+ "print (\"\\n In the backward direction n_cd & n_a are all unity therefore there will be no loss in the backward direction of transmission of the signal \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total coupling efficiency in the frw direction = 0.524 \n",
+ "\n",
+ " The total loss at the joint in the frw direction = 2.81 dB\n",
+ "\n",
+ " In the backward direction n_cd & n_a are all unity therefore there will be no loss in the backward direction of transmission of the signal \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6: PgNo-298"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "d1=80*math.pow(10,-6) #core diameter of fiber 1 in m\n",
+ "d2=60*math.pow(10,-6) #core diameter of fiber 1 in m\n",
+ "NA1=0.25 # numerical aerture of fiber 1\n",
+ "NA2=0.20 # numerical aerture of fiber 2\n",
+ "a1=1.9 # for fiber 1\n",
+ "a2=2.1 # for fiber 2\n",
+ "\n",
+ "# Calculations\n",
+ "n_cd=math.pow((d2/d1),2)\n",
+ "n_NA=math.pow((NA2/NA1),2)\n",
+ "n_a=(1+(2/a1))/(1+(2/a2))\n",
+ "n_t=n_cd*n_NA*n_a # total coupling efficiency in the frw direction\n",
+ "Lt=-10*math.log(n_t)/math.log(10) # total loss at the joint in the frw direction in dB\n",
+ "n_cd1=1\n",
+ "n_NA1=1\n",
+ "n_a1=(1+(2/a2))/(1+(2/a1))\n",
+ "n_t1=n_cd1*n_NA1*n_a1 # total coupling efficiency in the backward direction\n",
+ "Lt1=-10*math.log(n_t1)/math.log(10)# total loss at the joint in the backward direction in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The total loss at the joint in the frw direction = \",Lt,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The total loss at the joint in the backward direction = \",Lt1,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total loss at the joint in the frw direction = 4.22 dB\n",
+ "\n",
+ " The total loss at the joint in the backward direction = 0.22 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7: PgNo-303"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "n1=1.5 # core refractive index\n",
+ "n=1.47 # refractive index due to air\n",
+ "a=1 # core radius in m\n",
+ "y=0.12 # lateral offset\n",
+ "\n",
+ "# calculations\n",
+ "A=(y/a)*math.pow((1-math.pow((y/(2*a)),2)),0.5)\n",
+ "B=math.acos(y/(2*a))\n",
+ "C=n1/n\n",
+ "M=(16*math.pow(C,2))/(math.pi*math.pow((1+C),4))\n",
+ "n_lat=M*(2*B-A) #coupling efficiency of the splice\n",
+ "L_lat=-10*math.log(n_lat)/math.log(10) #insertion loss of the splice\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %( \" The insertion loss of the splice = \",L_lat,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The insertion loss of the splice = 0.35 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8: PgNo-305"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "L_f=0.036\n",
+ "n_f=math.pow(10,(-0.036))\n",
+ "# here we get a quadratic equation in n1 and on solving we get\n",
+ "n1=(2.17+math.sqrt(math.pow((-2.17),2)-4*1*1))/2 # refractive index of the fiber core\n",
+ "# Results\n",
+ "print ('%s %.3f' %(\" The refractive index of the fiber core = \", n1))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The refractive index of the fiber core = 1.506\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9: PgNo-309"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "n1=1.46 #core refractive index\n",
+ "n=4 # refractive index due to air\n",
+ "x=math.pi/180\n",
+ "A=(16*math.pow(n1,2))/(math.pow((1+n1),4))\n",
+ "B=n*x\n",
+ "n_ang=math.pow(10,(-0.06)) # angular coupling efficiency\n",
+ "NA=B/((math.pi)*(1-(n_ang/A))) # numerical aperture\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" The numerical aperture = \", NA))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The numerical aperture = 0.34\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10: PgNo-311"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "y=5*math.pow(10,-6) # lateral misalignment in m\n",
+ "a=25*math.pow(10,-6) # core diameter in m\n",
+ "Lt=0.85*(y/a) # misalignment loss\n",
+ "n_c=1-Lt # coupling efficiency\n",
+ "L_i=-10*math.log(n_c)/math.log(10) # insertion loss in dB\n",
+ "Lt1=0.75*(y/a) # misalignment loss if we have both guided and leaky modes\n",
+ "n_c1=1-Lt1 # coupling efficiency\n",
+ "L_i1=-10*math.log(n_c1)/math.log(10) # insertion loss in dB if we have both guided and leaky modes\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The insertion loss = \",L_i,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The insertion loss,if we have both guided and leaky modes = \",L_i1,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The insertion loss = 0.81 dB\n",
+ "\n",
+ " The insertion loss,if we have both guided and leaky modes = 0.71 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11: PgNo-314"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.5 # core refractive index\n",
+ "n=1 # refractive index due to air\n",
+ "x=5*math.pi/180\n",
+ "\n",
+ "# Calculations\n",
+ "C=n1/n\n",
+ "A=(16*math.pow(C,2))/(math.pow((1+C),4))\n",
+ "B=n*x\n",
+ "NA=0.22 # numerical aperture\n",
+ "n_ang=A*(1-(B/(math.pi*NA))) # angular coupling efficiency\n",
+ "L_ang=-10*math.log(n_ang)/math.log(10) # inserion loss when NA=0.22\n",
+ "NA1=0.32 # numerical aperture\n",
+ "n_ang1=A*(1-(B/(math.pi*NA1))) # angular coupling efficiency\n",
+ "L_ang1=-10*math.log(n_ang1)/math.log(10) # inserion loss when NA=0.32\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The inserion loss when NA=0.22 = \",L_ang,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The inserion loss when NA=0.32 = \",L_ang1,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The inserion loss when NA=0.22 = 0.94 dB\n",
+ "\n",
+ " The inserion loss when NA=0.32 = 0.75 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12: PgNo-315"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "V=2.50 # normalised frequency\n",
+ "n1=1.5 # core refractive index\n",
+ "a=4.5*math.pow(10,-6) # core radius in m\n",
+ "NA=0.2 # numerical aperture\n",
+ "y=3*math.pow(10,-6) # lateral misalignment in m\n",
+ "w=a*((0.65+1.62*math.pow((V),-1.5)+2.88*math.pow((V),-6))/math.pow(2,0.5)) # normalised spot size in m\n",
+ "T1=2.17*math.pow((y/w),2) # Loss due to lateral offset in dB\n",
+ "x=(math.pi/180)*w\n",
+ "Ta=2.17*math.pow(((x*n1*V)/(a*NA)),2) # loss due to angular misalignment in dB\n",
+ "T=T1+Ta # total insertion loss in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The total insertion loss = \",T,\"dB\"))\n",
+ "print (\"\\n The answer is wrong in the textbook \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total insertion loss = 1.813 dB\n",
+ "\n",
+ " The answer is wrong in the textbook \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13: PgNo-317"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "P1=65 # optical power in uW\n",
+ "P2=0.005 #output power at port 2 in uW\n",
+ "P3=24 # output power at port 3 in uW\n",
+ "P4=26.5 #output power at port 4 in uW\n",
+ "\n",
+ "# Calculations\n",
+ "Le=10*math.log(P1/(P3+P4))/math.log(10) # Excess loss in dB\n",
+ "Le1=10*math.log(P1/P3)/math.log(10) # insertion loss port 1 to 3 in dB\n",
+ "Le2=10*math.log(P1/P4)/math.log(10) # insertion loss port 1 to 4 in dB\n",
+ "ct=10*math.log(P2/P1)/math.log(10) # cross talk in dB\n",
+ "sr=(P3/(P3+P4))*100 # split ratio\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The Excess loss = \",Le,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The insertion loss port 1 to 3 = \",Le1,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The insertion loss port 1 to 4 = \",Le2,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The cross talk = \",ct,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The split ratio = \",sr,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Excess loss = 1.10 dB\n",
+ "\n",
+ " The insertion loss port 1 to 3 = 3.01 dB\n",
+ "\n",
+ " The insertion loss port 1 to 4 = 3.90 dB\n",
+ "\n",
+ " The cross talk = -41.14 dB\n",
+ "\n",
+ " The split ratio = 47.52 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14: PgNo-318"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "n=1.0\n",
+ "n1=1.48\n",
+ "r=math.pow(((n1-n)/(n1+n)),2) # fresnel's reflection\n",
+ "Ls=-10*math.log(1-r)/math.log(10) #optical loss in dB\n",
+ "Lt=2*Ls # total fresnel loss\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The total fresnel loss = \",Lt,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total fresnel loss = 0.33 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15: PgNo-322"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "NA1=0.32 # numerical aperture for fiber1\n",
+ "NA2=0.22 # numerical aperture for fiber2\n",
+ "Lc=20*math.log(NA1/NA2)/math.log(10) #NA mismatch coupling loss\n",
+ "\n",
+ "#Results\n",
+ "print ('%s %.2f %s' %(\" The NA mismatch coupling loss = \",Lc,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The NA mismatch coupling loss = 3.25 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16: PgNo-325"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "P0=250.0 # optical power in uW\n",
+ "P1=80.0 # output power at port 1 in uW\n",
+ "P2=70.0 # output power at port 2 in uW\n",
+ "P3=5*math.pow(10,-3) # output power at port 3 in uW\n",
+ "\n",
+ "# calculations\n",
+ "cr=(P2/(P1+P2))*100 # coupling ratio\n",
+ "Le=10*math.log(P0/(P1+P2))/math.log(10) # Excess loss in dB\n",
+ "Le1=10*math.log(P0/P1)/math.log(10) # insertion loss port 0 to 1 in dB\n",
+ "Le2=10*math.log(P0/P2)/math.log(10) # insertion loss port 0 to 2 in dB\n",
+ "ct=10*math.log(P3/P0)/math.log(10) #cross talk in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The coupling ratio = \",cr,\"%\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The Excess loss = \",Le,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The insertion loss port 0 to 1 = \",Le1,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The insertion loss port 0 to 2 = \",Le2,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The cross talk = \",ct,\"dB\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The coupling ratio = 46.67 %\n",
+ "\n",
+ " The Excess loss = 2.22 dB\n",
+ "\n",
+ " The insertion loss port 0 to 1 = 4.95 dB\n",
+ "\n",
+ " The insertion loss port 0 to 2 = 5.53 dB\n",
+ "\n",
+ " The cross talk = -46.99 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17: PgNo-327"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "P_21=4.0/5.0 # ratio of the input available at port2\n",
+ "P_31=1.0/5.0 # ratio of the input available at port3 \n",
+ "Lt=-10*math.log(P_21)/math.log(10) # throughput loss\n",
+ "Lp=-10*math.log(P_31)/math.log(10) # tap loss\n",
+ "Le=-10*math.log(P_21+P_31)/math.log(10) # excess loss\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The throughput loss = \",Lt,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The tap loss = \",Lp,\"dB\"))\n",
+ "print (\"\\n Directionality=-10*log(0/Pi=infinity)\")\n",
+ "print ('%s %.1f %s' %(\"\\n The excess loss = \",Le,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The throughput loss = 0.97 dB\n",
+ "\n",
+ " The tap loss = 6.99 dB\n",
+ "\n",
+ " Directionality=-10*log(0/Pi=infinity)\n",
+ "\n",
+ " The excess loss = -0.0 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18: PgNo-329"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "Le=4 # excess loss in dB\n",
+ "D=60 # Directionality in dB\n",
+ "P_41=math.pow(10,-6) # the ratio of P4 to P1\n",
+ "P_31=0.670/5 # the ratio of P3 to P1\n",
+ "P_21=P_31*4 # the ratio of P2 to P1\n",
+ "Lt=-10*math.log(P_21)/math.log(10) # throughput loss\n",
+ "Lp=-10*math.log(P_31)/math.log(10) # tap loss\n",
+ "Ls=-10*math.log(0.670)/math.log(10) # loss due to radiation scattering in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The fraction of the input power goes to each of the ports = \",P_21,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The throughput loss = \",Lt,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The tap loss = \",Lp,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The loss due to radiation scattering = \",Ls,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The fraction of the input power goes to each of the ports = 0.54 dB\n",
+ "\n",
+ " The throughput loss = 2.71 dB\n",
+ "\n",
+ " The tap loss = 8.73 dB\n",
+ "\n",
+ " The loss due to radiation scattering = 1.74 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19: PgNo-330"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "L1=1.5 # length in km\n",
+ "L2=2/1000 # length in km\n",
+ "Pi=50.1*math.pow(10,-6) # optical power in W\n",
+ "Po=385.4*math.pow(10,-6) # output power in W\n",
+ "a=(10/(L1-L2))*math.log(Po/Pi)/math.log(10) # attenuation per km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The attenuation per km = \",a,\"dB/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The attenuation per km = 5.91 dB/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20: PgNo-334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Psc=5.31*math.pow(10,-9)\n",
+ "Popt=98.45*math.pow(10,-6) \n",
+ "L=5.99 # length in km\n",
+ "asc=(4.343*math.pow(10,5)/L)*(Psc/Popt) # scattering loss in the fiber in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The scattering loss in the fiber = \",asc,\"dB/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The scattering loss in the fiber = 3.91 dB/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Optical_Fiber_Communication/Chapter7_1.ipynb b/Optical_Fiber_Communication/Chapter7_1.ipynb new file mode 100755 index 00000000..b4eca185 --- /dev/null +++ b/Optical_Fiber_Communication/Chapter7_1.ipynb @@ -0,0 +1,933 @@ +{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:915bbc296599c9cae8476366ab28673955be075640a27c082930b79dfed61501"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7: Optical Detectors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1: PgNo-284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.46 # core refractive index\n",
+ "n=1 # refractive index due to air\n",
+ "r=math.pow(((n1-n)/(n1+n)),2)\n",
+ "r1=0.03 # r take upto two decimal place\n",
+ "l_s=-10*math.log(1-r1)/math.log(10) # fiber loss in db\n",
+ "l_t=2*l_s # total loss in db\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The fiber loss = \",l_s,\"db\"))\n",
+ "print (\"\\n there is a similar loss at the other interface \")\n",
+ "print ('%s %.2f %s' %(\"\\n The total fiber loss = \",l_t,\"db\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The fiber loss = 0.13 db\n",
+ "\n",
+ " there is a similar loss at the other interface \n",
+ "\n",
+ " The total fiber loss = 0.26 db\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2: PgNo-285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.46 # core refractive index\n",
+ "n=1 # refractive index due to air\n",
+ "a=25*math.pow(10,-6) # core radius in m\n",
+ "y=3*math.pow(10,-6) # in m\n",
+ "\n",
+ "# calculations\n",
+ "A=(y/a)*math.pow((1-math.pow((y/(2*a)),2)),0.5)\n",
+ "B=math.acos(y/(2*a))\n",
+ "C=n1/n\n",
+ "M=(16*math.pow(C,2))/(math.pi*math.pow((1+C),4))\n",
+ "n_lat=M*(2*B-A) # coupling efficiency for multimode step index fiber\n",
+ "L_lat=-10*math.log(n_lat)/math.log(10) # insertion loss for lateral misalignment\n",
+ "n_lat1=(1/math.pi)*(2*B-A) # coupling efficiency when there is no air gap\n",
+ "L_lat1=-10*math.log(n_lat1)/math.log(10) # insertion loss for lateral misalignment when there is no air gap\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f ' %(\" The coupling efficiency for multimode step index fiber = \", n_lat))\n",
+ "print ('%s %.2f %s' %(\"\\n The insertion loss for lateral misalignment = \",L_lat,\"dB\"))\n",
+ "print ('%s %.2f ' %(\"\\n The coupling efficiency when there is no air gap = \", n_lat1))\n",
+ "print ('%s %.2f %s' %(\"\\n The insertion loss for lateral misalignment when there is no air gap = \",L_lat1,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The coupling efficiency for multimode step index fiber = 0.86 \n",
+ "\n",
+ " The insertion loss for lateral misalignment = 0.65 dB\n",
+ "\n",
+ " The coupling efficiency when there is no air gap = 0.92 \n",
+ "\n",
+ " The insertion loss for lateral misalignment when there is no air gap = 0.34 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3: PgNo-287"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n=1 # refractive index due to air\n",
+ "a=25*math.pow(10,-6) # core radius in m\n",
+ "y=4*math.pow(10,-6) # in m\n",
+ "\n",
+ "# calculations\n",
+ "A=(y/a)*math.pow((1-math.pow((y/(2*a)),2)),0.5)\n",
+ "B=math.acos(y/(2*a))\n",
+ "C=n1/n\n",
+ "M=(16*math.pow(C,2))/(math.pi*math.pow((1+C),4))\n",
+ "n_lat=M*(2*B-A) # coupling efficiency for multimode step index fiber\n",
+ "L_lat=-10*math.log(n_lat)/math.log(10) # insertion loss for lateral misalignment\n",
+ "dx=4*(math.pi/180) # angular misalignment in radian\n",
+ "dl=0.02 #relative index difference\n",
+ "NA=n1*math.sqrt(2*dl) # numerical aperture\n",
+ "n_ang=1-(0.069/(math.pi*NA)) # coupling efficiency due to angular misalignment\n",
+ "L_ang=-10*math.log(n_ang)/math.log(10) # loss due to angular misalignment\n",
+ "Lt=L_lat+L_ang # total insertion loss in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %( \" The total insertion loss = \",Lt,\"dB\"))\n",
+ "print (\"\\n the answer is wrong in the textbook \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total insertion loss = 1.15 dB\n",
+ "\n",
+ " the answer is wrong in the textbook \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4: PgNo-292"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "n1=1.46 # core refractive index\n",
+ "n=1 #refractive index due to air\n",
+ "a=1 # core radius in m\n",
+ "y=0.12 #lateral offset \n",
+ "\n",
+ "# Calculations\n",
+ "A=(y/a)*math.pow((1-math.pow((y/(2*a)),2)),0.5)\n",
+ "B=math.acos(y/(2*a))\n",
+ "C=n1/n\n",
+ "M=(16*math.pow(C,2))/(math.pi*math.pow((1+C),4))\n",
+ "n_lat=M*(2*B-A) #coupling efficiency when there is a smsll air gap\n",
+ "L_lat=-10*math.log(n_lat)/math.log(10) # insertion loss when there is a smsll air gap\n",
+ "n_lat1=(1/math.pi)*(2*B-A) # coupling efficiency when the joint is indexed matched\n",
+ "L_lat1=-10*math.log(n_lat1)/math.log(10) # insertion loss when the joint is indexed matched\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The insertion loss when there is a smsll air gap = \",L_lat,\"dB\"))\n",
+ "print ('%s %.2f %s' %( \"\\n The insertion loss when the joint is indexed matched = \",L_lat1,\"dB\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The insertion loss when there is a smsll air gap = 0.65 dB\n",
+ "\n",
+ " The insertion loss when the joint is indexed matched = 0.34 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5: PgNo-296"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "d1=60*math.pow(10,-6)# core diameter of fiber 1 in m\n",
+ "d2=50*math.pow(10,-6) # core diameter of fiber 1 in m\n",
+ "NA1=0.25 # numerical aerture of fiber 1\n",
+ "NA2=0.22 # numerical aerture of fiber 2\n",
+ "a1=2.0 # for fiber 1\n",
+ "a2=1.9 # for fiber 2\n",
+ "\n",
+ "# calculations\n",
+ "n_cd=math.pow((d2/d1),2)\n",
+ "n_NA=math.pow((NA2/NA1),2);\n",
+ "n_a=(1+(2/a1))/(1+(2/a2))\n",
+ "n_t=n_cd*n_NA*n_a # total coupling efficiency\n",
+ "Lt=-10*math.log(n_t)/math.log(10) #total loss at the joint in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f ' %(\" The total coupling efficiency in the frw direction = \", n_t))\n",
+ "print ('%s %.2f %s' %(\"\\n The total loss at the joint in the frw direction = \",Lt,\"dB\"))\n",
+ "print (\"\\n In the backward direction n_cd & n_a are all unity therefore there will be no loss in the backward direction of transmission of the signal \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total coupling efficiency in the frw direction = 0.524 \n",
+ "\n",
+ " The total loss at the joint in the frw direction = 2.81 dB\n",
+ "\n",
+ " In the backward direction n_cd & n_a are all unity therefore there will be no loss in the backward direction of transmission of the signal \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6: PgNo-298"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "d1=80*math.pow(10,-6) #core diameter of fiber 1 in m\n",
+ "d2=60*math.pow(10,-6) #core diameter of fiber 1 in m\n",
+ "NA1=0.25 # numerical aerture of fiber 1\n",
+ "NA2=0.20 # numerical aerture of fiber 2\n",
+ "a1=1.9 # for fiber 1\n",
+ "a2=2.1 # for fiber 2\n",
+ "\n",
+ "# Calculations\n",
+ "n_cd=math.pow((d2/d1),2)\n",
+ "n_NA=math.pow((NA2/NA1),2)\n",
+ "n_a=(1+(2/a1))/(1+(2/a2))\n",
+ "n_t=n_cd*n_NA*n_a # total coupling efficiency in the frw direction\n",
+ "Lt=-10*math.log(n_t)/math.log(10) # total loss at the joint in the frw direction in dB\n",
+ "n_cd1=1\n",
+ "n_NA1=1\n",
+ "n_a1=(1+(2/a2))/(1+(2/a1))\n",
+ "n_t1=n_cd1*n_NA1*n_a1 # total coupling efficiency in the backward direction\n",
+ "Lt1=-10*math.log(n_t1)/math.log(10)# total loss at the joint in the backward direction in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The total loss at the joint in the frw direction = \",Lt,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The total loss at the joint in the backward direction = \",Lt1,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total loss at the joint in the frw direction = 4.22 dB\n",
+ "\n",
+ " The total loss at the joint in the backward direction = 0.22 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7: PgNo-303"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "n1=1.5 # core refractive index\n",
+ "n=1.47 # refractive index due to air\n",
+ "a=1 # core radius in m\n",
+ "y=0.12 # lateral offset\n",
+ "\n",
+ "# calculations\n",
+ "A=(y/a)*math.pow((1-math.pow((y/(2*a)),2)),0.5)\n",
+ "B=math.acos(y/(2*a))\n",
+ "C=n1/n\n",
+ "M=(16*math.pow(C,2))/(math.pi*math.pow((1+C),4))\n",
+ "n_lat=M*(2*B-A) #coupling efficiency of the splice\n",
+ "L_lat=-10*math.log(n_lat)/math.log(10) #insertion loss of the splice\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %( \" The insertion loss of the splice = \",L_lat,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The insertion loss of the splice = 0.35 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8: PgNo-305"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "L_f=0.036\n",
+ "n_f=math.pow(10,(-0.036))\n",
+ "# here we get a quadratic equation in n1 and on solving we get\n",
+ "n1=(2.17+math.sqrt(math.pow((-2.17),2)-4*1*1))/2 # refractive index of the fiber core\n",
+ "# Results\n",
+ "print ('%s %.3f' %(\" The refractive index of the fiber core = \", n1))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The refractive index of the fiber core = 1.506\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9: PgNo-309"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "n1=1.46 #core refractive index\n",
+ "n=4 # refractive index due to air\n",
+ "x=math.pi/180\n",
+ "A=(16*math.pow(n1,2))/(math.pow((1+n1),4))\n",
+ "B=n*x\n",
+ "n_ang=math.pow(10,(-0.06)) # angular coupling efficiency\n",
+ "NA=B/((math.pi)*(1-(n_ang/A))) # numerical aperture\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" The numerical aperture = \", NA))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The numerical aperture = 0.34\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10: PgNo-311"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "y=5*math.pow(10,-6) # lateral misalignment in m\n",
+ "a=25*math.pow(10,-6) # core diameter in m\n",
+ "Lt=0.85*(y/a) # misalignment loss\n",
+ "n_c=1-Lt # coupling efficiency\n",
+ "L_i=-10*math.log(n_c)/math.log(10) # insertion loss in dB\n",
+ "Lt1=0.75*(y/a) # misalignment loss if we have both guided and leaky modes\n",
+ "n_c1=1-Lt1 # coupling efficiency\n",
+ "L_i1=-10*math.log(n_c1)/math.log(10) # insertion loss in dB if we have both guided and leaky modes\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The insertion loss = \",L_i,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The insertion loss,if we have both guided and leaky modes = \",L_i1,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The insertion loss = 0.81 dB\n",
+ "\n",
+ " The insertion loss,if we have both guided and leaky modes = 0.71 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11: PgNo-314"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.5 # core refractive index\n",
+ "n=1 # refractive index due to air\n",
+ "x=5*math.pi/180\n",
+ "\n",
+ "# Calculations\n",
+ "C=n1/n\n",
+ "A=(16*math.pow(C,2))/(math.pow((1+C),4))\n",
+ "B=n*x\n",
+ "NA=0.22 # numerical aperture\n",
+ "n_ang=A*(1-(B/(math.pi*NA))) # angular coupling efficiency\n",
+ "L_ang=-10*math.log(n_ang)/math.log(10) # inserion loss when NA=0.22\n",
+ "NA1=0.32 # numerical aperture\n",
+ "n_ang1=A*(1-(B/(math.pi*NA1))) # angular coupling efficiency\n",
+ "L_ang1=-10*math.log(n_ang1)/math.log(10) # inserion loss when NA=0.32\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The inserion loss when NA=0.22 = \",L_ang,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The inserion loss when NA=0.32 = \",L_ang1,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The inserion loss when NA=0.22 = 0.94 dB\n",
+ "\n",
+ " The inserion loss when NA=0.32 = 0.75 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12: PgNo-315"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "V=2.50 # normalised frequency\n",
+ "n1=1.5 # core refractive index\n",
+ "a=4.5*math.pow(10,-6) # core radius in m\n",
+ "NA=0.2 # numerical aperture\n",
+ "y=3*math.pow(10,-6) # lateral misalignment in m\n",
+ "w=a*((0.65+1.62*math.pow((V),-1.5)+2.88*math.pow((V),-6))/math.pow(2,0.5)) # normalised spot size in m\n",
+ "T1=2.17*math.pow((y/w),2) # Loss due to lateral offset in dB\n",
+ "x=(math.pi/180)*w\n",
+ "Ta=2.17*math.pow(((x*n1*V)/(a*NA)),2) # loss due to angular misalignment in dB\n",
+ "T=T1+Ta # total insertion loss in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The total insertion loss = \",T,\"dB\"))\n",
+ "print (\"\\n The answer is wrong in the textbook \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total insertion loss = 1.813 dB\n",
+ "\n",
+ " The answer is wrong in the textbook \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13: PgNo-317"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "P1=65 # optical power in uW\n",
+ "P2=0.005 #output power at port 2 in uW\n",
+ "P3=24 # output power at port 3 in uW\n",
+ "P4=26.5 #output power at port 4 in uW\n",
+ "\n",
+ "# Calculations\n",
+ "Le=10*math.log(P1/(P3+P4))/math.log(10) # Excess loss in dB\n",
+ "Le1=10*math.log(P1/P3)/math.log(10) # insertion loss port 1 to 3 in dB\n",
+ "Le2=10*math.log(P1/P4)/math.log(10) # insertion loss port 1 to 4 in dB\n",
+ "ct=10*math.log(P2/P1)/math.log(10) # cross talk in dB\n",
+ "sr=(P3/(P3+P4))*100 # split ratio\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The Excess loss = \",Le,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The insertion loss port 1 to 3 = \",Le1,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The insertion loss port 1 to 4 = \",Le2,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The cross talk = \",ct,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The split ratio = \",sr,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Excess loss = 1.10 dB\n",
+ "\n",
+ " The insertion loss port 1 to 3 = 3.01 dB\n",
+ "\n",
+ " The insertion loss port 1 to 4 = 3.90 dB\n",
+ "\n",
+ " The cross talk = -41.14 dB\n",
+ "\n",
+ " The split ratio = 47.52 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14: PgNo-318"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "n=1.0\n",
+ "n1=1.48\n",
+ "r=math.pow(((n1-n)/(n1+n)),2) # fresnel's reflection\n",
+ "Ls=-10*math.log(1-r)/math.log(10) #optical loss in dB\n",
+ "Lt=2*Ls # total fresnel loss\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The total fresnel loss = \",Lt,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total fresnel loss = 0.33 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15: PgNo-322"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "NA1=0.32 # numerical aperture for fiber1\n",
+ "NA2=0.22 # numerical aperture for fiber2\n",
+ "Lc=20*math.log(NA1/NA2)/math.log(10) #NA mismatch coupling loss\n",
+ "\n",
+ "#Results\n",
+ "print ('%s %.2f %s' %(\" The NA mismatch coupling loss = \",Lc,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The NA mismatch coupling loss = 3.25 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16: PgNo-325"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "P0=250.0 # optical power in uW\n",
+ "P1=80.0 # output power at port 1 in uW\n",
+ "P2=70.0 # output power at port 2 in uW\n",
+ "P3=5*math.pow(10,-3) # output power at port 3 in uW\n",
+ "\n",
+ "# calculations\n",
+ "cr=(P2/(P1+P2))*100 # coupling ratio\n",
+ "Le=10*math.log(P0/(P1+P2))/math.log(10) # Excess loss in dB\n",
+ "Le1=10*math.log(P0/P1)/math.log(10) # insertion loss port 0 to 1 in dB\n",
+ "Le2=10*math.log(P0/P2)/math.log(10) # insertion loss port 0 to 2 in dB\n",
+ "ct=10*math.log(P3/P0)/math.log(10) #cross talk in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The coupling ratio = \",cr,\"%\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The Excess loss = \",Le,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The insertion loss port 0 to 1 = \",Le1,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The insertion loss port 0 to 2 = \",Le2,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The cross talk = \",ct,\"dB\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The coupling ratio = 46.67 %\n",
+ "\n",
+ " The Excess loss = 2.22 dB\n",
+ "\n",
+ " The insertion loss port 0 to 1 = 4.95 dB\n",
+ "\n",
+ " The insertion loss port 0 to 2 = 5.53 dB\n",
+ "\n",
+ " The cross talk = -46.99 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17: PgNo-327"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "P_21=4.0/5.0 # ratio of the input available at port2\n",
+ "P_31=1.0/5.0 # ratio of the input available at port3 \n",
+ "Lt=-10*math.log(P_21)/math.log(10) # throughput loss\n",
+ "Lp=-10*math.log(P_31)/math.log(10) # tap loss\n",
+ "Le=-10*math.log(P_21+P_31)/math.log(10) # excess loss\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The throughput loss = \",Lt,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The tap loss = \",Lp,\"dB\"))\n",
+ "print (\"\\n Directionality=-10*log(0/Pi=infinity)\")\n",
+ "print ('%s %.1f %s' %(\"\\n The excess loss = \",Le,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The throughput loss = 0.97 dB\n",
+ "\n",
+ " The tap loss = 6.99 dB\n",
+ "\n",
+ " Directionality=-10*log(0/Pi=infinity)\n",
+ "\n",
+ " The excess loss = -0.0 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18: PgNo-329"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "Le=4 # excess loss in dB\n",
+ "D=60 # Directionality in dB\n",
+ "P_41=math.pow(10,-6) # the ratio of P4 to P1\n",
+ "P_31=0.670/5 # the ratio of P3 to P1\n",
+ "P_21=P_31*4 # the ratio of P2 to P1\n",
+ "Lt=-10*math.log(P_21)/math.log(10) # throughput loss\n",
+ "Lp=-10*math.log(P_31)/math.log(10) # tap loss\n",
+ "Ls=-10*math.log(0.670)/math.log(10) # loss due to radiation scattering in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The fraction of the input power goes to each of the ports = \",P_21,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The throughput loss = \",Lt,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The tap loss = \",Lp,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The loss due to radiation scattering = \",Ls,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The fraction of the input power goes to each of the ports = 0.54 dB\n",
+ "\n",
+ " The throughput loss = 2.71 dB\n",
+ "\n",
+ " The tap loss = 8.73 dB\n",
+ "\n",
+ " The loss due to radiation scattering = 1.74 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19: PgNo-330"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "L1=1.5 # length in km\n",
+ "L2=2/1000 # length in km\n",
+ "Pi=50.1*math.pow(10,-6) # optical power in W\n",
+ "Po=385.4*math.pow(10,-6) # output power in W\n",
+ "a=(10/(L1-L2))*math.log(Po/Pi)/math.log(10) # attenuation per km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The attenuation per km = \",a,\"dB/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The attenuation per km = 5.91 dB/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20: PgNo-334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Psc=5.31*math.pow(10,-9)\n",
+ "Popt=98.45*math.pow(10,-6) \n",
+ "L=5.99 # length in km\n",
+ "asc=(4.343*math.pow(10,5)/L)*(Psc/Popt) # scattering loss in the fiber in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The scattering loss in the fiber = \",asc,\"dB/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The scattering loss in the fiber = 3.91 dB/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Optical_Fiber_Communication/Chapter8.ipynb b/Optical_Fiber_Communication/Chapter8.ipynb new file mode 100755 index 00000000..57a8dd8b --- /dev/null +++ b/Optical_Fiber_Communication/Chapter8.ipynb @@ -0,0 +1,1192 @@ +{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a1fc86a1745331cbb94487da02761804f9fca4fd4c628ee53c6bfd5a750d81a6"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8: Optical Fiber Communication System"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1: PgNo-339"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "tr=40.0 # rediative life time in ns\n",
+ "tnr=60.0 # nonrediative life time in ns\n",
+ "i=35*math.pow(10,-3) # drive current in amp\n",
+ "y=0.85*math.pow(10,-6)# wavelength in m\n",
+ "h=6.626*math.pow(10,-34)# plank constant\n",
+ "c=3*math.pow(10,8)# the speed of light in m/s\n",
+ "eq=1.602*math.pow(10,-19)# charge\n",
+ "\n",
+ "# calculations\n",
+ "t=tr*tnr/(tr+tnr)# total carrier recombination lifetime ns\n",
+ "ni=t/tr # internal quantam efficiency\n",
+ "pil=(ni*h*c*i)/(eq*y)# internal power in watt\n",
+ "p_int=pil*math.pow(10,3)# internal power in mW\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.f %s' %(\" The total carrier recombination lifetime = \",t,\"ns\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The internal power = \",p_int,\"mW\"))\n",
+ "print (\"\\n The answer is wrong in textbook \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total carrier recombination lifetime = 24 ns\n",
+ "\n",
+ " The internal power = 30.66 mW\n",
+ "\n",
+ " The answer is wrong in textbook \n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2: PgNo-341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "tr=30.0 # rediative life time in ns\n",
+ "tnr=50.0 # nonrediative life time in ns\n",
+ "i=40*math.pow(10,-3) # drive current in amp\n",
+ "pil=28.4*math.pow(10,-3) # internal power in watt\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "t=tr*tnr/(tr+tnr) # total carrier recombination lifetime ns\n",
+ "ni=t/tr # internal quantam efficiency\n",
+ "y=(ni*h*c*i)/(eq*pil) # peak emission wavelength in m\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The total carrier recombination lifetime = \",t,\"ns\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The peak emission wavelength = \",y*pow(10,6),\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total carrier recombination lifetime = 18.75 ns\n",
+ "\n",
+ " The peak emission wavelength = 1.09 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3: PgNo-345"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "nx=3.6 # refractive index\n",
+ "Fn=0.68 # transmission factor\n",
+ "pe_pi=(Fn)/(4*math.pow(nx,2))\n",
+ "pi_p=0.3\n",
+ "nep=pe_pi*pi_p # external power efficiency\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\"The external power efficiency = \",nep*100,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The external power efficiency = 0.39 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4: PgNo-347"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n=3.6 # core refractive index\n",
+ "NA=0.15 # numerical aperture\n",
+ "nc=math.pow(NA,2) # coupling efficiency\n",
+ "l_s=-10*math.log(nc)/math.log(10) # loss in db\n",
+ "pe_pi=0.023*0.0013 # from ex 8.3\n",
+ "pc=-10*math.log(pe_pi)/math.log(10) # loss in decibels relative to Pint\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The coupling efficiency = \",nc*100,\"%\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The loss = \",l_s,\"db\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The loss in decibels relative to Pint= \",pc,\"db\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The coupling efficiency = 2.25 %\n",
+ "\n",
+ " The loss = 16.478 db\n",
+ "\n",
+ " The loss in decibels relative to Pint= 45.24 db\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5: PgNo-348"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "r=45*math.pow(10,-6) # radius in m\n",
+ "NA=0.3 # numerical aperture\n",
+ "rd=40 # radiance\n",
+ "A=3.14*math.pow((r*100),2) # area in cm^2\n",
+ "pe=3.14*(1-r)*A*rd*math.pow(NA,2) # optical power coupled into the fiber\n",
+ "Pe=pe*math.pow(10,4) # optical power coupled into the fiber uW\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The optical power coupled into the fiber = \",Pe,\"uW\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The optical power coupled into the fiber = 7.187 uW\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6: PgNo-351"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "pc=150*math.pow(10,-6) # coupling power W\n",
+ "p=20*math.pow(10,-3)*2 # optical power W\n",
+ "npc=pc/p # overall efficiency\n",
+ "Npc=npc*100 # percentage of overall efficiency\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The percentage of overall efficiency = \",Npc,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The percentage of overall efficiency = 0.37 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7: PgNo-357"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n=1.5 # refractive index\n",
+ "L=0.05 #crystal length in m\n",
+ "y=0.5*math.pow(10,-6) # wavelength in m\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "q=2*n*L/y # the number of longitudinal modes\n",
+ "df=c/(2*n*L) # frequency separation of the modes in Hz\n",
+ "Df=df/math.pow(10,9) # frequency separation of the modes in GHz\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %d ' %(\" The number of longitudinal modes = \",q))\n",
+ "print ('%s %.2f %s' %(\"\\n The frequency separation of the modes = \",Df,\"GHz\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The number of longitudinal modes = 300000 \n",
+ "\n",
+ " The frequency separation of the modes = 2.00 GHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8: PgNo-358"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "Eg=1.43 # bandgap energy in eV\n",
+ "dy=0.15*math.pow(10,-9);\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=1.24/Eg # in um\n",
+ "y1=y*math.pow(10,-6) # wavelength of optical emission in m\n",
+ "df=(c*dy)/math.pow(y1,2) # the line width in Hz\n",
+ "Df=df/math.pow(10,9) # the line width in GHz\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The wavelength of optical emission = \",y,\"um\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The frequency separation of the modes = \",Df,\"GHz\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The wavelength of optical emission = 0.87 um\n",
+ "\n",
+ " The frequency separation of the modes = 59.8468 GHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9: PgNo-362"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n=3.6 # refractive index\n",
+ "c=3*math.pow(10,8)# speed of light in m/s\n",
+ "y=0.85*math.pow(10,-6)# wavelength in m\n",
+ "df=275*math.pow(10,9) # frequency separation of the modes in Hz\n",
+ "L=c/(2*n*df) # crystal length in m\n",
+ "L1=L*math.pow(10,6) # crystal length in um\n",
+ "q=2*n*L/y # the number of longitudinal modes\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.2f %s' %(\" The crystal length = \",L1,\"um\"))\n",
+ "print ('%s %d' %(\"\\n The the number of longitudinal modes = \",int(q)))\n",
+ "print (\"\\n answer is wrong in textbook \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The crystal length = 151.52 um\n",
+ "\n",
+ " The the number of longitudinal modes = 1283\n",
+ "\n",
+ " answer is wrong in textbook \n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10: PgNo-364"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "nt=0.20# total efficiency\n",
+ "Eg=1.43# bandgap energy in eV\n",
+ "V=2.2# applied voltage in volts\n",
+ "nep=(nt*Eg)/V# external power efficiency\n",
+ "Nep=nep*100# percentage of external power efficiency\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The external power efficiency = \",Nep,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The external power efficiency = 13.00 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11: PgNo-367"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "h=0.35*math.pow(10,-3)# irradiance W/cm^2\n",
+ "po=0.45*math.pow(10,-3)# power output in watt\n",
+ "d=1.5 # separation distance in cm\n",
+ "x=math.sqrt((4*po)/(3.14*math.pow(d,2)*h)) # divergence angle in radians\n",
+ "X=(x*180)/3.14 # divergence angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The divergence angle = \",X,\"degree \"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The divergence angle = 48.909 degree \n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12: PgNo-369"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "ni=0.09 # normal efficiency\n",
+ "d=2*2.54 # separation distance in cm\n",
+ "x=0.2 # divergence angle in radians\n",
+ "vf=2.0 # forward voltage in volts\n",
+ "i_f=65*math.pow(10,-3) # forward current in amp\n",
+ "pil=vf*i_f # input power in Watt\n",
+ "po=ni*pil # output power in Watt\n",
+ "H=4*po/(3.14*math.pow(d,2)*math.pow(x,2)) # irradiance in watt/cm^2\n",
+ "H1=H*1000 # irradiance in mwatt/cm^2\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The irradiance = \",H1,\"mwatt/cm^2 \"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The irradiance = 14.44 mwatt/cm^2 \n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13: PgNo-372"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "tr=3.5 # relative life time in ms\n",
+ "tnr=50 # nonrelative life time in ms\n",
+ "ni=tnr/(tr+tnr) # internal quantam efficiency\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.2f %s' %(\" The internal quantam efficiency = \",ni*100,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The internal quantam efficiency = 93.46 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14: PgNo-375"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# initialisation of variables\n",
+ "ni=0.15 # internal quantam efficiency\n",
+ "vf=2.0 # forward voltage in volts\n",
+ "i_f=15*math.pow(10,-3) # forward current in amp\n",
+ "x=25 # acceptance angle in degree\n",
+ "pil=vf*i_f # input power in Watt\n",
+ "po=ni*pil # output power in Watt\n",
+ "NA=(math.sin(x*math.pi/180))\n",
+ "nc=math.pow(NA,2) # numerical aperture\n",
+ "pf=nc*po # optical power coupled into optical fiber in w\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The optical power coupled into optical fiber = \",pf*1000,\"mW\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The optical power coupled into optical fiber = 0.80 mW\n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15: PgNo-378"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "tnr=10 # nonrediative life time in ns\n",
+ "n_inj=0.80 # injection efficiency\n",
+ "n_ex=0.60 # extraction efficiency\n",
+ "nt=0.025 # total efficiency\n",
+ "nr=nt/(n_inj*n_ex) # non rediative life time in ns\n",
+ "tr=((1/nr)-1)*tnr # rediative life time in ns\n",
+ "# Results\n",
+ "print ('%s %.1f %s' %(\" The rediative life time = \",tr,\"ns\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The rediative life time = 182.0 ns\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16: PgNo-381"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "tr=30*math.pow(10,-9) # rise time in s\n",
+ "Bw=0.35/tr # bandwidth in Hz\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The bandwidth = \",Bw/math.pow(10,6),\"MHz\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The bandwidth = 11.667 MHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17: PgNo-384"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "y=630*math.pow(10,-9)# operating wavelength in m\n",
+ "w=25*math.pow(10,-6) # spot size in m\n",
+ "x=2*y/(math.pi*w) # divergence angle in radians\n",
+ "x1=x*180/math.pi # divergence angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The divergence angle = \",x,\"radians\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The divergence angle = \",x1,\"degree\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The divergence angle = 0.016 radians\n",
+ "\n",
+ " The divergence angle = 0.919 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18: PgNo-388"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "y1=550*math.pow(10,-3)# peak of eyes response in um\n",
+ "y2=10.6 # standard wavelength in um\n",
+ "y3=2.39 # predominant IR line of He-Ne laser in um\n",
+ "E1=1.24/y1 # energy in electron volts\n",
+ "E2=1.24/y2 # energy in electron volts\n",
+ "E3=1.24/y3 # energy in electron volts\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.3f %s' %(\" The energy = \",E1,\"electron volts\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The energy = \",E2,\"electron volts\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The energy = \",E3,\"electron volts\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The energy = 2.255 electron volts\n",
+ "\n",
+ " The energy = 0.117 electron volts\n",
+ "\n",
+ " The energy = 0.519 electron volts\n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19: PgNo-391"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "Eg=1.4 # energy in electron volts\n",
+ "y=1.24/Eg # cut off wavelength in um\n",
+ "y1=y*1000 # cut off wavelength in nm\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The cut off wavelength = \",y1,\"nm\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 885.7143 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20: PgNo-394"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "y=1200*math.pow(10,-9)# operating wavelength in m\n",
+ "w=5*math.pow(10,-6)# spot size in m\n",
+ "x=2*y/(math.pi*w)# divergence angle in radians\n",
+ "x1=x*180/math.pi # divergence angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The divergence angle = \",x,\"radians\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The divergence angle = \",x1,\"degree\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The divergence angle = 0.153 radians\n",
+ "\n",
+ " The divergence angle = 8.754 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21: PgNo-395"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.48 # core refractive index\n",
+ "n2=1.46 # cladding refractive index \n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "xa=(math.asin(NA))*(180/math.pi) # acceptance angle in degree\n",
+ "nc=math.pow(NA,2) # coupling efficiency\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The acceptance angle = \",xa,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The coupling efficiency = \",nc*100,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The acceptance angle = 14.03 degree\n",
+ "\n",
+ " The coupling efficiency = 5.88 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 22: PgNo-398"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "n=3.66 # for GaAs\n",
+ "L=150*math.pow(10,-6) # cavity length in m\n",
+ "dv=c/(2*n*L) #frequency separation in Hz\n",
+ "dv1=dv/math.pow(10,12) # frequency separation in GHz\n",
+ "h=6.64*math.pow(10,-34) # plank constant\n",
+ "q=1.6*math.pow(10,-19) # charge of an electron\n",
+ "dE=(h*dv)/q # energy separation eV\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The frequency separation = \",dv1,\"GHz\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The energy separation = \",dE*1000,\"meV\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The frequency separation = 0.2732 GHz\n",
+ "\n",
+ " The energy separation = 1.134 meV\n"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 23: PgNo-400"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "po=2*math.pow(10,-3)# optical power in watts\n",
+ "I=100*math.pow(10,-3)# current in amp\n",
+ "V=2 # applied voltage in volt\n",
+ "pe=I*V # electrical power in watts\n",
+ "n=(po/pe)*100 # conversion efficiency\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The conversion efficiency = \",n,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The conversion efficiency = 1.00 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 55
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 24: PgNo-403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "h=6.64*math.pow(10,-34) # plank constant\n",
+ "Eg=1.43 # gap energy in eV\n",
+ "y=(1.24*math.pow(10,-6))/Eg # wavelength in m\n",
+ "dy=0.1*math.pow(10,-9) # in m\n",
+ "df=(dy*c)/math.pow(y,2) # width in Hz\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The wavelength = \",y*pow(10,6),\"um\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The width = \",df/pow(10,9),\"GHz\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The wavelength = 0.867 um\n",
+ "\n",
+ " The width = 39.8979 GHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25: PgNo-407"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "tr=25.0 # rediative life time in ns\n",
+ "tnr=90.0 # nonrediative life time in ns\n",
+ "i=3.5*math.pow(10,-3) # drive current in amp\n",
+ "y=1.31*math.pow(10,-6) # wavelength in m\n",
+ "h=6.625*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "eq=1.6*math.pow(10,-19 )# charge\n",
+ "t=tr*tnr/(tr+tnr) # total carrier recombination lifetime ns\n",
+ "ni=t/tr # internal quantam efficiency\n",
+ "pil=(ni*h*c*i)/(eq*y) # internal power in watt\n",
+ "p_int=pil*pow(10,3) # internal power in mW\n",
+ "P=p_int/(ni*(ni+1)) # power emitted in mW\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The total carrier recombination lifetime = \",t,\"ns\"))\n",
+ "print ('%s %.2f ' %(\"\\n The internal quantam efficiency = \", ni))\n",
+ "print ('%s %.2f %s' %(\"\\n The internal power = \",p_int,\"mW\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The power emitted = \",P,\"mW\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total carrier recombination lifetime = 19.57 ns\n",
+ "\n",
+ " The internal quantam efficiency = 0.78 \n",
+ "\n",
+ " The internal power = 2.60 mW\n",
+ "\n",
+ " The power emitted = 1.86 mW\n"
+ ]
+ }
+ ],
+ "prompt_number": 57
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 26: PgNo-409"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "nt=0.18 # total efficiency\n",
+ "Eg=1.43 # band gape energy eV\n",
+ "V=2.5 # appied voltage in volt\n",
+ "n_ex=(nt*(Eg/V))*100 # external efficiency\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The external efficiency = \",n_ex,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The external efficiency = 10.30 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 58
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 27: PgNo-411"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "n=3.6 # for GaAs\n",
+ "df=278*math.pow(10,9) # separation in Hz\n",
+ "y=0.87*math.pow(10,-6) # wavelength in m\n",
+ "L=c/(2*n*df) # cavity length in m\n",
+ "l=L*math.pow(10,6) # cavity length in um\n",
+ "L1=math.floor(l)*math.pow(10,-6) # cavity length in m\n",
+ "q=(2*n*L1)/y # number of longitudinal modes\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The cavity length = \",l,\"um\"))\n",
+ "print ('%s %d' %( \"\\n The number of longitudinal modes = \",int(q)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cavity length = 149.880 um\n",
+ "\n",
+ " The number of longitudinal modes = 1233\n"
+ ]
+ }
+ ],
+ "prompt_number": 59
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 28: PgNo-415"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "ac=14 # acceptance angle in degree\n",
+ "nc=math.pow((math.sin(ac*math.pi/180)),2) # coupling efficiency\n",
+ "l_s=-10*math.log(nc)/math.log(10) # loss in decibels\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.3f ' %(\" The coupling efficiency = \",nc))\n",
+ "print ('%s %.3f %s' %(\"\\n The loss = \",l_s,\"decibels\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The coupling efficiency = 0.059 \n",
+ "\n",
+ " The loss = 12.326 decibels\n"
+ ]
+ }
+ ],
+ "prompt_number": 60
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 29: PgNo-417"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "c=3*math.pow(10,8)# speed of light in m/s\n",
+ "n=3.7 # for GaAs\n",
+ "L=500*math.pow(10,-6) # cavity length in m\n",
+ "y=850*math.pow(10,-9)\n",
+ "df=c/(2*n*L) #frequency separation in Hz\n",
+ "df1=df/math.pow(10,9) # frequency separation in GHz\n",
+ "dy=(y*y)/(2*L*n) # wavelength in m\n",
+ "dy1=dy*math.pow(10,9) # wavelength in nm\n",
+ "\n",
+ "# Resultsh\n",
+ "print ('%s %.4f %s' %(\" The frequency separation = \",df1,\"GHz\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The wavelength separation = \",dy1,\"nm\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The frequency separation = 81.0811 GHz\n",
+ "\n",
+ " The wavelength separation = 0.195 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 61
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Optical_Fiber_Communication/Chapter8_1.ipynb b/Optical_Fiber_Communication/Chapter8_1.ipynb new file mode 100755 index 00000000..57a8dd8b --- /dev/null +++ b/Optical_Fiber_Communication/Chapter8_1.ipynb @@ -0,0 +1,1192 @@ +{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a1fc86a1745331cbb94487da02761804f9fca4fd4c628ee53c6bfd5a750d81a6"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8: Optical Fiber Communication System"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1: PgNo-339"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "tr=40.0 # rediative life time in ns\n",
+ "tnr=60.0 # nonrediative life time in ns\n",
+ "i=35*math.pow(10,-3) # drive current in amp\n",
+ "y=0.85*math.pow(10,-6)# wavelength in m\n",
+ "h=6.626*math.pow(10,-34)# plank constant\n",
+ "c=3*math.pow(10,8)# the speed of light in m/s\n",
+ "eq=1.602*math.pow(10,-19)# charge\n",
+ "\n",
+ "# calculations\n",
+ "t=tr*tnr/(tr+tnr)# total carrier recombination lifetime ns\n",
+ "ni=t/tr # internal quantam efficiency\n",
+ "pil=(ni*h*c*i)/(eq*y)# internal power in watt\n",
+ "p_int=pil*math.pow(10,3)# internal power in mW\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.f %s' %(\" The total carrier recombination lifetime = \",t,\"ns\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The internal power = \",p_int,\"mW\"))\n",
+ "print (\"\\n The answer is wrong in textbook \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total carrier recombination lifetime = 24 ns\n",
+ "\n",
+ " The internal power = 30.66 mW\n",
+ "\n",
+ " The answer is wrong in textbook \n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2: PgNo-341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "tr=30.0 # rediative life time in ns\n",
+ "tnr=50.0 # nonrediative life time in ns\n",
+ "i=40*math.pow(10,-3) # drive current in amp\n",
+ "pil=28.4*math.pow(10,-3) # internal power in watt\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "t=tr*tnr/(tr+tnr) # total carrier recombination lifetime ns\n",
+ "ni=t/tr # internal quantam efficiency\n",
+ "y=(ni*h*c*i)/(eq*pil) # peak emission wavelength in m\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The total carrier recombination lifetime = \",t,\"ns\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The peak emission wavelength = \",y*pow(10,6),\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total carrier recombination lifetime = 18.75 ns\n",
+ "\n",
+ " The peak emission wavelength = 1.09 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3: PgNo-345"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "nx=3.6 # refractive index\n",
+ "Fn=0.68 # transmission factor\n",
+ "pe_pi=(Fn)/(4*math.pow(nx,2))\n",
+ "pi_p=0.3\n",
+ "nep=pe_pi*pi_p # external power efficiency\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\"The external power efficiency = \",nep*100,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The external power efficiency = 0.39 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4: PgNo-347"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n=3.6 # core refractive index\n",
+ "NA=0.15 # numerical aperture\n",
+ "nc=math.pow(NA,2) # coupling efficiency\n",
+ "l_s=-10*math.log(nc)/math.log(10) # loss in db\n",
+ "pe_pi=0.023*0.0013 # from ex 8.3\n",
+ "pc=-10*math.log(pe_pi)/math.log(10) # loss in decibels relative to Pint\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The coupling efficiency = \",nc*100,\"%\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The loss = \",l_s,\"db\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The loss in decibels relative to Pint= \",pc,\"db\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The coupling efficiency = 2.25 %\n",
+ "\n",
+ " The loss = 16.478 db\n",
+ "\n",
+ " The loss in decibels relative to Pint= 45.24 db\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5: PgNo-348"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "r=45*math.pow(10,-6) # radius in m\n",
+ "NA=0.3 # numerical aperture\n",
+ "rd=40 # radiance\n",
+ "A=3.14*math.pow((r*100),2) # area in cm^2\n",
+ "pe=3.14*(1-r)*A*rd*math.pow(NA,2) # optical power coupled into the fiber\n",
+ "Pe=pe*math.pow(10,4) # optical power coupled into the fiber uW\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The optical power coupled into the fiber = \",Pe,\"uW\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The optical power coupled into the fiber = 7.187 uW\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6: PgNo-351"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "pc=150*math.pow(10,-6) # coupling power W\n",
+ "p=20*math.pow(10,-3)*2 # optical power W\n",
+ "npc=pc/p # overall efficiency\n",
+ "Npc=npc*100 # percentage of overall efficiency\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The percentage of overall efficiency = \",Npc,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The percentage of overall efficiency = 0.37 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7: PgNo-357"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n=1.5 # refractive index\n",
+ "L=0.05 #crystal length in m\n",
+ "y=0.5*math.pow(10,-6) # wavelength in m\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "q=2*n*L/y # the number of longitudinal modes\n",
+ "df=c/(2*n*L) # frequency separation of the modes in Hz\n",
+ "Df=df/math.pow(10,9) # frequency separation of the modes in GHz\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %d ' %(\" The number of longitudinal modes = \",q))\n",
+ "print ('%s %.2f %s' %(\"\\n The frequency separation of the modes = \",Df,\"GHz\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The number of longitudinal modes = 300000 \n",
+ "\n",
+ " The frequency separation of the modes = 2.00 GHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8: PgNo-358"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "Eg=1.43 # bandgap energy in eV\n",
+ "dy=0.15*math.pow(10,-9);\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=1.24/Eg # in um\n",
+ "y1=y*math.pow(10,-6) # wavelength of optical emission in m\n",
+ "df=(c*dy)/math.pow(y1,2) # the line width in Hz\n",
+ "Df=df/math.pow(10,9) # the line width in GHz\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The wavelength of optical emission = \",y,\"um\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The frequency separation of the modes = \",Df,\"GHz\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The wavelength of optical emission = 0.87 um\n",
+ "\n",
+ " The frequency separation of the modes = 59.8468 GHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9: PgNo-362"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n=3.6 # refractive index\n",
+ "c=3*math.pow(10,8)# speed of light in m/s\n",
+ "y=0.85*math.pow(10,-6)# wavelength in m\n",
+ "df=275*math.pow(10,9) # frequency separation of the modes in Hz\n",
+ "L=c/(2*n*df) # crystal length in m\n",
+ "L1=L*math.pow(10,6) # crystal length in um\n",
+ "q=2*n*L/y # the number of longitudinal modes\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.2f %s' %(\" The crystal length = \",L1,\"um\"))\n",
+ "print ('%s %d' %(\"\\n The the number of longitudinal modes = \",int(q)))\n",
+ "print (\"\\n answer is wrong in textbook \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The crystal length = 151.52 um\n",
+ "\n",
+ " The the number of longitudinal modes = 1283\n",
+ "\n",
+ " answer is wrong in textbook \n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10: PgNo-364"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "nt=0.20# total efficiency\n",
+ "Eg=1.43# bandgap energy in eV\n",
+ "V=2.2# applied voltage in volts\n",
+ "nep=(nt*Eg)/V# external power efficiency\n",
+ "Nep=nep*100# percentage of external power efficiency\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The external power efficiency = \",Nep,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The external power efficiency = 13.00 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11: PgNo-367"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "h=0.35*math.pow(10,-3)# irradiance W/cm^2\n",
+ "po=0.45*math.pow(10,-3)# power output in watt\n",
+ "d=1.5 # separation distance in cm\n",
+ "x=math.sqrt((4*po)/(3.14*math.pow(d,2)*h)) # divergence angle in radians\n",
+ "X=(x*180)/3.14 # divergence angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The divergence angle = \",X,\"degree \"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The divergence angle = 48.909 degree \n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12: PgNo-369"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "ni=0.09 # normal efficiency\n",
+ "d=2*2.54 # separation distance in cm\n",
+ "x=0.2 # divergence angle in radians\n",
+ "vf=2.0 # forward voltage in volts\n",
+ "i_f=65*math.pow(10,-3) # forward current in amp\n",
+ "pil=vf*i_f # input power in Watt\n",
+ "po=ni*pil # output power in Watt\n",
+ "H=4*po/(3.14*math.pow(d,2)*math.pow(x,2)) # irradiance in watt/cm^2\n",
+ "H1=H*1000 # irradiance in mwatt/cm^2\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The irradiance = \",H1,\"mwatt/cm^2 \"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The irradiance = 14.44 mwatt/cm^2 \n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13: PgNo-372"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "tr=3.5 # relative life time in ms\n",
+ "tnr=50 # nonrelative life time in ms\n",
+ "ni=tnr/(tr+tnr) # internal quantam efficiency\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.2f %s' %(\" The internal quantam efficiency = \",ni*100,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The internal quantam efficiency = 93.46 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14: PgNo-375"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# initialisation of variables\n",
+ "ni=0.15 # internal quantam efficiency\n",
+ "vf=2.0 # forward voltage in volts\n",
+ "i_f=15*math.pow(10,-3) # forward current in amp\n",
+ "x=25 # acceptance angle in degree\n",
+ "pil=vf*i_f # input power in Watt\n",
+ "po=ni*pil # output power in Watt\n",
+ "NA=(math.sin(x*math.pi/180))\n",
+ "nc=math.pow(NA,2) # numerical aperture\n",
+ "pf=nc*po # optical power coupled into optical fiber in w\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The optical power coupled into optical fiber = \",pf*1000,\"mW\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The optical power coupled into optical fiber = 0.80 mW\n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15: PgNo-378"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "tnr=10 # nonrediative life time in ns\n",
+ "n_inj=0.80 # injection efficiency\n",
+ "n_ex=0.60 # extraction efficiency\n",
+ "nt=0.025 # total efficiency\n",
+ "nr=nt/(n_inj*n_ex) # non rediative life time in ns\n",
+ "tr=((1/nr)-1)*tnr # rediative life time in ns\n",
+ "# Results\n",
+ "print ('%s %.1f %s' %(\" The rediative life time = \",tr,\"ns\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The rediative life time = 182.0 ns\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16: PgNo-381"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "tr=30*math.pow(10,-9) # rise time in s\n",
+ "Bw=0.35/tr # bandwidth in Hz\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The bandwidth = \",Bw/math.pow(10,6),\"MHz\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The bandwidth = 11.667 MHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17: PgNo-384"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "y=630*math.pow(10,-9)# operating wavelength in m\n",
+ "w=25*math.pow(10,-6) # spot size in m\n",
+ "x=2*y/(math.pi*w) # divergence angle in radians\n",
+ "x1=x*180/math.pi # divergence angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The divergence angle = \",x,\"radians\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The divergence angle = \",x1,\"degree\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The divergence angle = 0.016 radians\n",
+ "\n",
+ " The divergence angle = 0.919 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18: PgNo-388"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "y1=550*math.pow(10,-3)# peak of eyes response in um\n",
+ "y2=10.6 # standard wavelength in um\n",
+ "y3=2.39 # predominant IR line of He-Ne laser in um\n",
+ "E1=1.24/y1 # energy in electron volts\n",
+ "E2=1.24/y2 # energy in electron volts\n",
+ "E3=1.24/y3 # energy in electron volts\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.3f %s' %(\" The energy = \",E1,\"electron volts\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The energy = \",E2,\"electron volts\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The energy = \",E3,\"electron volts\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The energy = 2.255 electron volts\n",
+ "\n",
+ " The energy = 0.117 electron volts\n",
+ "\n",
+ " The energy = 0.519 electron volts\n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19: PgNo-391"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "Eg=1.4 # energy in electron volts\n",
+ "y=1.24/Eg # cut off wavelength in um\n",
+ "y1=y*1000 # cut off wavelength in nm\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The cut off wavelength = \",y1,\"nm\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 885.7143 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20: PgNo-394"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "y=1200*math.pow(10,-9)# operating wavelength in m\n",
+ "w=5*math.pow(10,-6)# spot size in m\n",
+ "x=2*y/(math.pi*w)# divergence angle in radians\n",
+ "x1=x*180/math.pi # divergence angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The divergence angle = \",x,\"radians\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The divergence angle = \",x1,\"degree\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The divergence angle = 0.153 radians\n",
+ "\n",
+ " The divergence angle = 8.754 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21: PgNo-395"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.48 # core refractive index\n",
+ "n2=1.46 # cladding refractive index \n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "xa=(math.asin(NA))*(180/math.pi) # acceptance angle in degree\n",
+ "nc=math.pow(NA,2) # coupling efficiency\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The acceptance angle = \",xa,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The coupling efficiency = \",nc*100,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The acceptance angle = 14.03 degree\n",
+ "\n",
+ " The coupling efficiency = 5.88 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 22: PgNo-398"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "n=3.66 # for GaAs\n",
+ "L=150*math.pow(10,-6) # cavity length in m\n",
+ "dv=c/(2*n*L) #frequency separation in Hz\n",
+ "dv1=dv/math.pow(10,12) # frequency separation in GHz\n",
+ "h=6.64*math.pow(10,-34) # plank constant\n",
+ "q=1.6*math.pow(10,-19) # charge of an electron\n",
+ "dE=(h*dv)/q # energy separation eV\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The frequency separation = \",dv1,\"GHz\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The energy separation = \",dE*1000,\"meV\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The frequency separation = 0.2732 GHz\n",
+ "\n",
+ " The energy separation = 1.134 meV\n"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 23: PgNo-400"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "po=2*math.pow(10,-3)# optical power in watts\n",
+ "I=100*math.pow(10,-3)# current in amp\n",
+ "V=2 # applied voltage in volt\n",
+ "pe=I*V # electrical power in watts\n",
+ "n=(po/pe)*100 # conversion efficiency\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The conversion efficiency = \",n,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The conversion efficiency = 1.00 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 55
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 24: PgNo-403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "h=6.64*math.pow(10,-34) # plank constant\n",
+ "Eg=1.43 # gap energy in eV\n",
+ "y=(1.24*math.pow(10,-6))/Eg # wavelength in m\n",
+ "dy=0.1*math.pow(10,-9) # in m\n",
+ "df=(dy*c)/math.pow(y,2) # width in Hz\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The wavelength = \",y*pow(10,6),\"um\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The width = \",df/pow(10,9),\"GHz\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The wavelength = 0.867 um\n",
+ "\n",
+ " The width = 39.8979 GHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25: PgNo-407"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "tr=25.0 # rediative life time in ns\n",
+ "tnr=90.0 # nonrediative life time in ns\n",
+ "i=3.5*math.pow(10,-3) # drive current in amp\n",
+ "y=1.31*math.pow(10,-6) # wavelength in m\n",
+ "h=6.625*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "eq=1.6*math.pow(10,-19 )# charge\n",
+ "t=tr*tnr/(tr+tnr) # total carrier recombination lifetime ns\n",
+ "ni=t/tr # internal quantam efficiency\n",
+ "pil=(ni*h*c*i)/(eq*y) # internal power in watt\n",
+ "p_int=pil*pow(10,3) # internal power in mW\n",
+ "P=p_int/(ni*(ni+1)) # power emitted in mW\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The total carrier recombination lifetime = \",t,\"ns\"))\n",
+ "print ('%s %.2f ' %(\"\\n The internal quantam efficiency = \", ni))\n",
+ "print ('%s %.2f %s' %(\"\\n The internal power = \",p_int,\"mW\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The power emitted = \",P,\"mW\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total carrier recombination lifetime = 19.57 ns\n",
+ "\n",
+ " The internal quantam efficiency = 0.78 \n",
+ "\n",
+ " The internal power = 2.60 mW\n",
+ "\n",
+ " The power emitted = 1.86 mW\n"
+ ]
+ }
+ ],
+ "prompt_number": 57
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 26: PgNo-409"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "nt=0.18 # total efficiency\n",
+ "Eg=1.43 # band gape energy eV\n",
+ "V=2.5 # appied voltage in volt\n",
+ "n_ex=(nt*(Eg/V))*100 # external efficiency\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The external efficiency = \",n_ex,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The external efficiency = 10.30 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 58
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 27: PgNo-411"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "n=3.6 # for GaAs\n",
+ "df=278*math.pow(10,9) # separation in Hz\n",
+ "y=0.87*math.pow(10,-6) # wavelength in m\n",
+ "L=c/(2*n*df) # cavity length in m\n",
+ "l=L*math.pow(10,6) # cavity length in um\n",
+ "L1=math.floor(l)*math.pow(10,-6) # cavity length in m\n",
+ "q=(2*n*L1)/y # number of longitudinal modes\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The cavity length = \",l,\"um\"))\n",
+ "print ('%s %d' %( \"\\n The number of longitudinal modes = \",int(q)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cavity length = 149.880 um\n",
+ "\n",
+ " The number of longitudinal modes = 1233\n"
+ ]
+ }
+ ],
+ "prompt_number": 59
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 28: PgNo-415"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "ac=14 # acceptance angle in degree\n",
+ "nc=math.pow((math.sin(ac*math.pi/180)),2) # coupling efficiency\n",
+ "l_s=-10*math.log(nc)/math.log(10) # loss in decibels\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.3f ' %(\" The coupling efficiency = \",nc))\n",
+ "print ('%s %.3f %s' %(\"\\n The loss = \",l_s,\"decibels\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The coupling efficiency = 0.059 \n",
+ "\n",
+ " The loss = 12.326 decibels\n"
+ ]
+ }
+ ],
+ "prompt_number": 60
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 29: PgNo-417"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "c=3*math.pow(10,8)# speed of light in m/s\n",
+ "n=3.7 # for GaAs\n",
+ "L=500*math.pow(10,-6) # cavity length in m\n",
+ "y=850*math.pow(10,-9)\n",
+ "df=c/(2*n*L) #frequency separation in Hz\n",
+ "df1=df/math.pow(10,9) # frequency separation in GHz\n",
+ "dy=(y*y)/(2*L*n) # wavelength in m\n",
+ "dy1=dy*math.pow(10,9) # wavelength in nm\n",
+ "\n",
+ "# Resultsh\n",
+ "print ('%s %.4f %s' %(\" The frequency separation = \",df1,\"GHz\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The wavelength separation = \",dy1,\"nm\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The frequency separation = 81.0811 GHz\n",
+ "\n",
+ " The wavelength separation = 0.195 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 61
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Optical_Fiber_Communication/Chapter9.ipynb b/Optical_Fiber_Communication/Chapter9.ipynb new file mode 100755 index 00000000..367cadc1 --- /dev/null +++ b/Optical_Fiber_Communication/Chapter9.ipynb @@ -0,0 +1,1146 @@ +{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e11123ba8b6bbada16d8c62d198839756136e69c9f0cc93a98384db776536508"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9 : Optical Fiber System-I"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 1: PgNo-424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "e_c=550.0 # number of electron collected\n",
+ "p=800.0 # number of photon incident\n",
+ "n=e_c/p # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19)# charge\n",
+ "h=6.626*math.pow(10,-34)# plank constant\n",
+ "c=3*math.pow(10,8)# speed of light in m/s\n",
+ "y=1.3*math.pow(10,-6) #wavelength in m\n",
+ "R=(n*eq*y)/(h*c)# responsivity in A/W\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The responsivity = \",R,\"Amp/Watt\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The responsivity = 0.72 Amp/Watt\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2: PgNo-427"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "eq=1.602*math.pow(10,-19)# charge\n",
+ "h=6.626*math.pow(10,-34)# plank constant\n",
+ "c=3*math.pow(10,8)# speed of light in m/s\n",
+ "y=0.85*math.pow(10,-6) # wavelength in m\n",
+ "R=0.274 # responsivity in A/W\n",
+ "n=(R*h*c)/(eq*y) # quantum efficiency\n",
+ "n1=n*100 # % of quantum efficiency\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The quantum efficiency = \",n1,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The quantum efficiency = 40.00 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3: PgNo-429"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "e_c=1.0 # number of electron collected\n",
+ "p=3.0 # number of photon incident\n",
+ "n=e_c/p # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=0.8*math.pow(10,-6) # wavelength in m\n",
+ "Eg=(h*c)/y # band gap energy in J\n",
+ "R=(n*eq*y)/(h*c)# responsivity in A/W\n",
+ "Po=math.pow(10,-7) # in W\n",
+ "Ip=R*Po # output photo current\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The quantum efficiency = \",n*100,\"%\"))\n",
+ "print ('%s %.2f %s' %(\"\\n band gap energy = \",Eg*pow(10,20),\"*10^-20 J\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The output photo current = \",Ip*pow(10,9),\"nA\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The quantum efficiency = 33.33 %\n",
+ "\n",
+ " band gap energy = 24.85 *10^-20 J\n",
+ "\n",
+ " The output photo current = 21.49 nA\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4: PgNo-432"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n=0.50 # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19)# charge\n",
+ "h=6.626*math.pow(10,-34)# plank constant\n",
+ "c=3*math.pow(10,8)# speed of light in m/s\n",
+ "y=0.85*math.pow(10,-6) # wavelength in m\n",
+ "R=(n*eq*y)/(h*c)# responsivity in A/W\n",
+ "Ip=math.pow(10,-6)# mean photo current\n",
+ "Po=Ip/R # received optical power in W\n",
+ "f=c/y\n",
+ "re=(n*Po)/(h*f)\n",
+ "rp=re/n # number of received photons\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The responsivity = \",R,\"A/W\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The received optical power = \",Po*pow(10,6),\"uW\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The number of received photons = \",rp/pow(10,13),\"*10^13 photons/sec\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The responsivity = 0.34 A/W\n",
+ "\n",
+ " The received optical power = 2.92 uW\n",
+ "\n",
+ " The number of received photons = 1.25 *10^13 photons/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5: PgNo-435"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "h=6.626*math.pow(10,-34)# plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "Eg=1.43 # in eV\n",
+ "Eg1=Eg*1.602*math.pow(10,-19) # in J\n",
+ "y=(h*c)/Eg1 # cut off wavelength in m\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The cut off wavelength = \",y*pow(10,6),\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 0.87 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6: PgNo-437"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "vd=2.5*math.pow(10,4)# carrier velocity in m/s\n",
+ "w=30*math.pow(10,-6)# width in m\n",
+ "Bm=vd/(2*math.pi*w)\n",
+ "Tm=1/Bm # max response time in sec\n",
+ "Tm1=Tm*math.pow(10,9) # max response time in ns\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The max response time = \",Tm1,\"ns\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max response time = 7.54 ns\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7: PgNo-440"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n=0.65 # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=0.85*math.pow(10,-6)# wavelength in m\n",
+ "R=(n*eq*y)/(h*c)# responsivity in A/W\n",
+ "Po=0.35*math.pow(10,-6) # in W\n",
+ "Ip=R*Po # output photo current\n",
+ "I=9*math.pow(10,-6) # output current in A\n",
+ "M=I/Ip # multiplication factor\n",
+ "M1=math.ceil(M)\n",
+ "# Results\n",
+ "print \" The multiplication factor = \",int(M1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The multiplication factor = 58\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8: PgNo-442"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n=0.50 # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "Eg=1.5*math.pow(10,-19) # in J\n",
+ "y=(h*c)/Eg # cut off wavelength in m\n",
+ "f=c/y\n",
+ "R=(n*eq)/(h*f) # responsivity in A/W\n",
+ "Ip=2.7*math.pow(10,-6) # photo current in A\n",
+ "Po=Ip/R # incident optical power in W\n",
+ "Po1=Po*math.pow(10,6) # incident optical power in uW\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.2f %s' %( \" The cut off wavelength = \",y*pow(10,6),\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The responsivity = \",R,\"A/W \"))\n",
+ "print ('%s %.2f %s' %(\"\\n The incident optical power = \",Po1,\"uW\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 1.33 um\n",
+ "\n",
+ " The responsivity = 0.53 A/W \n",
+ "\n",
+ " The incident optical power = 5.06 uW\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9: PgNo-445"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=0.15 # quantum efficiency\n",
+ "eq=1.6*math.pow(10,-19) # charge\n",
+ "h=6.63*math.pow(10,-34)# plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=0.85*math.pow(10,-6) # cut off wavelength in m\n",
+ "f=c/y # frequency in Hz\n",
+ "R=(n*eq)/(h*f) # responsivity in A/W\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The responsivity = \",R,\"A/W\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The responsivity = 0.103 A/W\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10: PgNo-448"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Iph=75*math.pow(10,-6) # output photocurrent in A\n",
+ "y=0.85 # operating wavelength in um\n",
+ "Pie=750*math.pow(10,-6) # incident optical power in uW\n",
+ "R=Iph/Pie # responsivity in A/W\n",
+ "n=1.24*R/y # external quantum efficiency\n",
+ "n1=n*100 # percentage of external quantum efficiency\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The responsivity = \",R,\"A/W\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The external quantum efficiency = \",n1,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The responsivity = 0.10 A/W\n",
+ "\n",
+ " The external quantum efficiency = 14.59 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11: PgNo-451"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Vs=math.pow(10,5) # saturation in m/s\n",
+ "W=7*math.pow(10,-6) # depletion layer width in m\n",
+ "tr=W/Vs # transit time in sec\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.1f %s' %(\" The transit time = \",tr*pow(10,12),\"ps\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The transit time = 70.0 ps\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12: PgNo-454"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Vs=3*math.pow(10,4)# saturation in m/s\n",
+ "W=25*math.pow(10,-6) # depletion layer width in m\n",
+ "tr=W/Vs # transit time in sec\n",
+ "f=0.35/tr # max 3 dB bandwidth Hz\n",
+ "f1=f/math.pow(10,6) # max 3 dB bandwidth Hz\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.f %s' %(\" The max 3 dB bandwidth = \",f1,\"MHz\"))\n",
+ "print (\"\\n The answer is wrong in the textbook \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max 3 dB bandwidth = 420 MHz\n",
+ "\n",
+ " The answer is wrong in the textbook \n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13: PgNo-456"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "Vs=3*math.pow(10,4) # saturation in m/s\n",
+ "W=25*math.pow(10,-6) # depletion layer width in m\n",
+ "E=10.5*math.pow(10,-11) # in F/m\n",
+ "RL=15*math.pow(10,6) # load resister in ohm\n",
+ "A=0.25*math.pow(10,-6) # area in m^2\n",
+ "tr=W/Vs # transit time in sec\n",
+ "Cj=E*A/W # junction capacitance in F\n",
+ "t=RL*Cj # time constant in sec\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The transit time = \",tr*pow(10,9),\"ns\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The junction capacitance = \",Cj*pow(10,12),\"pF\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The time constant = \",t*pow(10,6),\"us\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The transit time = 0.833 ns\n",
+ "\n",
+ " The junction capacitance = 1.05 pF\n",
+ "\n",
+ " The time constant = 15.75 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14: PgNo-459"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "Eg1=1.12 # band gap for Si in eV\n",
+ "Eg2=0.667 # band gap for Ge in eV\n",
+ "y_si=1.24/Eg1 # cut off wavelength for Si in um\n",
+ "y_he=1.24/Eg2 # cut off wavelength for Ge in um\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The cut off wavelength for Si = \",y_si,\"um\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The cut off wavelength for Ge = \",y_he,\"um\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength for Si = 1.107 um\n",
+ "\n",
+ " The cut off wavelength for Ge = 1.859 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15: PgNo-463"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "n=0.50 # quantum efficiency\n",
+ "eq=1.6*math.pow(10,-19)# charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=0.9*math.pow(10,-6) # wavelength in m\n",
+ "R=(n*eq*y)/(h*c) # responsivity in A/W\n",
+ "Ip=math.pow(10,-6) # mean photo current\n",
+ "Po=Ip/R # received optical power in W\n",
+ "f=c/y\n",
+ "re=(n*Po)/(h*f)\n",
+ "rp=re/n # number of received photons\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The responsivity = \",R,\"A/W\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The received optical power = \",Po*pow(10,6),\"uW\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The number of received photons = \",rp/pow(10,13),\"*10^13 photons/sec\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The responsivity = 0.36 A/W\n",
+ "\n",
+ " The received optical power = 2.76 uW\n",
+ "\n",
+ " The number of received photons = 1.25 *10^13 photons/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16: PgNo-466"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "R=0.40 # Responsivity in A/W\n",
+ "m=100*math.pow(10,-6) # incident flux in W/m-m\n",
+ "A=2 # area in m-m\n",
+ "Po=m*A # incident power in W\n",
+ "Ip=R*Po # photon current in A\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.f %s' %(\" The photon current = \",Ip*math.pow(10,6),\"uA\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The photon current = 80 uA\n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17: PgNo-470"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n=0.65 # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "Eg=1.5*math.pow(10,-19) # in J\n",
+ "y=(h*c)/Eg # cut off wavelength in m\n",
+ "f=c/y\n",
+ "R=(n*eq)/(h*f) # responsivity in A/W\n",
+ "Ip=2.5*math.pow(10,-6) # photo current in A\n",
+ "Po=Ip/R # incident optical power in W\n",
+ "Po1=Po*math.pow(10,6) # incident optical power in uW\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The cut off wavelength = \",y*math.pow(10,6),\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The responsivity = \",R,\"A/W\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The incident optical power = \",Po1,\"uW\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 1.33 um\n",
+ "\n",
+ " The responsivity = 0.69 A/W\n",
+ "\n",
+ " The incident optical power = 3.60 uW\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18: PgNo-472"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "Eg=1.43 # in eV\n",
+ "Eg1=Eg*1.602*math.pow(10,-19) # in J\n",
+ "y=(h*c)/Eg1 # cut off wavelength in m\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The cut off wavelength = \",y*math.pow(10,6),\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 0.868 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19: PgNo-474"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n=0.45 # quantum efficiency\n",
+ "h=6.62*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=1.2*math.pow(10,-6) # cut off wavelength in m\n",
+ "Ic=20*math.pow(10,-6) # collector current in A\n",
+ "Po=120*math.pow(10,-6)# incident optical power in W\n",
+ "eq=1.602*math.pow(10,-19)# charge\n",
+ "Go=(h*c*Ic)/(y*Po*eq) # optical gain\n",
+ "h_e=Go/n # common emitter gain\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f ' %(\" The optical gain = \",Go))\n",
+ "print ('%s %.3f ' %(\"\\n The common emitter gain = \",h_e))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The optical gain = 0.172 \n",
+ "\n",
+ " The common emitter gain = 0.383 \n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20: PgNo-477"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n=0.5 # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=1.3*math.pow(10,-6) # wavelength in m\n",
+ "R=(n*eq*y)/(h*c)# responsivity in A/W\n",
+ "Po=0.4*math.pow(10,-6) # in W\n",
+ "Ip=R*Po # output photo current\n",
+ "I=8*math.pow(10,-6) # output current in A\n",
+ "M=I/Ip # multiplication factor\n",
+ "\n",
+ "# Results\n",
+ "print \" The multiplication factor = \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The multiplication factor = 38\n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21: PgNo-481"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n=0.85 # quantum efficiency\n",
+ "eq=1.6*math.pow(10,-19) # charge\n",
+ "h=6.625*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=0.9*math.pow(10,-6) # wavelength in m\n",
+ "R=(n*eq*y)/(h*c)# responsivity in A/W\n",
+ "Po=0.6*math.pow(10,-6) # in W\n",
+ "Ip=R*Po # output photo current\n",
+ "I=10*math.pow(10,-6) # output current in A\n",
+ "M=I/Ip # multiplication factor\n",
+ "\n",
+ "# Results\n",
+ "print \" The multiplication factor = \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The multiplication factor = 27\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 22: PgNo-483"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "e_c=1.2*math.pow(10,11) # number of electron collected\n",
+ "p=2*math.pow(10,11) # number of photon incident\n",
+ "n=e_c/p # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "E=1.5*math.pow(10,-19) # energy in J\n",
+ "\n",
+ "# Calculations\n",
+ "y=(h*c)/E # wavelength in m\n",
+ "R=(n*eq*y)/(h*c) # responsivity in A/W\n",
+ "Ip=2.6*math.pow(10,-6) # photocurrent in A\n",
+ "Po=Ip/R # incident optical power in W\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The quantum efficiency = \",n*100,\"%\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The wavelength = \",y*pow(10,6),\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The responsivity = \",R,\"Amp/Watt\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The incident optical power = \",Po*math.pow(10,6),\"uW\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The quantum efficiency = 60.00 %\n",
+ "\n",
+ " The wavelength = 1.33 um\n",
+ "\n",
+ " The responsivity = 0.64 Amp/Watt\n",
+ "\n",
+ " The incident optical power = 4.06 uW\n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 23: PgNo-485"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n=0.40 # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=1.35*math.pow(10,-6) # wavelength in m\n",
+ "R=(n*eq*y)/(h*c) # responsivity in A/W\n",
+ "Po=0.2*math.pow(10,-6) # in W\n",
+ "Ip=R*Po # output photo current\n",
+ "I=4.9*math.pow(10,-6) # output current in A\n",
+ "M=I/Ip # multiplication factor\n",
+ "\n",
+ "# Results\n",
+ "print \" The multiplication factor = \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The multiplication factor = 56\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 24: PgNo-489"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n=0.55 # quantum efficiency\n",
+ "eq=1.6*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=0.85*math.pow(10,-6) # wavelength in m\n",
+ "R=(n*eq*y)/(h*c) # responsivity in A/W\n",
+ "Ip=2*math.pow(10,-6) # mean photo current\n",
+ "Po=Ip/R # received optical power in W\n",
+ "re=(n*Po*y)/(h*c) # number of received photons\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The responsivity = \",R,\"A/W\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The received optical power = \",Po*math.pow(10,6),\"uW\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The number of received photons = \",re/math.pow(10,13),\"*10^13 photons/sec\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The responsivity = 0.376 A/W\n",
+ "\n",
+ " The received optical power = 5.315 uW\n",
+ "\n",
+ " The number of received photons = 1.25 *10^13 photons/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25: PgNo-494"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "h=6.625*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "n=1 # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "E=1.3*math.pow(10,-19) # energy in J\n",
+ "y=(h*c)/E # wavelength in m\n",
+ "M=18 # multiplication factor\n",
+ "rp=math.pow(10,13) # no. of photon per sec\n",
+ "Po=rp*E # output power in w\n",
+ "Ip=(n*Po*eq)/E # output photocurrent in A\n",
+ "I=M*Ip # photocurrent in A\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The wavelength = \",y*math.pow(10,6),\"um\"))\n",
+ "print ('%s %.1f %s' %(\"\\n The output power = \",Po*math.pow(10,6),\"uW\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The photocurrent = \",I*math.pow(10,6),\"uA\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The wavelength = 1.529 um\n",
+ "\n",
+ " The output power = 1.3 uW\n",
+ "\n",
+ " The photocurrent = 28.836 uA\n"
+ ]
+ }
+ ],
+ "prompt_number": 55
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 26: PgNo-497"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "e_c=2*math.pow(10,10) # number of electron collected\n",
+ "p=5*math.pow(10,10) # number of photon incident\n",
+ "n=e_c/p # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8)# speed of light in m/s\n",
+ "y=0.85*math.pow(10,-6) # wavelength in m\n",
+ "y1=0.85 # wavelength in um\n",
+ "Eg=(h*c)/y # bandgap energy in J\n",
+ "Eg1=1.24/y1 # bandgap energy in terms of eV\n",
+ "Po=10*math.pow(10,-6) # incident power in W\n",
+ "Ip=(n*eq*Po)/Eg # mean output photocurrent in A\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The quantum efficiency = \",n*100,\"%\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The bandgap energy = \",Eg*math.pow(10,19),\"*10^-19 J\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The bandgap energy = \",Eg1,\"eV\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The mean output photocurrent = \",Ip*math.pow(10,6),\"uA\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The quantum efficiency = 40.00 %\n",
+ "\n",
+ " The bandgap energy = 2.339 *10^-19 J\n",
+ "\n",
+ " The bandgap energy = 1.46 eV\n",
+ "\n",
+ " The mean output photocurrent = 2.740 uA\n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Optical_Fiber_Communication/Chapter9_1.ipynb b/Optical_Fiber_Communication/Chapter9_1.ipynb new file mode 100755 index 00000000..367cadc1 --- /dev/null +++ b/Optical_Fiber_Communication/Chapter9_1.ipynb @@ -0,0 +1,1146 @@ +{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e11123ba8b6bbada16d8c62d198839756136e69c9f0cc93a98384db776536508"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9 : Optical Fiber System-I"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 1: PgNo-424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "e_c=550.0 # number of electron collected\n",
+ "p=800.0 # number of photon incident\n",
+ "n=e_c/p # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19)# charge\n",
+ "h=6.626*math.pow(10,-34)# plank constant\n",
+ "c=3*math.pow(10,8)# speed of light in m/s\n",
+ "y=1.3*math.pow(10,-6) #wavelength in m\n",
+ "R=(n*eq*y)/(h*c)# responsivity in A/W\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The responsivity = \",R,\"Amp/Watt\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The responsivity = 0.72 Amp/Watt\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2: PgNo-427"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "eq=1.602*math.pow(10,-19)# charge\n",
+ "h=6.626*math.pow(10,-34)# plank constant\n",
+ "c=3*math.pow(10,8)# speed of light in m/s\n",
+ "y=0.85*math.pow(10,-6) # wavelength in m\n",
+ "R=0.274 # responsivity in A/W\n",
+ "n=(R*h*c)/(eq*y) # quantum efficiency\n",
+ "n1=n*100 # % of quantum efficiency\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The quantum efficiency = \",n1,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The quantum efficiency = 40.00 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3: PgNo-429"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "e_c=1.0 # number of electron collected\n",
+ "p=3.0 # number of photon incident\n",
+ "n=e_c/p # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=0.8*math.pow(10,-6) # wavelength in m\n",
+ "Eg=(h*c)/y # band gap energy in J\n",
+ "R=(n*eq*y)/(h*c)# responsivity in A/W\n",
+ "Po=math.pow(10,-7) # in W\n",
+ "Ip=R*Po # output photo current\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The quantum efficiency = \",n*100,\"%\"))\n",
+ "print ('%s %.2f %s' %(\"\\n band gap energy = \",Eg*pow(10,20),\"*10^-20 J\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The output photo current = \",Ip*pow(10,9),\"nA\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The quantum efficiency = 33.33 %\n",
+ "\n",
+ " band gap energy = 24.85 *10^-20 J\n",
+ "\n",
+ " The output photo current = 21.49 nA\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4: PgNo-432"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n=0.50 # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19)# charge\n",
+ "h=6.626*math.pow(10,-34)# plank constant\n",
+ "c=3*math.pow(10,8)# speed of light in m/s\n",
+ "y=0.85*math.pow(10,-6) # wavelength in m\n",
+ "R=(n*eq*y)/(h*c)# responsivity in A/W\n",
+ "Ip=math.pow(10,-6)# mean photo current\n",
+ "Po=Ip/R # received optical power in W\n",
+ "f=c/y\n",
+ "re=(n*Po)/(h*f)\n",
+ "rp=re/n # number of received photons\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The responsivity = \",R,\"A/W\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The received optical power = \",Po*pow(10,6),\"uW\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The number of received photons = \",rp/pow(10,13),\"*10^13 photons/sec\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The responsivity = 0.34 A/W\n",
+ "\n",
+ " The received optical power = 2.92 uW\n",
+ "\n",
+ " The number of received photons = 1.25 *10^13 photons/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5: PgNo-435"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "h=6.626*math.pow(10,-34)# plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "Eg=1.43 # in eV\n",
+ "Eg1=Eg*1.602*math.pow(10,-19) # in J\n",
+ "y=(h*c)/Eg1 # cut off wavelength in m\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The cut off wavelength = \",y*pow(10,6),\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 0.87 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6: PgNo-437"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "vd=2.5*math.pow(10,4)# carrier velocity in m/s\n",
+ "w=30*math.pow(10,-6)# width in m\n",
+ "Bm=vd/(2*math.pi*w)\n",
+ "Tm=1/Bm # max response time in sec\n",
+ "Tm1=Tm*math.pow(10,9) # max response time in ns\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The max response time = \",Tm1,\"ns\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max response time = 7.54 ns\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7: PgNo-440"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n=0.65 # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=0.85*math.pow(10,-6)# wavelength in m\n",
+ "R=(n*eq*y)/(h*c)# responsivity in A/W\n",
+ "Po=0.35*math.pow(10,-6) # in W\n",
+ "Ip=R*Po # output photo current\n",
+ "I=9*math.pow(10,-6) # output current in A\n",
+ "M=I/Ip # multiplication factor\n",
+ "M1=math.ceil(M)\n",
+ "# Results\n",
+ "print \" The multiplication factor = \",int(M1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The multiplication factor = 58\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8: PgNo-442"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n=0.50 # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "Eg=1.5*math.pow(10,-19) # in J\n",
+ "y=(h*c)/Eg # cut off wavelength in m\n",
+ "f=c/y\n",
+ "R=(n*eq)/(h*f) # responsivity in A/W\n",
+ "Ip=2.7*math.pow(10,-6) # photo current in A\n",
+ "Po=Ip/R # incident optical power in W\n",
+ "Po1=Po*math.pow(10,6) # incident optical power in uW\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.2f %s' %( \" The cut off wavelength = \",y*pow(10,6),\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The responsivity = \",R,\"A/W \"))\n",
+ "print ('%s %.2f %s' %(\"\\n The incident optical power = \",Po1,\"uW\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 1.33 um\n",
+ "\n",
+ " The responsivity = 0.53 A/W \n",
+ "\n",
+ " The incident optical power = 5.06 uW\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9: PgNo-445"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=0.15 # quantum efficiency\n",
+ "eq=1.6*math.pow(10,-19) # charge\n",
+ "h=6.63*math.pow(10,-34)# plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=0.85*math.pow(10,-6) # cut off wavelength in m\n",
+ "f=c/y # frequency in Hz\n",
+ "R=(n*eq)/(h*f) # responsivity in A/W\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The responsivity = \",R,\"A/W\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The responsivity = 0.103 A/W\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10: PgNo-448"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Iph=75*math.pow(10,-6) # output photocurrent in A\n",
+ "y=0.85 # operating wavelength in um\n",
+ "Pie=750*math.pow(10,-6) # incident optical power in uW\n",
+ "R=Iph/Pie # responsivity in A/W\n",
+ "n=1.24*R/y # external quantum efficiency\n",
+ "n1=n*100 # percentage of external quantum efficiency\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The responsivity = \",R,\"A/W\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The external quantum efficiency = \",n1,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The responsivity = 0.10 A/W\n",
+ "\n",
+ " The external quantum efficiency = 14.59 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11: PgNo-451"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Vs=math.pow(10,5) # saturation in m/s\n",
+ "W=7*math.pow(10,-6) # depletion layer width in m\n",
+ "tr=W/Vs # transit time in sec\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.1f %s' %(\" The transit time = \",tr*pow(10,12),\"ps\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The transit time = 70.0 ps\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12: PgNo-454"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Vs=3*math.pow(10,4)# saturation in m/s\n",
+ "W=25*math.pow(10,-6) # depletion layer width in m\n",
+ "tr=W/Vs # transit time in sec\n",
+ "f=0.35/tr # max 3 dB bandwidth Hz\n",
+ "f1=f/math.pow(10,6) # max 3 dB bandwidth Hz\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.f %s' %(\" The max 3 dB bandwidth = \",f1,\"MHz\"))\n",
+ "print (\"\\n The answer is wrong in the textbook \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max 3 dB bandwidth = 420 MHz\n",
+ "\n",
+ " The answer is wrong in the textbook \n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13: PgNo-456"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "Vs=3*math.pow(10,4) # saturation in m/s\n",
+ "W=25*math.pow(10,-6) # depletion layer width in m\n",
+ "E=10.5*math.pow(10,-11) # in F/m\n",
+ "RL=15*math.pow(10,6) # load resister in ohm\n",
+ "A=0.25*math.pow(10,-6) # area in m^2\n",
+ "tr=W/Vs # transit time in sec\n",
+ "Cj=E*A/W # junction capacitance in F\n",
+ "t=RL*Cj # time constant in sec\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The transit time = \",tr*pow(10,9),\"ns\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The junction capacitance = \",Cj*pow(10,12),\"pF\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The time constant = \",t*pow(10,6),\"us\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The transit time = 0.833 ns\n",
+ "\n",
+ " The junction capacitance = 1.05 pF\n",
+ "\n",
+ " The time constant = 15.75 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14: PgNo-459"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "Eg1=1.12 # band gap for Si in eV\n",
+ "Eg2=0.667 # band gap for Ge in eV\n",
+ "y_si=1.24/Eg1 # cut off wavelength for Si in um\n",
+ "y_he=1.24/Eg2 # cut off wavelength for Ge in um\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The cut off wavelength for Si = \",y_si,\"um\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The cut off wavelength for Ge = \",y_he,\"um\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength for Si = 1.107 um\n",
+ "\n",
+ " The cut off wavelength for Ge = 1.859 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15: PgNo-463"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "n=0.50 # quantum efficiency\n",
+ "eq=1.6*math.pow(10,-19)# charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=0.9*math.pow(10,-6) # wavelength in m\n",
+ "R=(n*eq*y)/(h*c) # responsivity in A/W\n",
+ "Ip=math.pow(10,-6) # mean photo current\n",
+ "Po=Ip/R # received optical power in W\n",
+ "f=c/y\n",
+ "re=(n*Po)/(h*f)\n",
+ "rp=re/n # number of received photons\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The responsivity = \",R,\"A/W\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The received optical power = \",Po*pow(10,6),\"uW\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The number of received photons = \",rp/pow(10,13),\"*10^13 photons/sec\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The responsivity = 0.36 A/W\n",
+ "\n",
+ " The received optical power = 2.76 uW\n",
+ "\n",
+ " The number of received photons = 1.25 *10^13 photons/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16: PgNo-466"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "R=0.40 # Responsivity in A/W\n",
+ "m=100*math.pow(10,-6) # incident flux in W/m-m\n",
+ "A=2 # area in m-m\n",
+ "Po=m*A # incident power in W\n",
+ "Ip=R*Po # photon current in A\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.f %s' %(\" The photon current = \",Ip*math.pow(10,6),\"uA\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The photon current = 80 uA\n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17: PgNo-470"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n=0.65 # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "Eg=1.5*math.pow(10,-19) # in J\n",
+ "y=(h*c)/Eg # cut off wavelength in m\n",
+ "f=c/y\n",
+ "R=(n*eq)/(h*f) # responsivity in A/W\n",
+ "Ip=2.5*math.pow(10,-6) # photo current in A\n",
+ "Po=Ip/R # incident optical power in W\n",
+ "Po1=Po*math.pow(10,6) # incident optical power in uW\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The cut off wavelength = \",y*math.pow(10,6),\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The responsivity = \",R,\"A/W\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The incident optical power = \",Po1,\"uW\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 1.33 um\n",
+ "\n",
+ " The responsivity = 0.69 A/W\n",
+ "\n",
+ " The incident optical power = 3.60 uW\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18: PgNo-472"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "Eg=1.43 # in eV\n",
+ "Eg1=Eg*1.602*math.pow(10,-19) # in J\n",
+ "y=(h*c)/Eg1 # cut off wavelength in m\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The cut off wavelength = \",y*math.pow(10,6),\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 0.868 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19: PgNo-474"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n=0.45 # quantum efficiency\n",
+ "h=6.62*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=1.2*math.pow(10,-6) # cut off wavelength in m\n",
+ "Ic=20*math.pow(10,-6) # collector current in A\n",
+ "Po=120*math.pow(10,-6)# incident optical power in W\n",
+ "eq=1.602*math.pow(10,-19)# charge\n",
+ "Go=(h*c*Ic)/(y*Po*eq) # optical gain\n",
+ "h_e=Go/n # common emitter gain\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f ' %(\" The optical gain = \",Go))\n",
+ "print ('%s %.3f ' %(\"\\n The common emitter gain = \",h_e))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The optical gain = 0.172 \n",
+ "\n",
+ " The common emitter gain = 0.383 \n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20: PgNo-477"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n=0.5 # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=1.3*math.pow(10,-6) # wavelength in m\n",
+ "R=(n*eq*y)/(h*c)# responsivity in A/W\n",
+ "Po=0.4*math.pow(10,-6) # in W\n",
+ "Ip=R*Po # output photo current\n",
+ "I=8*math.pow(10,-6) # output current in A\n",
+ "M=I/Ip # multiplication factor\n",
+ "\n",
+ "# Results\n",
+ "print \" The multiplication factor = \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The multiplication factor = 38\n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21: PgNo-481"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n=0.85 # quantum efficiency\n",
+ "eq=1.6*math.pow(10,-19) # charge\n",
+ "h=6.625*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=0.9*math.pow(10,-6) # wavelength in m\n",
+ "R=(n*eq*y)/(h*c)# responsivity in A/W\n",
+ "Po=0.6*math.pow(10,-6) # in W\n",
+ "Ip=R*Po # output photo current\n",
+ "I=10*math.pow(10,-6) # output current in A\n",
+ "M=I/Ip # multiplication factor\n",
+ "\n",
+ "# Results\n",
+ "print \" The multiplication factor = \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The multiplication factor = 27\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 22: PgNo-483"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "e_c=1.2*math.pow(10,11) # number of electron collected\n",
+ "p=2*math.pow(10,11) # number of photon incident\n",
+ "n=e_c/p # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "E=1.5*math.pow(10,-19) # energy in J\n",
+ "\n",
+ "# Calculations\n",
+ "y=(h*c)/E # wavelength in m\n",
+ "R=(n*eq*y)/(h*c) # responsivity in A/W\n",
+ "Ip=2.6*math.pow(10,-6) # photocurrent in A\n",
+ "Po=Ip/R # incident optical power in W\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The quantum efficiency = \",n*100,\"%\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The wavelength = \",y*pow(10,6),\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The responsivity = \",R,\"Amp/Watt\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The incident optical power = \",Po*math.pow(10,6),\"uW\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The quantum efficiency = 60.00 %\n",
+ "\n",
+ " The wavelength = 1.33 um\n",
+ "\n",
+ " The responsivity = 0.64 Amp/Watt\n",
+ "\n",
+ " The incident optical power = 4.06 uW\n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 23: PgNo-485"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n=0.40 # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=1.35*math.pow(10,-6) # wavelength in m\n",
+ "R=(n*eq*y)/(h*c) # responsivity in A/W\n",
+ "Po=0.2*math.pow(10,-6) # in W\n",
+ "Ip=R*Po # output photo current\n",
+ "I=4.9*math.pow(10,-6) # output current in A\n",
+ "M=I/Ip # multiplication factor\n",
+ "\n",
+ "# Results\n",
+ "print \" The multiplication factor = \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The multiplication factor = 56\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 24: PgNo-489"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n=0.55 # quantum efficiency\n",
+ "eq=1.6*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=0.85*math.pow(10,-6) # wavelength in m\n",
+ "R=(n*eq*y)/(h*c) # responsivity in A/W\n",
+ "Ip=2*math.pow(10,-6) # mean photo current\n",
+ "Po=Ip/R # received optical power in W\n",
+ "re=(n*Po*y)/(h*c) # number of received photons\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The responsivity = \",R,\"A/W\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The received optical power = \",Po*math.pow(10,6),\"uW\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The number of received photons = \",re/math.pow(10,13),\"*10^13 photons/sec\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The responsivity = 0.376 A/W\n",
+ "\n",
+ " The received optical power = 5.315 uW\n",
+ "\n",
+ " The number of received photons = 1.25 *10^13 photons/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25: PgNo-494"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "h=6.625*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "n=1 # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "E=1.3*math.pow(10,-19) # energy in J\n",
+ "y=(h*c)/E # wavelength in m\n",
+ "M=18 # multiplication factor\n",
+ "rp=math.pow(10,13) # no. of photon per sec\n",
+ "Po=rp*E # output power in w\n",
+ "Ip=(n*Po*eq)/E # output photocurrent in A\n",
+ "I=M*Ip # photocurrent in A\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The wavelength = \",y*math.pow(10,6),\"um\"))\n",
+ "print ('%s %.1f %s' %(\"\\n The output power = \",Po*math.pow(10,6),\"uW\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The photocurrent = \",I*math.pow(10,6),\"uA\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The wavelength = 1.529 um\n",
+ "\n",
+ " The output power = 1.3 uW\n",
+ "\n",
+ " The photocurrent = 28.836 uA\n"
+ ]
+ }
+ ],
+ "prompt_number": 55
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 26: PgNo-497"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "e_c=2*math.pow(10,10) # number of electron collected\n",
+ "p=5*math.pow(10,10) # number of photon incident\n",
+ "n=e_c/p # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8)# speed of light in m/s\n",
+ "y=0.85*math.pow(10,-6) # wavelength in m\n",
+ "y1=0.85 # wavelength in um\n",
+ "Eg=(h*c)/y # bandgap energy in J\n",
+ "Eg1=1.24/y1 # bandgap energy in terms of eV\n",
+ "Po=10*math.pow(10,-6) # incident power in W\n",
+ "Ip=(n*eq*Po)/Eg # mean output photocurrent in A\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The quantum efficiency = \",n*100,\"%\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The bandgap energy = \",Eg*math.pow(10,19),\"*10^-19 J\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The bandgap energy = \",Eg1,\"eV\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The mean output photocurrent = \",Ip*math.pow(10,6),\"uA\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The quantum efficiency = 40.00 %\n",
+ "\n",
+ " The bandgap energy = 2.339 *10^-19 J\n",
+ "\n",
+ " The bandgap energy = 1.46 eV\n",
+ "\n",
+ " The mean output photocurrent = 2.740 uA\n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Optical_Fiber_Communication/screenshots/ch3.png b/Optical_Fiber_Communication/screenshots/ch3.png Binary files differnew file mode 100755 index 00000000..9adb53db --- /dev/null +++ b/Optical_Fiber_Communication/screenshots/ch3.png diff --git a/Optical_Fiber_Communication/screenshots/ch3_1.png b/Optical_Fiber_Communication/screenshots/ch3_1.png Binary files differnew file mode 100755 index 00000000..9adb53db --- /dev/null +++ b/Optical_Fiber_Communication/screenshots/ch3_1.png diff --git a/Optical_Fiber_Communication/screenshots/ch5.png b/Optical_Fiber_Communication/screenshots/ch5.png Binary files differnew file mode 100755 index 00000000..acf6fcac --- /dev/null +++ b/Optical_Fiber_Communication/screenshots/ch5.png diff --git a/Optical_Fiber_Communication/screenshots/ch5_1.png b/Optical_Fiber_Communication/screenshots/ch5_1.png Binary files differnew file mode 100755 index 00000000..acf6fcac --- /dev/null +++ b/Optical_Fiber_Communication/screenshots/ch5_1.png diff --git a/Optical_Fiber_Communication/screenshots/ch7.png b/Optical_Fiber_Communication/screenshots/ch7.png Binary files differnew file mode 100755 index 00000000..302231b6 --- /dev/null +++ b/Optical_Fiber_Communication/screenshots/ch7.png diff --git a/Optical_Fiber_Communication/screenshots/ch7_1.png b/Optical_Fiber_Communication/screenshots/ch7_1.png Binary files differnew file mode 100755 index 00000000..302231b6 --- /dev/null +++ b/Optical_Fiber_Communication/screenshots/ch7_1.png |