{ "metadata": { "name": "", "signature": "sha256:b4a79f107959b9c220fb0fbffb78f81a806979a06263be16ca010cadce8d4a27" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Chapter05: Design Considerations in Optical Links" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Ex5.3.1:Pg-5.7" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Given\n", "\n", "B= 15*10**-6 \n", "L= 4 \n", "BER= 1*10**-9 \n", "Ls= 0.5 \n", "Lc= 1.5 \n", "alpha= 6 \n", "Pm= 8 \n", "Pt= 2*Lc +(alpha*L)+(Pm) \n", "print \" The actual loss in fibre in dB =\",int(Pt) \n", "Pmax = -10-(-50) \n", "print \" \\nThe maximum allowable system loss in dBm = \",Pmax " ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " The actual loss in fibre in dB = 35\n", " \n", "The maximum allowable system loss in dBm = 40\n" ] } ], "prompt_number": 5 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Ex5.3.2:Pg-5.8" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Given\n", "import math\n", "Ps= 0.1 \n", "alpha = 6 \n", "L= 0.5 \n", "Ps = 10*math.log10(Ps) \n", "NA= 0.25 \n", "Lcoupling= -10*math.log10(NA**2) \n", "Lf= alpha*L \n", "lc= 2*2 \n", "Pm= 4 \n", "Pout = Ps-(Lcoupling+Lf+lc+Pm) \n", "print \" The actual power output in dBm = \",int(Pout) \n", "Pmin = -35 \n", "print \" Minimum input power required in dBm= \",Pmin \n", "print \" As Pmin > Pout, system will perform adequately over the system operating life.\" \n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " The actual power output in dBm = -33\n", " Minimum input power required in dBm= -35\n", " As Pmin > Pout, system will perform adequately over the system operating life.\n" ] } ], "prompt_number": 8 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Ex5.3.3:Pg-5.8" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Given\n", "\n", "Ps= 5 \n", "Lcoupling = 3 \n", "Lc= 2 \n", "L_splicing = 50*0.1 \n", "F_atten = 25 \n", "L_total = Lcoupling+Lc+L_splicing+F_atten \n", "P_avail = Ps-L_total \n", "sensitivity = -40 \n", "loss_margin = -sensitivity-(-P_avail) \n", "print \" The loss margin of the system in dBm= -\",loss_margin \n", "sensitivity_fet = -32 \n", "loss_margin_fet=-sensitivity_fet-(-P_avail) \n", "print \"The loss marging for the FET receiver in dBm= -\",loss_margin_fet \n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " The loss margin of the system in dBm= - 10.0\n", "The loss marging for the FET receiver in dBm= - 2.0\n" ] } ], "prompt_number": 10 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Ex5.3.4:Pg-5.9" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Given\n", "LED_output = 3 \n", "PIN_sensitivity = -54 \n", "allowed_loss= LED_output -(-PIN_sensitivity) \n", "Lcoupling = 17.5 \n", "cable_atten = 30 \n", "power_margin_coupling= 39.5 \n", "power_margin_splice=6.2 \n", "power_margin_cable=9.5 \n", "final_margin= power_margin_coupling+power_margin_splice+power_margin_cable \n", "print \" The safety margin in dB =\",final_margin\n", " # Answer in book is wrong...\n", "print \" \\n***NOTE- Answer wrong in book...\"\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " The safety margin in dB = 55.2\n", " \n", "***NOTE- Answer wrong in book...\n" ] } ], "prompt_number": 12 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Ex5.3.5:Pg-5.10" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Given\n", "\n", "optical_power=-10 \n", "receiver_sensitivity=-41 \n", "total_margin= optical_power-receiver_sensitivity \n", "cable_loss= 7*2.6 \n", "splice_loss= 6*0.5 \n", "connector_loss= 1*1.5 \n", "safety_margin= 6 \n", "total_loss= cable_loss+splice_loss+connector_loss+safety_margin \n", "excess_power_margin= total_margin-total_loss \n", "print \" The system is viable and provides excess power margin in dB=\",excess_power_margin \n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " The system is viable and provides excess power margin in dB= 2.3\n" ] } ], "prompt_number": 14 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Ex5.4.1:Pg-5.13" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Given\n", "import math\n", "Ttx= 15 \n", "Tmat=21 \n", "Tmod= 3.9 \n", "BW= 25.0 \n", "Trx= 350.0/BW \n", "\n", "Tsys = math.sqrt(Ttx**2+Tmat**2+Tmod**2+Trx**2) \n", "print \" The system rise time in ns.= \",round(Tsys,2) \n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " The system rise time in ns.= 29.62\n" ] } ], "prompt_number": 16 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Ex5.4.2:Pg-5.14" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Given\n", "import math\n", "\n", "Ttrans = 1.75*10**-9 \n", "Tled = 3.50*10**-9 \n", "Tcable=3.89*10**-9 \n", "Tpin= 1*10**-9 \n", "Trec= 1.94*10**-9 \n", "Tsys= math.sqrt(Ttrans**2+Tled**2+Tcable**2+Tpin**2+Trec**2) \n", "Tsys=Tsys*10**9 # converting in ns for dislaying...\n", "print \" The system rise time in ns= \",round(Tsys,2)\n", "Tsys=Tsys*10**-9 \n", "BW= 0.35/Tsys \n", "BW=BW/1000000.0 # converting in MHz for dislaying...\n", "print \" \\nThe system bandwidth in MHz =\",round(BW,2)\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " The system rise time in ns= 5.93\n", " \n", "The system bandwidth in MHz = 58.99\n" ] } ], "prompt_number": 19 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Ex5.4.3:Pg-5.14" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Given\n", "import math\n", "Ttx= 8*10**-9 \n", "Tintra= 1*10**-9 \n", "Tmodal=5*10**-9 \n", "Trr= 6*10**-9 \n", "Tsys= math.sqrt(Ttx**2+(8*Tintra)**2+(8*Tmodal)**2+Trr**2) \n", "\n", "BWnrz= 0.7/Tsys \n", "BWnrz=BWnrz/1000000 # converting in ns for dislaying...\n", "BWrz=0.35/Tsys \n", "BWrz=BWrz/1000000 # converting in ns for dislaying...\n", "print \" Maximum bit rate for NRZ format in Mb/sec= \",round(BWnrz,2)\n", "print \" \\nMaximum bit rate for RZ format in Mb/sec= \",round(BWrz,2) \n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " Maximum bit rate for NRZ format in Mb/sec= 16.67\n", " \n", "Maximum bit rate for RZ format in Mb/sec= 8.33\n" ] } ], "prompt_number": 21 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Ex5.4.4:Pg-5.15" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Given\n", "import math\n", "Ts= 10*10**-9 \n", "Tn=9*10**-9 \n", "Tc=2*10**-9 \n", "Td=3*10**-9 \n", "BW= 6*10**6 \n", "Tsyst= 1.1*math.sqrt(Ts**2+(5*Tn)**2+(5*Tc)**2+Td**2) \n", "Tsyst=Tsyst*10**9 # converting in ns for displying...\n", "Tsyst_max = 0.35/BW \n", "Tsyst_max=Tsyst_max*10**9 # converting in ns for displying...\n", "print \" Rise system of the system in ns= \",round(Tsyst,2)\n", "print \" \\nMaximum Rise system of the system in ns= \",round(Tsyst_max,2)\n", "print \" \\nSpecified components give a system rise time which is adequate for the bandwidth and distance requirements of the optical fibre link.\" \n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " Rise system of the system in ns= 51.99\n", " \n", "Maximum Rise system of the system in ns= 58.33\n", " \n", "Specified components give a system rise time which is adequate for the bandwidth and distance requirements of the optical fibre link.\n" ] } ], "prompt_number": 24 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Ex5.5.1:Pg-5.18" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Given\n", "\n", "del_t_1 = 10*100*10**-9 \n", "Bt_nrz_1 = 0.7/(del_t_1*1000000) \n", "Bt_rz_1 = 0.35/(del_t_1*1000000) \n", "print \"First case.\"\n", "print \" \\nBit rate for nrz in Mb/sec= \",Bt_nrz_1 \n", "print \" \\nBit rate for rz in Mb/sec= \",Bt_rz_1 \n", "del_t_2 = 20*1000*10**-9 \n", "Bt_nrz_2 = 0.7/(del_t_2*1000000) \n", "Bt_rz_2 = 0.35/(del_t_2*1000000) \n", "print \" \\n\\nSecond case\" \n", "print \" \\nBit rate for nrz in Mb/sec= \",Bt_nrz_2 \n", "print \" \\nBit rate for rz in Mb/sec= \",Bt_rz_2 \n", "del_t_3 = 2*2000*10**-9 \n", "Bt_nrz_3 = 0.7/(del_t_3*1000) \n", "Bt_rz_3 = 0.35/(del_t_3*1000) \n", "print \" \\n\\nThird case\" \n", "print \" \\nBit rate for nrz in BITS/sec= \",int(Bt_nrz_3) \n", "print \" \\nBit rate for rz in BITS/sec= \",Bt_rz_3 \n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "First case.\n", " \n", "Bit rate for nrz in Mb/sec= 0.7\n", " \n", "Bit rate for rz in Mb/sec= 0.35\n", " \n", "\n", "Second case\n", " \n", "Bit rate for nrz in Mb/sec= 0.035\n", " \n", "Bit rate for rz in Mb/sec= 0.0175\n", " \n", "\n", "Third case\n", " \n", "Bit rate for nrz in BITS/sec= 174\n", " \n", "Bit rate for rz in BITS/sec= 87.5\n" ] } ], "prompt_number": 31 } ], "metadata": {} } ] }