diff options
Diffstat (limited to 'Optical_Fiber_Communication_Principles_and_Practice/Chapter12.ipynb')
-rwxr-xr-x | Optical_Fiber_Communication_Principles_and_Practice/Chapter12.ipynb | 488 |
1 files changed, 0 insertions, 488 deletions
diff --git a/Optical_Fiber_Communication_Principles_and_Practice/Chapter12.ipynb b/Optical_Fiber_Communication_Principles_and_Practice/Chapter12.ipynb deleted file mode 100755 index 288c514a..00000000 --- a/Optical_Fiber_Communication_Principles_and_Practice/Chapter12.ipynb +++ /dev/null @@ -1,488 +0,0 @@ -{ - "metadata": { - "name": "Chapter_12" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ - { - "cells": [ - { - "cell_type": "heading", - "level": 1, - "metadata": {}, - "source": "Chapter 12 :- Optical fiber systems 1: Intensity modulation/direct detection\n" - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": "Example 12.1, page 706" - }, - { - "cell_type": "code", - "collapsed": false, - "input": "#Variable declaration\nn=8 #bits in a time slot\nt=32 #bits in a frame\nf=8*10**3 #frequency\nm=16 #bits in a multiframe\n\n#Calculation\nnb=n*t #number of bits in a frame\nfr=nb*f #transmission rate\ntr=fr**-1 #bit duration\nts=tr*n #duration of a time slot\ntf=ts*t #duration of a frame\ntm=tf*m #duration of a multiframe\n\n#Result\nprint'(a) Bit rate for the system = %.3f Mbit s^-1'%(fr*10**-6)\nprint'(b) Duration of the time slot = %.1f \u03bcs'%(ts*10**6)\nprint'(c) Duration of a frame = %d \u03bcs' %(tf*10**6)\nprint'Duration of a multiframe = %d ms' %(tm*10**3)\n\n", - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": "(a) Bit rate for the system = 2.048 Mbit s^-1\n(b) Duration of the time slot = 3.9 \u03bcs\n(c) Duration of a frame = 125 \u03bcs\nDuration of a multiframe = 2 ms\n" - } - ], - "prompt_number": 1 - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": "Example 12.2, page 720" - }, - { - "cell_type": "code", - "collapsed": false, - "input": "import math\n\n#Variable declaration\nm=4.24 #erfc = 2*10^9\na=2*math.sqrt(2)\n\n#Calculation\nsn=m*a #root of S/N = optical\nsn1=10*math.log10(sn) #in dB\nisq=sn**2 #S/N = electrical \nisq1=10*math.log10(isq) #in dB\n#Result\nprint'Optical SNR = %.1f'%sn\nprint' = %.1f dB'%sn1\nprint'Electrical SNR = %.1f'%round(isq)\nprint' = %.1f dB'%isq1", - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": "Optical SNR = 12.0\n = 10.8 dB\nElectrical SNR = 144.0\n = 21.6 dB\n" - } - ], - "prompt_number": 2 - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": "Example 12.3, page 723" - }, - { - "cell_type": "code", - "collapsed": false, - "input": "import math\n\n#Variable declaration\nm=100 #multiplication factor\nk=0.02 #ratio of carrier ionization rates \nsn=144 #electrical SNR\nn=0.8 #quantum efficiency\nB=0.6\n\n#Calculation\nfm=(k*m)+(2-(1/m))*(1-k) #avalanche noise factor\nzm=2*B*round(fm)*sn/n #average number of photons\n\n#Result\nprint'Average no of photons = %d photons'%round(zm)", - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": "Average no of photons = 864 photons\n" - } - ], - "prompt_number": 3 - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": "Example 12.4, page 724" - }, - { - "cell_type": "code", - "collapsed": false, - "input": "import math\n\n#Variable declaration\nzm=864 #average no of photons\nh=6.626*10**-34 #plancks constant\nc=2.998*10**8 #velocity of light\nl1=10**-6 #wavelength\nl2=10**-14 #wavelength\nbt=10**7 \nn=14\n\n\n#Calculation\npo1=(zm*h*c*bt)/(2*l1) #At 10 Mbit s^-1\npo2=(zm*h*c*n*bt)/(2*l2) #At 140 Mbit s^-1\n\n#Result\nprint'Incident optical power (10 Mbit s^-l) = %.1f pW'%(po1*10**12)\nprint'Incident optical power (140 Mbit s^-l) = %.3f W'%po2 #value given in a textbook is incorrect", - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": "Incident optical power (10 Mbit s^-l) = 858.2 pW\nIncident optical power (140 Mbit s^-l) = 1.201 W\n" - } - ], - "prompt_number": 4 - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": "Example 12.5, page 726" - }, - { - "cell_type": "code", - "collapsed": false, - "input": "#Variable declaration\nafc=5 #fibre cable attenuation\nai=2 #splice losses\nl=4 #length in Km\naf=3.5+2.5 #connector losses at source and detector resp\n\n#Calculation\nCl=(afc+ai)*l+af #total channel loss\n\n#Result\nprint'Total channel loss = %d dB'%Cl", - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": "Total channel loss = 34 dB\n" - } - ], - "prompt_number": 5 - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": "Example 12.6, page 727" - }, - { - "cell_type": "code", - "collapsed": false, - "input": "import math\n\n#Variable declaration\ns=0.6*10**-9 #rms pulse broadening\nL=8 #length in km\nbt=25*10**6 #bit rates\nbt1=150*10**6 #bit rates\n\n#Calculation\nst=s*L #total rms pulse broadening\ndl1=2*(2*st*bt*math.sqrt(2))**4 #without mode coupling\nst1=s*math.sqrt(L) #total rms pulse broadening\ndl2=2*(2*st1*bt*math.sqrt(2))**4 #with mode coupling\ndl3=2*(2*st*bt1*math.sqrt(2))**4 #without mode coupling\ndl4=2*(2*st1*bt1*math.sqrt(2))**4 #with mode coupling\n\n#Result\nprint'(a) For 25 Mbit per sec'\nprint'dispersion\u2013equalization penalty (without mode coupling) = %.2f dB'%dl1\nprint'dispersion\u2013equalization penalty (with mode coupling) = %.2f x 10^-4 dB\\n'%(dl2*10**4)\nprint'(b) For 150 Mbit per sec'\nprint'dispersion\u2013equalization penalty (without mode coupling) = %.2f dB'%dl3\nprint'dispersion\u2013equalization penalty (with mode coupling) = %.2f dB'%dl4", - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": "(a) For 25 Mbit per sec\ndispersion\u2013equalization penalty (without mode coupling) = 0.03 dB\ndispersion\u2013equalization penalty (with mode coupling) = 4.15 x 10^-4 dB\n\n(b) For 150 Mbit per sec\ndispersion\u2013equalization penalty (without mode coupling) = 34.40 dB\ndispersion\u2013equalization penalty (with mode coupling) = 0.54 dB\n" - } - ], - "prompt_number": 6 - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": "Example 12.7, page 731" - }, - { - "cell_type": "code", - "collapsed": false, - "input": "import math\n\n#Variable declaration\nts=8 #rise time for source in ns\ntn=5*ts #for fiber intermodal\ntc=1*ts #for pulse broadening\ntd=6 #for detector\n\n#Calculation\ntsys=1.1*(ts**2+tn**2+tc**2+td**2)**0.5 #total system rise time\nBt=0.7/(tsys*10**-9) #max bit rate\n\n\n#Result\nprint'Bt (Max) = %.1f Mbit per sec'%(Bt/10**6)", - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": "Bt (Max) = 15.2 Mbit per sec\n" - } - ], - "prompt_number": 7 - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": "Example 12.8, page 732" - }, - { - "cell_type": "code", - "collapsed": false, - "input": "import math\n\n#Variable declaration\npo=-55 #mean power required at the APD receiver at 35 Mbit s^-1\npo1=-44 #mean power required at the APD receiver at 400 Mbit s^-1\npi=-3 #mean power launched from the laser transmitter\nl1=0.4 #cable fiber loss\nl2=0.1 #splice losses\nl3=1 #connector loss \nma=7 #safety margin\na=0.5 \nacr=2\ndl=1.5\n\n#Calculation \nL1=(pi-po-acr-ma)/a #for 35 Mbit s^-1\nL2=(pi-po1-acr-ma)/a #for 400 Mbit s^-1\nL3=(pi-po1-acr-dl-ma)/a #reduction in the maximum possible link\n\n#Result\nprint'(a) Maximum possible link length (operating at 35 Mbit s^-1) = %d km'%L1\nprint'(b) Maximum possible link length (operating at 400 Mbit s^-1) = %d km'%L2\nprint'(c) Reduction in the maximum possible link length = %d km'%L3", - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": "(a) Maximum possible link length (operating at 35 Mbit s^-1) = 86 km\n(b) Maximum possible link length (operating at 400 Mbit s^-1) = 64 km\n(c) Reduction in the maximum possible link length = 61 km\n" - } - ], - "prompt_number": 8 - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": "Example 12.9, page 734" - }, - { - "cell_type": "code", - "collapsed": false, - "input": "import math\n\n#Variable declaration\npo=-10 #mean optical power launched into the fiber from the transmitter (100 \u03bcm)\nrs=-41 #receiver sensitivity at 20 Mbit s^-1\nl1=7*2.6 #cabled fiber loss\nl2=6*0.5 #splice losses\nl3=1*1.5 #connector loss \nms=6 #safety margin\n\n#Calculation\nts=po-rs #Total system margin\ntsl=l1+l2+l3+ms #Total system loss\npm=ts-tsl #Excess power margin \n\n#Result\nprint'Total system margin = %d dB'%ts\nprint'Total system loss = %.1f dB'%tsl\nprint'Excess power margin = %.1f dB'%pm\n", - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": "Total system margin = 31 dB\nTotal system loss = 28.7 dB\nExcess power margin = 2.3 dB\n" - } - ], - "prompt_number": 9 - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": "Example 12.10, page 740" - }, - { - "cell_type": "code", - "collapsed": false, - "input": "import math\n\n#Variable declaration\nv=5 #output voltage\nh=6.626*10**-34 #plancks constant\nc=2.998*10**8 #velocity of light\nk=1.385*10**-23 #boltzman constant\nt=290 #tempreture in kelvin\nzo=100 #cable impedance\nn=0.7 #quantum efficiency\npi=10**-3 #optical power\nlam=0.85*10**-6 #wavelength\n\n#Calculation\nratio=(v**2*h*c)/(2*k*t*zo*n*pi*lam) #ratio\nratio1=10*math.log10(ratio) #ration in dB\n\n#Result\nprint'Ratio = %d dB'%ratio1", - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": "Ratio = 40 dB\n" - } - ], - "prompt_number": 10 - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": "Example 12.11, page 744" - }, - { - "cell_type": "code", - "collapsed": false, - "input": "import math\n\n#Variable declaration\nma=0.8 #modulation index\nR=0.5 #responsivity\nb=0.7 #ratio of luminance to composite video\nsnr=3.162*10**5 #SNR\ne=1.602*10**-19 #electron volt\nB=5*10**6 #bandwidth\nK=1.385*10**-23 #boltzman constant \nT=293 #tempreture in kelvin\nFn=1.413\nRl=10**6\n\n#Calculation\na=(2*ma*R*b)**2\nc=snr*2*e*B*R\nd=snr*4*K*T*B*Fn/Rl\nf = (c**2)+(4*a*d)\npo=(c+math.sqrt(f))/(2*a) #average incident optical power \npo1=10*math.log10(po*1000) #in dB\n\n#Result\nprint'Average incident optical power = %.2f uW'%(po*10**6)\nprint' = %.1f dB m'%po1\n\n", - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": "Average incident optical power = 0.93 uW\n = -30.3 dB m\n" - } - ], - "prompt_number": 11 - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": "Example 12.12, page 747" - }, - { - "cell_type": "code", - "collapsed": false, - "input": "import math\n\n#Variable declaration\nh=6.626*10**-34 #plancks constant\nc=2.998*10**8 #velocity of light\ne=1.602*10**-19 #1 electron volt\nn=0.6 #p\u2013i\u2013n photodiode quantum efficiency\nma=0.5 #modulation index\nlam=10**-6 #wavelength\nk=1.385*10**-23 #boltzman constant \nt=300 #tempreture in kelvin\nf=4 #amplifier noise figure\nrl=50*10**3 #effective load impedance\nsn=3.162*10**4 #signal to noise ratio\nB=10**7 #bandwidth\n\n#Calculation\na=h*c/(e*n*ma**2*lam)\nb=math.sqrt((8*k*t*f)/rl)\nc=math.sqrt(sn*B)\npo=a*b*c #optical power\npo1=10*math.log10(po*1000) #optical power in dB\n\n#Result\nprint'Optical power, Po = %.2f uW'%(po*10**6)\nprint' = %.1f dBm'%po1", - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": "Optical power, Po = 7.58 uW\n = -21.2 dBm\n" - } - ], - "prompt_number": 12 - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": "Example 12.13, page 748" - }, - { - "cell_type": "code", - "collapsed": false, - "input": "import math\n\n#Variable declaration\npo=-10 #mean optical power launched into the fiber from the transmitter (100 \u03bcm)\nrs=-25 #receiver sensitivity \nl1=2*3.5 #cable fiber loss\nl2=2*0.7 #splice losses\nl3=1.6 #connector loss \nms=4.0 #safety margin\nafc=3.5\nai=0.7\nacr=1.6\nma=7\n\n#Calculation\nts=po-rs #Total system margi\ntsl=l1+l2+l3+ms #Total system loss\npm=ts-tsl #Excess power margin \nL=((0-rs)-(acr+ma))/(afc+ai)\n\n#Result\nprint'(a) Total system margin = %d dB'%ts\nprint' Total system loss = %.1f dB'%tsl\nprint' Excess power margin = %.1f dB'%pm\nprint'\\n(b) Increase in link length = %.1f Km'%(L)", - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": "(a) Total system margin = 15 dB\n Total system loss = 14.0 dB\n Excess power margin = 1.0 dB\n\n(b) Increase in link length = 3.9 Km\n" - } - ], - "prompt_number": 13 - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": "Example 12.14, page 750" - }, - { - "cell_type": "code", - "collapsed": false, - "input": "#Variable declaration\nBop=6*10**6\nts=10 #rise time for source in ns\ntn=5*9 #for fiber intermodal\ntc=5*2 #for pulse broadening\ntd=3 #for detector\n\n\n#Calculation\ntsys=0.35/Bop\ntsys1=1.1*(ts**2+tn**2+tc**2+td**2)**0.5 #total system rise time\n\n#Result\nprint'Maximum permitted system rise time = %.1f ns'%(tsys*10**9)\nprint'Total system rise time = %.1f ns'%(tsys1)\n", - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": "Maximum permitted system rise time = 58.3 ns\nTotal system rise time = 52.0 ns\n" - } - ], - "prompt_number": 14 - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": "Example 12.15, page 755" - }, - { - "cell_type": "code", - "collapsed": false, - "input": "import math\n\n#Variable declaration\nfd=400*10**3 #peak frequency deviation\nBa=4*10**3 #bandwidth\n\n#Calculation\nDf=fd/Ba #frequency deviation ratio\nsnr=1.76+(20*math.log10(Df)) #SNR improvement\nBm=2*(Df+1)*Ba #bandwidth of the FM\u2013IM signal \n \n#Result\nprint'(a) SNR improvement = %.2f dB'%snr\nprint'(b) Frequency deviation ratio = %d'%Df\nprint' Bandwidth of FM-IM signal = %d kHz'%(Bm/1000)", - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": "(a) SNR improvement = 41.76 dB\n(b) Frequency deviation ratio = 100\n Bandwidth of FM-IM signal = 808 kHz\n" - } - ], - "prompt_number": 15 - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": "Example 12.16, page 757" - }, - { - "cell_type": "code", - "collapsed": false, - "input": "import math\n\n#Variable declaration\nfm=3 #output FM ratio\npm=1 #output PM ratio\n\n#Calculation\nratio=fm/pm #SNR ratio\nratio1=10*math.log10(ratio) #SNR ratio in dB\n\n#Result\nprint'Ratio of output SNR = %.2f dB'%(ratio1)", - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": "Ratio of output SNR = 4.77 dB\n" - } - ], - "prompt_number": 16 - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": "Example 12.17, page 759" - }, - { - "cell_type": "code", - "collapsed": false, - "input": "import math\n\n#Variable declaration\nto=5*10**-8 #nominal pulse period\nfd=5*10**6 #Peak-to-peak frequency deviation\nM=60 #A PD multiplication factor\nR=0.7 #A PD responsivity\npo=10**-7 #peak optical power at receiver\ntr=12*10**-9 #Total system 10\u201390% rise time\nB=6*10**6 #baseband noise bandwidth\ni=10**-17 #Receiver mean square noise current\n\n\n#Calculation\nsnp=(3*(to*fd*M*R*po)**2)/(i*(2*math.pi*tr*B)**2) #peak-to-peak signal to rms noise ratio\nsnp1=10*math.log10(snp) #in dB\n\n#Result\nprint'Peak-to-peak signal to rms noise ratio = %.1f dB'%snp1\n", - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": "Peak-to-peak signal to rms noise ratio = 62.1 dB\n" - } - ], - "prompt_number": 17 - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": "Example 12.18, page 763" - }, - { - "cell_type": "code", - "collapsed": false, - "input": "%pylab inline\nimport math\nfrom pylab import *\nfrom numpy import *\n\n#Variable declaration\nacr=1 #connector loss in dB\nafc=5 #loss per kilometer in dB\nLbu=0.1 #fiber length between each of the access couplers\nLac=1 #insertion loss\nLtr=10 #loss due to the tap ratio\nLsp=3 #splitting loss\n \n#Calculating, we get two equation in terms of N, no of nodes, i.e C(1,N-1)=(3.5*N)+8.5 and C(star)=4.5+(10*log10(N)) \n\n#For Bus distribution system\n\nfor N in range(1,13,1):\n C=(3.5*N)+8.5;\n a=plot(N,C,'.r')\n \n \n#for Star distribution system\n \nfor N in range(1,30,1):\n C1=4.5+(10*log10(N));\n b=plot(N,C1,'.g')\n \n \n#To show plot in same graph\n#Graphical comparison showing total channel loss against number of nodes\n\nxlabel(\"Number of nodes $N$\")\nylabel(\"Total channel loss $CL$ (dB)\")\ngrid()\nshow(a)\nshow(b)\n", - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": "Populating the interactive namespace from numpy and matplotlib\n" - }, - { - "metadata": {}, - "output_type": "display_data", - "png": "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\nAAAAAElFTkSuQmCC\n", - "text": "<matplotlib.figure.Figure at 0x3f7ea90>" - } - ], - "prompt_number": 27 - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": "Example 12.19, page 782" - }, - { - "cell_type": "code", - "collapsed": false, - "input": "#Variable declaration\nh=6.626*10**-34 #plancks constant\nc=2.998*10**8 #velocity of light\nlam=1.55*10**-6 #wavelength\nL=100*10**3 #length\nK=4 \nB=1.2*10**9 #bandwidth\nsnr=50 #SNR\na=10**-2.5\npi=10**-3\n\n#Calculation\nLt=(pi*lam*a*L)/(K*h*c*B*snr) #link with a large number of cascaded amplifiers\n\n#Result\nprint'Maximum system length = %d x 10^4 km'%(Lt/10**7)", - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": "Maximum system length = 1 x 10^4 km\n" - } - ], - "prompt_number": 19 - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": "Example 12.21, page 791" - }, - { - "cell_type": "code", - "collapsed": false, - "input": "import math\n\n#Variable declaration\nb=17 #second-order dispersion coefficient for the latter path\nL2=20 #path length in km\nL1=160.00 #path length in km\ns1=-0.075 #dispersion slope\n\n#Calculation\na=-b*L2\nG=a/L1 #second-order dispersion coefficient\ns2=s1*L1/L2 #chromatic dispersion slope\n\n#Result\nprint'(a) Second-order dispersion coefficient = %.3f ps nm^-1 km^-1'%G \nprint'(b) chromatic dispersion slope = %.1f ps nm^-2 km^-1'%s2", - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": "(a) Second-order dispersion coefficient = -2.125 ps nm^-1 km^-1\n(b) chromatic dispersion slope = -0.6 ps nm^-2 km^-1\n" - } - ], - "prompt_number": 20 - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": "Example 12.22, page 798" - }, - { - "cell_type": "code", - "collapsed": false, - "input": "import math\n\n#Variable declaration\nto=70*10**-12 #bit period\nt=6*10**-12 #RZ pulse width\nB2=50*10**-12*10**-12*10**-3 #second-order dispersion coefficient\nL=50*10**3 #amplifier spacing\n\n#Calculation\nqo=0.5*to/t #separation of the soliton pulses \nBt=(2*qo*math.sqrt(B2*L))**-1 #transmission bit rate \n\n#Result\nprint'(a) Separation = %.1f'%qo\nprint'(b) Transmission bit rate = %.2f x 10^9'%(Bt*10**-8)", - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": "(a) Separation = 5.8\n(b) Transmission bit rate = 17.14 x 10^9\n" - } - ], - "prompt_number": 21 - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": "Example 12.23, page 799" - }, - { - "cell_type": "code", - "collapsed": false, - "input": "import math\n\n#Variable declaration\nto=40*10**-12 #bit period\nt=4*10**-12 #RZ pulse width\na=0.2*10**-3 #attenuation coefficient\nB2=1.25*10**-12*10**-12*10**-3 #second-order dispersion coefficient\n\n#Calculation\nqo=0.5*to/t #separation of the soliton pulses \nb=1/(2*qo)\nc=math.sqrt(a/B2)\nBt=b*c #transmission bit rate \n\n#Result\nprint'(a) Separation = %.1f'%qo\nprint'(b) Transmission bit rate = %.2f x 10^10 bit s^-1'%(Bt*10**-10)", - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": "(a) Separation = 5.0\n(b) Transmission bit rate = 4.00 x 10^10 bit s^-1\n" - } - ], - "prompt_number": 22 - } - ], - "metadata": {} - } - ] -}
\ No newline at end of file |