summaryrefslogtreecommitdiff
path: root/Solid_State_Physics_by_Dr._M._Arumugam/Chapter13.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'Solid_State_Physics_by_Dr._M._Arumugam/Chapter13.ipynb')
-rw-r--r--Solid_State_Physics_by_Dr._M._Arumugam/Chapter13.ipynb665
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
+}