summaryrefslogtreecommitdiff
path: root/Electronic_Communication_by_D._Roddy/Chapter20_Fibre_Optic_Communication.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'Electronic_Communication_by_D._Roddy/Chapter20_Fibre_Optic_Communication.ipynb')
-rw-r--r--Electronic_Communication_by_D._Roddy/Chapter20_Fibre_Optic_Communication.ipynb587
1 files changed, 587 insertions, 0 deletions
diff --git a/Electronic_Communication_by_D._Roddy/Chapter20_Fibre_Optic_Communication.ipynb b/Electronic_Communication_by_D._Roddy/Chapter20_Fibre_Optic_Communication.ipynb
new file mode 100644
index 00000000..254e70df
--- /dev/null
+++ b/Electronic_Communication_by_D._Roddy/Chapter20_Fibre_Optic_Communication.ipynb
@@ -0,0 +1,587 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter20 Fibre Optic Communication"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 20.2.1,Pg.no.753"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The numerical aperture is 0.35\n",
+ "The acceptance angle is 0.36\n"
+ ]
+ }
+ ],
+ "source": [
+ "import math\n",
+ "from math import sqrt\n",
+ "n1=1.55 #RI of glass\n",
+ "n2=1.51 #RI of clad\n",
+ "#NA of the fibe is given as\n",
+ "NA=n1*sqrt(2*(n1-n2)/n1)\n",
+ "NA=round(NA,2)\n",
+ "print 'The numerical aperture is',NA\n",
+ "#Acceptance angle is given as\n",
+ "acc_angle=math.asin(NA)\n",
+ "acc_angle=round(acc_angle,2)\n",
+ "print 'The acceptance angle is',acc_angle"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 20.2.2,Pg.no.761"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The V number is 69.12\n",
+ "the approximate no . of modes are 2388.8\n"
+ ]
+ }
+ ],
+ "source": [
+ "import math\n",
+ "from math import pi\n",
+ "d=50*10**-6\n",
+ "wav=0.8*10**-6\n",
+ "NA=0.352 \n",
+ "#Determination of V number\n",
+ "V=(pi)*d*NA/wav\n",
+ "V=round(V,2)\n",
+ "print 'The V number is',V\n",
+ "#Determination of approximate number of modes\n",
+ "N=(V**2)/2\n",
+ "N=round(N,1)\n",
+ "print 'the approximate no . of modes are',N"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 20.2.3,Pg.no.762"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The v number is 4.2291\n",
+ "From the table it is seen that 6 modes have cut off v less than 4.23\n"
+ ]
+ }
+ ],
+ "source": [
+ "import math\n",
+ "from math import pi\n",
+ "d=5*10**-6\n",
+ "wave=1.3*10**-6\n",
+ "NA=0.35\n",
+ "#Determination of V number\n",
+ "V=(pi)*d*NA/wave\n",
+ "V=round(V,4)\n",
+ "print 'The v number is',V\n",
+ "print 'From the table it is seen that 6 modes have cut off v less than 4.23'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 20.2.4,Pg.no.763"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "No . of modes supported by graded index fiber= 1195\n"
+ ]
+ }
+ ],
+ "source": [
+ "import math\n",
+ "a=2 #gradding profile index\n",
+ "V=69.1 #normalized cutoff frequency\n",
+ "N=2390 #number of modes supported as a step index fiber\n",
+ "#Determination of no . of modes supported by graded index fiber\n",
+ "N_a=(N*a)/(a+2)\n",
+ "print 'No . of modes supported by graded index fiber=',N_a"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 20.2.5,Pg.no.763"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "a) the normilized index difference is 0.002\n",
+ "b) cladding index required is 1.55\n",
+ "The max acceptance angle is 0.1\n"
+ ]
+ }
+ ],
+ "source": [
+ "import math\n",
+ "from math import pi\n",
+ "d=10*10**-6\n",
+ "wav=1.3*10**-6\n",
+ "n1=1.55\n",
+ "V_max=2.405\n",
+ "NA=(V_max*wav)/(pi*d)\n",
+ "#a) Determination of maximum normailized index difference\n",
+ "del1=(0.5)*((NA/n1)**2)\n",
+ "del1=round(del1,3)\n",
+ "print 'a) the normilized index difference is',del1\n",
+ "#b) Determination of r effective index of claddin glass\n",
+ "n2=n1*(1-del1)\n",
+ "n2=round(n2,2)\n",
+ "print 'b) cladding index required is',n2\n",
+ "#Determination of the fiber acceptance angle\n",
+ "theta_max=math.asin(NA)\n",
+ "theta_max=round(theta_max,3)\n",
+ "print'The max acceptance angle is',theta_max"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 20.3.1,Pg.no.766"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "a)The repeater dist for 0.9um wavelength is 12 km\n",
+ "b)The repeater dist for 1.5um wavelength is 83.33 km\n"
+ ]
+ }
+ ],
+ "source": [
+ "import math\n",
+ "A_max=25\n",
+ "A1=2\n",
+ "A2=0.3\n",
+ "#a) Determination of repeater dist at 0.9um wavelength\n",
+ "z1=A_max/A1\n",
+ "print 'a)The repeater dist for 0.9um wavelength is',z1,'km'\n",
+ "#b) Determination of repeater dist at 1.5um wavelength\n",
+ "z2=A_max/A2\n",
+ "z2=round(z2,2)\n",
+ "print 'b)The repeater dist for 1.5um wavelength is',z2,'km'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 20.4.1,Pg.no.772"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The intermodal dispersion is 1.37e-07 s/km\n",
+ "The intermodal dispertion for l=12.5 is 1.71e-09 s\n"
+ ]
+ }
+ ],
+ "source": [
+ "import math\n",
+ "#given\n",
+ "n1=1.55\n",
+ "del1=0.0258\n",
+ "l=12.5\n",
+ "z=1000\n",
+ "c=3*10**8 #velocity of light\n",
+ "#a) Determination of intermodal dispersion\n",
+ "del_per_km=(n1*z*del1)/((1-del1)*c)*10**7\n",
+ "del_per_km=round(del_per_km,2)*10**-7\n",
+ "print 'The intermodal dispersion is',del_per_km ,'s/km'\n",
+ "#b) Determination of intermodal dispersion for l =12.5\n",
+ "del_l=del_per_km*l/1000*10**9\n",
+ "del_l=round(del_l,2)*10**-9\n",
+ "print 'The intermodal dispertion for l=12.5 is',del_l,'s'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 20.4.2,Pg.no.773"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The intermodal dispersion is 5.37e-05 sec\n"
+ ]
+ }
+ ],
+ "source": [
+ "import math\n",
+ "n1=1.55\n",
+ "del1=(258.0)*(10**-2)\n",
+ "z=1000\n",
+ "c=3*10**8\n",
+ "z_disp=12.5\n",
+ "del_graded=(n1*z*del1**2)/(8*c)\n",
+ "#Determination of intermodal dispersion\n",
+ "del_total=del_graded*z_disp*10**5\n",
+ "del_total=round(del_total,2)*10**-5\n",
+ "print 'The intermodal dispersion is',del_total,'sec'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 20.4.3,Pg.no.774"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The total material dispersion is -2.8125 ns\n"
+ ]
+ }
+ ],
+ "source": [
+ "import math\n",
+ "#given\n",
+ "wav_0=0.8*10**-6\n",
+ "Dm=-0.15\n",
+ "wav_3=1.5\n",
+ "z=12.5\n",
+ "del_t=Dm*wav_3\n",
+ "#Determination of total material dispersion\n",
+ "del_md=del_t*z\n",
+ "print 'The total material dispersion is',del_md,'ns' "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 20.4.4,Pg.no.775"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Expected waveguide dispersion is 495.0 ps\n"
+ ]
+ }
+ ],
+ "source": [
+ "import math\n",
+ "#given\n",
+ "Dm=6.6\n",
+ "z=12.5\n",
+ "del_3=6\n",
+ "del_wg=Dm*z*del_3\n",
+ "print'Expected waveguide dispersion is',del_wg,'ps'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 20.4.5,Pg.no.776"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The total dispersion is 1.0 ns\n",
+ "The max allowed bit rate is 500.0 Mbps\n"
+ ]
+ }
+ ],
+ "source": [
+ "import math\n",
+ "#given\n",
+ "del_imd=0\n",
+ "del_md=2.81\n",
+ "del_wgd=0.495\n",
+ "t_w=2.5\n",
+ "del_tot=((del_imd**2)+(del_md**2)+(del_wgd**2))**(1/2)\n",
+ "print 'The total dispersion is',del_tot,'ns'\n",
+ "t_r=((t_w**2)+(del_tot**2))**(1/2) \n",
+ "#Determination of max allowed bit rate\n",
+ "B=(1000/(2*t_r))\n",
+ "print 'The max allowed bit rate is',B,'Mbps'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 20.4.6,Pg.no.778"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "a)The BW distance product for fiber is 0.125 Mbps−km\n",
+ "b)The disp limited length for a fiber is 12.5 km\n"
+ ]
+ }
+ ],
+ "source": [
+ "import math\n",
+ "#given\n",
+ "del_t=4.0\n",
+ "B=10.0\n",
+ "#a) Determination of BW distance product\n",
+ "BDP=1/(2*del_t)\n",
+ "print'a)The BW distance product for fiber is',BDP,'Mbps−km'\n",
+ "#b) Determiation of dispersion limited length\n",
+ "z_max_disp=BDP/(B*10**-3)\n",
+ "print'b)The disp limited length for a fiber is',z_max_disp,'km'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 20.5.1,Pg.no.780"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "a) i) the wavelength is 0.7 um\n",
+ "a) ii) the freq is 459307010.5 MHz\n",
+ "b) i) the wavelength is 0.85 um\n",
+ "b) ii) the freq is 352941176.471 MHz\n",
+ "c)i) the wavelength is 1.3 um\n",
+ "c)ii) the freq is 230620467.4 MHz\n"
+ ]
+ }
+ ],
+ "source": [
+ "import math\n",
+ "E1=1.9\n",
+ "E2=1.46\n",
+ "E3=0.954\n",
+ "eV=1.9 #All in eV\n",
+ "c=3*10**8 #speed of light\n",
+ "#a) Determination of wavelength and freq for E1=1.9\n",
+ "wav1=1.241/E1\n",
+ "f1=c/(wav1)\n",
+ "wav1=round(wav1,1)\n",
+ "f1=round(f1,1)\n",
+ "print 'a) i) the wavelength is',wav1,'um'\n",
+ "print 'a) ii) the freq is',f1,'MHz'\n",
+ "#b) Determination of wavelength and freq for E2=1.46\n",
+ "wav2=1.241/E2\n",
+ "f2=c/(wav2)\n",
+ "print 'b) i) the wavelength is',wav2,'um'\n",
+ "print 'b) ii) the freq is',f2,'MHz'\n",
+ "#c ) Determination of wavelength and freq for E3=0.945\n",
+ "wav3=1.241/E3\n",
+ "f3=c/(wav3)\n",
+ "wav3=round(wav3,1)\n",
+ "f3=round(f3,1)\n",
+ "print'c)i) the wavelength is',wav3,'um'\n",
+ "print'c)ii) the freq is',f3,'MHz'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 20.8.1,Pg.no.799"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "a) the loss−limited fiber is 17.75 km\n",
+ "b) the max BW for loss−limited length is 0.022 Gbps\n",
+ "the dispertion limited length is 11.32 km\n"
+ ]
+ }
+ ],
+ "source": [
+ "import math\n",
+ "#given\n",
+ "pt=0\n",
+ "pr=-57\n",
+ "Nc=2\n",
+ "BER=10**-9\n",
+ "N=5\n",
+ "Lpt=6\n",
+ "Lpr=6\n",
+ "Lc=1\n",
+ "Ls =0.5\n",
+ "Lf=2\n",
+ "M=5\n",
+ "del_t=0.505\n",
+ "B=35\n",
+ "Ns=5\n",
+ "#a) Determination of loss−limited fiber length\n",
+ "z=(pt-pr-M-(Nc*Lc)-(Ns*Ls)-Lpt-Lpr)/Lf\n",
+ "print 'a) the loss−limited fiber is',z,'km'\n",
+ "#b) Determination of max BW for loss−limited fiber length\n",
+ "B_max=1/(5*del_t*z)\n",
+ "B_max=round(B_max,3)\n",
+ "print 'b) the max BW for loss−limited length is',B_max,'Gbps'\n",
+ "#c ) Determination of dispersion−limited length\n",
+ "z_disp=1000/(5*del_t*B)\n",
+ "z_disp=round(z_disp,2)\n",
+ "print 'the dispertion limited length is',z_disp,'km'"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.10"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}