summaryrefslogtreecommitdiff
path: root/Optical_fiber_communication_by_gerd_keiser/chapter3_1.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'Optical_fiber_communication_by_gerd_keiser/chapter3_1.ipynb')
-rwxr-xr-xOptical_fiber_communication_by_gerd_keiser/chapter3_1.ipynb358
1 files changed, 358 insertions, 0 deletions
diff --git a/Optical_fiber_communication_by_gerd_keiser/chapter3_1.ipynb b/Optical_fiber_communication_by_gerd_keiser/chapter3_1.ipynb
new file mode 100755
index 00000000..83e3dde2
--- /dev/null
+++ b/Optical_fiber_communication_by_gerd_keiser/chapter3_1.ipynb
@@ -0,0 +1,358 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c31c7734af7a6179a63aac4a4be2acaa7976b91a58a8c77446fe6a6c4b3a076e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3: Signal degradation in optical fibers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.1, Page Number: 91"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "Z1 = 1.0 #distance (km)\n",
+ "Z2 = 2.0 #distance (km)\n",
+ "alpha_in_dB_per_km = 3.0 #loss(dB/km)\n",
+ "\n",
+ "#calculation\n",
+ "R1 = (alpha_in_dB_per_km *Z1)/10.0 \n",
+ "R2 = (alpha_in_dB_per_km *Z2)/10.0\n",
+ "P0_Pz1 = (10**R1) #power loss at 1 km\n",
+ "P0_Pz2 = (10**R2) #power loss at 2 km\n",
+ "Pz_P01 = 1-(1/P0_Pz1)\n",
+ "Pz_P02 = 1-(1/P0_Pz2)\n",
+ "\n",
+ "#result\n",
+ "print \"Optical signal power decresed for 1km = \" , round(Pz_P01*100,0) , \"%\"\n",
+ "print \"Optical signal power decresed for 2km = \" , round(Pz_P02*100,0) , \"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Optical signal power decresed for 1km = 50.0 %\n",
+ "Optical signal power decresed for 2km = 75.0 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2, Page Number: 91"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "Pin = 200*10**-6 #power launched into the fiber(uW)\n",
+ "alpha = 0.4 #attenuation (dB/KM)\n",
+ "z = 30 #optical fiber length 30 KM\n",
+ "\n",
+ "#calculation\n",
+ "Pin_dBm = 10*(math.log10(Pin/10**-3)) #input power (dBm)\n",
+ "Pout_dBm = 10*(math.log10(Pin/10**-3))-alpha*z #output power(dBm)\n",
+ "Pout = 10**(Pout_dBm/10)\n",
+ "\n",
+ "#result\n",
+ "print \"Input power = \" , round(Pin_dBm,1),\"dBm\"\n",
+ "print \"Output power = \" , round(Pout_dBm,1),\"dBm\"\n",
+ "print \"Output power = \" , round(Pout*10**3,1),\"um\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Input power = -7.0 dBm\n",
+ "Output power = -19.0 dBm\n",
+ "Output power = 12.6 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3, Page Number: 97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "alpha_0 = 1.64 #attenuation at Lam_bda_0 in dB/KM\n",
+ "Lam_bda_0 = 850*10**-9 #wavelength 850 nm\n",
+ "Lam_bda1 = 1310*10**-9 #wavelength 1350 nm\n",
+ "Lam_bda2 = 1550*10**-9 #waavelength 1550 nm \n",
+ "\n",
+ "#calculation\n",
+ "alpha_Lambda1 = alpha_0*((Lam_bda_0/Lam_bda1)**4) #rayleigh scattering loss1(dB/Km)\n",
+ "alpha_Lambda2 = alpha_0*((Lam_bda_0/Lam_bda2)**4) #rayleigh scattering loss2(dB/Km)\n",
+ "\n",
+ "#result\n",
+ "print \"Rayleigh scattering loss alpha at 1310 nm = \" , round(alpha_Lambda1,3),\"dB/Km\"\n",
+ "print \"Rayleigh scattering loss alpha at 1550 nm = \" , round(alpha_Lambda2,3),\"dB/Km\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rayleigh scattering loss alpha at 1310 nm = 0.291 dB/Km\n",
+ "Rayleigh scattering loss alpha at 1550 nm = 0.148 dB/Km\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.4, Page Number: 99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "alpha = 2 #graded index profile\n",
+ "n2 = 1.5 #cladding\n",
+ "Lam_bda = 1.3*10**-6 #wavelength\n",
+ "R = 0.01 #bend radius of curvature\n",
+ "a = 25*10**-6 #core radius\n",
+ "delta = 0.01 #core cladding index profile\n",
+ "k = 4.83*10**6 #propagation constant\n",
+ "\n",
+ "#calculation\n",
+ "no_of_modes= -10000.0 #number of modes decreased by 50% in greded index fibre\n",
+ "part1 = (alpha+2)/(2*alpha*delta)\n",
+ "part2 = (1-no_of_modes)/part1 #Right side of equation\n",
+ "part3 = (2*a/R)+math.floor((3/(2*n2*k*R))**(2/3))*100 #left side of equation\n",
+ "\n",
+ "#result\n",
+ "print \"From equation part2 =\",round(part2,1),\"= part3 =\",round(part3,1)\n",
+ "print \"Radius of curvature = \", round(R*100,1),\"cm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From equation part2 = 100.0 = part3 = 100.0\n",
+ "Radius of curvature = 1.0 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.5, Page Number: 103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "C = 3*10**8 #free space velocity(m/s) \n",
+ "n1 = 1.48 #core refractive index\n",
+ "n2 = 1.465 #cladding refractive index\n",
+ "delta = 0.01 #index difference\n",
+ "L = 10**3 #fiber length (Km)\n",
+ "\n",
+ "#calculation\n",
+ "deltaT = (L*(n1**2)/(C*n2))*delta #pulse broadening(ns/Km)\n",
+ "\n",
+ "#result\n",
+ "print \"Pulse broadening = \" , round((deltaT/L)*10**12,0),\"ns/Km\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pulse broadening = 50.0 ns/Km\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6, Page Number: 104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "n1 = 1.48 #core refractive index\n",
+ "n2 = 1.465 #cladding refractive index\n",
+ "delta = 0.01 #index difference\n",
+ "C =3*(10**8) #free space velcotiy(m/s)\n",
+ "\n",
+ "#calculation\n",
+ "BL = (n2/(n1**2))*(C/delta) #bit rate distance product(Mb/s-km)\n",
+ "\n",
+ "#result\n",
+ "print \"Bandwidth distance at pulse spreding of 50ns/km = \" , round(BL*10**-9),\"Mb/s-km\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bandwidth distance at pulse spreding of 50ns/km = 20.0 Mb/s-km\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7, Page Number: 107"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "Lamda = 800*10**-9 #Wavelength (m)\n",
+ "sigma_Lamda_LED = 40*10**-9 #spectral width (m)\n",
+ "mat_dispersion = 0.00011 #material dispersion \n",
+ "\n",
+ "#calculation\n",
+ "pulse_spread = sigma_Lamda_LED*mat_dispersion #pulse spread(ns/km)\n",
+ "\n",
+ "#result\n",
+ "print \"Material dispersion =\" ,round(pulse_spread*10**12,1),\"ns/km\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Material dispersion = 4.4 ns/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8, Page Number: 110"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "n2 = 1.48 #index of cladding\n",
+ "delta = 0.002 #index difference\n",
+ "Lam_bda = 1320*10**-9 #Wavelength (nm)\n",
+ "V_dVb_dV = 0.26 #The value in square brackets for v = 2.4\n",
+ "C =3*10**8 #velocity of light in free space\n",
+ "\n",
+ "#calculation\n",
+ "Dwg_Lamda = -(((n2*delta)/C)*(1/Lam_bda))*V_dVb_dV #waveguide dispersion(ps/nm*km)\n",
+ "\n",
+ "#result\n",
+ "print \"Waveguide dispersion = \" ,round(Dwg_Lamda*10**6,1),\"ps/(nm*km)\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Waveguide dispersion = -1.9 ps/(nm*km)\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file