diff options
Diffstat (limited to 'Solid_State_Physics_by_Dr._M._Arumugam/Chapter13.ipynb')
-rw-r--r-- | Solid_State_Physics_by_Dr._M._Arumugam/Chapter13.ipynb | 665 |
1 files changed, 665 insertions, 0 deletions
diff --git a/Solid_State_Physics_by_Dr._M._Arumugam/Chapter13.ipynb b/Solid_State_Physics_by_Dr._M._Arumugam/Chapter13.ipynb new file mode 100644 index 00000000..558f6667 --- /dev/null +++ b/Solid_State_Physics_by_Dr._M._Arumugam/Chapter13.ipynb @@ -0,0 +1,665 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 13: Fiber Optics" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example number 1, Page number 13.19" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "critical angle is 78.5 degrees\n", + "numerical aperture is 0.3\n", + "acceptance angle is 17.4 degrees\n" + ] + } + ], + "source": [ + "#importing modules\n", + "import math\n", + "from __future__ import division\n", + "\n", + "#Variable declaration\n", + "n2=1.47; #refractive index of cladding\n", + "n1=1.5; #refractive index of core\n", + "\n", + "#Calculation\n", + "phi_c=math.asin(n2/n1); #critical angle(radian)\n", + "phi_c=phi_c*180/math.pi; #critical angle(degrees)\n", + "NA=math.sqrt(n1**2-n2**2); #numerical aperture\n", + "phi_max=math.asin(NA); #acceptance angle(radian)\n", + "phi_max=phi_max*180/math.pi; #acceptance angle(degrees)\n", + "\n", + "#Result\n", + "print \"critical angle is\",round(phi_c,1),\"degrees\"\n", + "print \"numerical aperture is\",round(NA,1)\n", + "print \"acceptance angle is\",round(phi_max,1),\"degrees\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example number 2, Page number 13.19" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "total number of guided modes is 490\n", + "number of modes propagated inside fibre is 245\n" + ] + } + ], + "source": [ + "#importing modules\n", + "import math\n", + "from __future__ import division\n", + "\n", + "#Variable declaration\n", + "d=50*10**-6; #diameter(m)\n", + "NA=0.2; #numerical aperture(m)\n", + "lamda=1*10**-6; #wavelength(m)\n", + "\n", + "#Calculation\n", + "N=4.9*(d*NA/lamda)**2; #total number of guided modes\n", + "Nf=N/2; #number of modes propagated inside fibre\n", + "\n", + "#Result\n", + "print \"total number of guided modes is\",int(N)\n", + "print \"number of modes propagated inside fibre is\",int(Nf)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example number 3, Page number 13.19" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "total number of guided modes is 1\n", + "it is a single mode propagation\n" + ] + } + ], + "source": [ + "#importing modules\n", + "import math\n", + "from __future__ import division\n", + "\n", + "#Variable declaration\n", + "d=5*10**-6; #diameter(m)\n", + "n2=1.447; #refractive index of cladding\n", + "n1=1.45; #refractive index of core\n", + "lamda=1*10**-6; #wavelength(m)\n", + "\n", + "#Calculation\n", + "NA=math.sqrt(n1**2-n2**2); #numerical aperture\n", + "N=4.9*(d*NA/lamda)**2; #total number of guided modes\n", + "\n", + "#Result\n", + "print \"total number of guided modes is\",int(N)\n", + "print \"it is a single mode propagation\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example number 4, Page number 13.19" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "numerical aperture is 0.46\n" + ] + } + ], + "source": [ + "#importing modules\n", + "import math\n", + "from __future__ import division\n", + "\n", + "#Variable declaration\n", + "n1=1.46; #refractive index of core\n", + "delta=0.05; #refractive index difference\n", + "\n", + "#Calculation\n", + "NA=n1*math.sqrt(2*delta); #numerical aperture\n", + "\n", + "#Result\n", + "print \"numerical aperture is\",round(NA,2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example number 5, Page number 13.20" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "V number is 94.72\n", + "maximum number of modes is 4486\n" + ] + } + ], + "source": [ + "#importing modules\n", + "import math\n", + "from __future__ import division\n", + "\n", + "#Variable declaration\n", + "a=50;\n", + "n2=1.5; #refractive index of cladding\n", + "n1=1.53; #refractive index of core\n", + "lamda0=1; #wavelength(micro m)\n", + "\n", + "#Calculation\n", + "V_number=round(2*math.pi*a*math.sqrt(n1**2-n2**2)/lamda0,2); #V number\n", + "n=V_number**2/2; #maximum number of modes\n", + "\n", + "#Result\n", + "print \"V number is\",V_number\n", + "print \"maximum number of modes is\",int(round(n))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example number 6, Page number 13.20" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "total number of modes is 49178\n" + ] + } + ], + "source": [ + "#importing modules\n", + "import math\n", + "from __future__ import division\n", + "\n", + "#Variable declaration\n", + "a=100*10**-6;\n", + "NA=0.3; #numerical aperture(m)\n", + "lamda=850*10**-9; #wavelength(m)\n", + "\n", + "#Calculation\n", + "V_number=round(2*math.pi**2*a**2*NA**2/lamda**2); #number of modes\n", + "\n", + "#Result\n", + "print \"total number of modes is\",int(2*V_number)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example number 7, Page number 13.20" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "cutoff wavelength is 1.315 micro m\n" + ] + } + ], + "source": [ + "#importing modules\n", + "import math\n", + "from __future__ import division\n", + "\n", + "#Variable declaration\n", + "a=25*10**-6;\n", + "n1=1.48; #refractive index of core\n", + "delta=0.01; #refractive index difference\n", + "V=25; #Vnumber\n", + "\n", + "#Calculation\n", + "lamda=2*math.pi*a*n1*math.sqrt(2*delta)/V; #cutoff wavelength(m)\n", + "\n", + "#Result\n", + "print \"cutoff wavelength is\",round(lamda*10**6,3),\"micro m\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example number 8, Page number 13.20" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "maximum value of core radius is 9.95 micro m\n" + ] + } + ], + "source": [ + "#importing modules\n", + "import math\n", + "from __future__ import division\n", + "\n", + "#Variable declaration\n", + "V=2.405; #Vnumber\n", + "lamda=1.3; #wavelength(micro m)\n", + "NA=0.05; #numerical aperture(m)\n", + "\n", + "#Calculation\n", + "amax=V*lamda/(2*math.pi*NA); #maximum value of core radius(micro m)\n", + "\n", + "#Result\n", + "print \"maximum value of core radius is\",round(amax,2),\"micro m\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example number 9, Page number 13.21" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "acceptance angle for meridional rays is 17.46 degrees\n", + "acceptance angle for skew rays is 25.104 degrees\n", + "answer for acceptance angle for skew rays given in the book is wrong\n" + ] + } + ], + "source": [ + "#importing modules\n", + "import math\n", + "from __future__ import division\n", + "\n", + "#Variable declaration\n", + "NA=0.3; #numerical aperture(m)\n", + "gama=45*math.pi/180; #angle(radian)\n", + "\n", + "#Calculation\n", + "thetaa=math.asin(NA); #acceptance angle for meridional rays(radian)\n", + "thetaa=thetaa*180/math.pi; #acceptance angle for meridional rays(degrees)\n", + "thetaas=math.asin(NA/math.cos(gama)); #acceptance angle for skew rays(radian)\n", + "thetaas=thetaas*180/math.pi; #acceptance angle for skew rays(degrees)\n", + "\n", + "#Result\n", + "print \"acceptance angle for meridional rays is\",round(thetaa,2),\"degrees\"\n", + "print \"acceptance angle for skew rays is\",round(thetaas,3),\"degrees\"\n", + "print \"answer for acceptance angle for skew rays given in the book is wrong\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example number 10, Page number 13.21" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "numerical aperture is 0.303\n", + "acceptance angle is 17.633 degrees\n", + "answer for angle given in the book varies due to rounding off errors\n" + ] + } + ], + "source": [ + "#importing modules\n", + "import math\n", + "from __future__ import division\n", + "\n", + "#Variable declaration\n", + "delta=0.0196; #relative refractive index difference\n", + "n1=1.53; #refractive index of core\n", + "\n", + "#Calculation\n", + "NA=n1*math.sqrt(2*delta); #numerical aperture\n", + "theta=math.asin(NA); #acceptance angle(radian)\n", + "theta=theta*180/math.pi; #acceptance angle(degrees)\n", + "\n", + "#Result\n", + "print \"numerical aperture is\",round(NA,3)\n", + "print \"acceptance angle is\",round(theta,3),\"degrees\"\n", + "print \"answer for angle given in the book varies due to rounding off errors\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example number 11, Page number 13.21" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "core radius is 1.548 micro m\n", + "answer given in the book is wrong\n" + ] + } + ], + "source": [ + "#importing modules\n", + "import math\n", + "from __future__ import division\n", + "\n", + "#Variable declaration\n", + "n2=1.465; #refractive index of cladding\n", + "n1=1.480; #refractive index of core\n", + "lamda=850*10**-9; #wavelength(m)\n", + "\n", + "#Calculation\n", + "delta=(n1**2-n2**2)/(2*n1**2); #relative refractive index difference\n", + "a=2.405*lamda*10**6/(2*math.pi*n1*math.sqrt(2*delta)); #core radius(micro m)\n", + "\n", + "#Result\n", + "print \"core radius is\",round(a,3),\"micro m\"\n", + "print \"answer given in the book is wrong\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example number 12, Page number 13.21" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "total number of reflections per metre is 2321\n", + "total distance travelled by light is 1.0067 m\n" + ] + } + ], + "source": [ + "#importing modules\n", + "import math\n", + "from __future__ import division\n", + "\n", + "#Variable declaration\n", + "n2=1.49; #refractive index of cladding\n", + "n1=1.5; #refractive index of core\n", + "a=25; #core radius(micro m)\n", + "\n", + "#Calculation\n", + "phic=math.asin(n2/n1); #angle(degrees)\n", + "l=2*a*math.tan(phic); #fibre length covered in 1 reflection(micro m)\n", + "n=10**6/l; #total number of reflections per metre\n", + "d=1/math.sin(phic); #total distance travelled by light(m)\n", + "\n", + "#Result\n", + "print \"total number of reflections per metre is\",int(n)\n", + "print \"total distance travelled by light is\",round(d,4),\"m\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example number 13, Page number 13.22" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "total number of modes is 309\n" + ] + } + ], + "source": [ + "#importing modules\n", + "import math\n", + "from __future__ import division\n", + "\n", + "#Variable declaration\n", + "alpha=1.85; #index profile\n", + "a=25; #core radius(micro m)\n", + "NA=0.21; #numerical aperture\n", + "lamda=1.3; #wavelength(micro m)\n", + "\n", + "#Calculation\n", + "n=(alpha*2*math.pi**2*a**2*NA**2)/(lamda**2*(alpha+2)); #number of modes\n", + "N=2*n; #total number of modes\n", + "\n", + "#Result\n", + "print \"total number of modes is\",int(N)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example number 14, Page number 13.22" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "signal attenuation per unit length is 1.7 dB km-1\n", + "overall signal attenuation is 17 dB\n" + ] + } + ], + "source": [ + "#importing modules\n", + "import math\n", + "from __future__ import division\n", + "\n", + "#Variable declaration\n", + "L=10; #transmission distance(km)\n", + "Pi=100; #optical power(micro W)\n", + "Po=2; #optical power output(micro W)\n", + "\n", + "#Calculation\n", + "sa=round(10*math.log10(Pi/Po)/L,1); #signal attenuation per unit length(dB km-1)\n", + "osa=sa*L; #overall signal attenuation(dB)\n", + "\n", + "#Result\n", + "print \"signal attenuation per unit length is\",sa,\"dB km-1\"\n", + "print \"overall signal attenuation is\",int(osa),\"dB\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example number 15, Page number 13.23" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "dispersion is 1343.3 ns\n", + "bandwidth length product is 7.44 *10**6 Hz-km\n", + "answer for bandwidth given in the book is wrong\n" + ] + } + ], + "source": [ + "#importing modules\n", + "import math\n", + "from __future__ import division\n", + "\n", + "#Variable declaration\n", + "L=10; #transmission distance(km)\n", + "n1=1.55; #refractive index of core\n", + "delta=0.026; #relative refractive index difference\n", + "C=3*10**5; \n", + "\n", + "#Calculation\n", + "deltaT=L*n1*delta/C; #dispersion(s)\n", + "blp=L/deltaT; #bandwidth length product(Hz-km)\n", + "\n", + "#Result\n", + "print \"dispersion is\",round(deltaT*10**9,1),\"ns\"\n", + "print \"bandwidth length product is\",round(blp/10**6,2),\"*10**6 Hz-km\"\n", + "print \"answer for bandwidth given in the book is wrong\"" + ] + } + ], + "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.11" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} |