diff options
Diffstat (limited to 'Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior')
15 files changed, 5564 insertions, 0 deletions
diff --git a/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/1-INTRODUCTION.ipynb b/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/1-INTRODUCTION.ipynb new file mode 100644 index 0000000..8781976 --- /dev/null +++ b/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/1-INTRODUCTION.ipynb @@ -0,0 +1,32 @@ +{ +"cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 1: INTRODUCTION" + ] + }, +], +"metadata": { + "kernelspec": { + "display_name": "Scilab", + "language": "scilab", + "name": "scilab" + }, + "language_info": { + "file_extension": ".sce", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "scilab", + "version": "0.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/10-OPTICAL_AMPLIFICATION_WAVELENGTH_CONVERSION_AND_REGENERATION.ipynb b/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/10-OPTICAL_AMPLIFICATION_WAVELENGTH_CONVERSION_AND_REGENERATION.ipynb new file mode 100644 index 0000000..7c0f5d8 --- /dev/null +++ b/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/10-OPTICAL_AMPLIFICATION_WAVELENGTH_CONVERSION_AND_REGENERATION.ipynb @@ -0,0 +1,249 @@ +{ +"cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 10: OPTICAL AMPLIFICATION WAVELENGTH CONVERSION AND REGENERATION" + ] + }, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.1: Determination_of_Refractive_Index_of_active_medium_and_3dB_Spectral_Bandwidth.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 10.1\n", +"//Program to determine the Refractive Index of the Active Medium and\n", +"//the 3dB spectral bandwidth of the device\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"L=300*10^-6; //metres - ACTIVE REGION LENGTH\n", +"Lambda=1.5*10^-6; //metres - PEAK GAIN WAVELENGTH\n", +"Delta_Lambda=1*10^-9; //metres - MODE SPACING\n", +"c= 2.998*10^8; //m/s - SPEED OF LIGHT\n", +"Gs_dB=4.8; //dB - SINGLE PASS GAIN\n", +"R1=0.3; //INPUT FACET REFRACTIVITY\n", +"R2=0.3; //OUTPUT FACET REFRACTIVITY\n", +"\n", +"//Refractive Index of the active medium at the peak gain wavelength\n", +"n=(Lambda^2)/(2*Delta_Lambda*L);\n", +"\n", +"//Gain Gs from Gs_dB by taking antilog with base 10\n", +"Gs=10^((1/10)*Gs_dB);\n", +"\n", +"//3dB spectral Bandwidth\n", +"B_fpa=(c/(%pi*n*L))*asin((1-sqrt(R1*R2)*Gs)/(2*sqrt(sqrt(R1*R2)*Gs)));\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t Refractive Index of the active medium at the peak gain wavelength is %0.2f .',n);\n", +"printf('\n\n\t 3dB spectral Bandwidth is %0.1f GHz .',B_fpa/10^9);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.2: Derivation_of_an_approximate_equation_for_the_cavity_gain_of_an_SOA.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 10.2\n", +"//Note: MAXIMA SCILAB TOOLBOX REQUIRED FOR THIS PROGRAM\n", +"//Program to derive an approximate equation for the cavity gain\n", +"//of an SOA\n", +" \n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"syms R1 R2;\n", +"\n", +"//For 3 dB peak through ratio\n", +"//Let A=sqrt(R1*R2)*Gs\n", +"A=(1-sqrt(0.5))/(1+sqrt(0.5));\n", +"\n", +"//Cavity gain\n", +"G=A/(1-A)^2/sqrt(R1*R2);;\n", +"\n", +"//Displaying the Result in Command Window\n", +"disp(G,'The approximate equation of cavity gain is, G = ')" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.3: EX10_3.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 10.3\n", +"//Program to determine:\n", +"//(a)The length of the device\n", +"//(b)The ASE noise signal power at the output of the amplifier\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"Gs_dB=30; //dB - SINGLE PASS GAIN\n", +"g_bar=200; //NET GAIN COEFFICIENT\n", +"m=2.2; //MODE FACTOR\n", +"n_sp=4; //SPONTANEOUS EMISSION FACTOR\n", +"h= 6.626*10^(-34); //J/K - PLANK's CONSTANT\n", +"c=2.998*10^8; //m/s - VELOCITY OF LIGHT IN VACCUM\n", +"B=1*10^(12); //Hz - OPTICAL BANDWIDTH\n", +"Lambda=1.55*10^(-6); //metre - OPERATING WAVELENGTH\n", +"\n", +"//(a)The length of the device\n", +"L=Gs_dB/(10*g_bar*log10(%e));\n", +"\n", +"//(b)The ASE noise signal power at the output of the amplifier\n", +"Gs=10^(Gs_dB/10);\n", +"f=c/Lambda;\n", +"P_ASE=m*n_sp*(Gs-1)*h*f*B;\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t (a)The length of the SOA is %0.2f X 10^(-3) m.',L/10^(-3));\n", +"printf('\n\n\t (b)The ASE noise signal power at the output of the amplifier, P_ASE = %0.2f mW.',P_ASE/10^(-3));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.4: EX10_4.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 10.4\n", +"//Program to determine: \n", +"//(a)The fiber non-linear coefficient\n", +"//(b)The parametric gain in dB when it is reduced to quadratic gain\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"L=500; //metre - LENGTH \n", +"Lambda=1.55*10^(-6); //metre - OPERATING WAVELENGTH\n", +"Pp= 1.4; //W - SIGNAL POWER \n", +"Gp_dB=62.2; //dB - PEAK GAIN\n", +"\n", +"//(a)The fiber non-linear coefficient\n", +"gaamma=(Gp_dB-10*log10(1/4))/(Pp*L)*1/(10*log10((%e)^2));\n", +"\n", +"//(b)The parametric gain in dB when it is reduced to quadratic gain\n", +"Gp_dB1=10*log10((gaamma*Pp*L)^2);\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t (a)The fiber non-linear coefficient is %0.2f X 10^(-3) per W per km.',gaamma/10^(-3));\n", +"printf('\n\n\t (b)The parametric gain in dB when it is reduced to quadratic gain is %0.1f dB.',Gp_dB1);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.5: EX10_5.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 10.5\n", +"//Program to calculate: \n", +"//(a)The frequency chirp variation at the output signal\n", +"//(b)The differential gain required\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"Lambda=1.55*10^(-6); //metre - OPERATING WAVELENGTH\n", +"alpha=-1; //ENHANCEMENT FACTOR\n", +"Pin=0.5*10^(-3); //Watt - INPUT SIGNAL POWER\n", +"dPin_by_dt=0.01*10^(-6); //metre - INPUT SIGNAL POWER VARIATION\n", +"dnr_by_dn=-1.2*10^(-26); //m^3 - DIFFERENTIAL REFRATIVE INDEX\n", +"\n", +"//(a)The frequency chirp variation at the output signal\n", +"del_f=-alpha/(4*%pi)*1/Pin*dPin_by_dt;\n", +"\n", +"//(b)The differential gain required\n", +"dg_by_dn=4*%pi/Lambda*dnr_by_dn/alpha;\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t (a)The frequency chirp variation at the output signal is %0.2f X 10^(-6)Hz.',del_f/10^(-6));\n", +"printf('\n\n\t (b)The differential gain required is %0.3f X 10^(-20) m^2.',dg_by_dn/10^(-20));" + ] + } +], +"metadata": { + "kernelspec": { + "display_name": "Scilab", + "language": "scilab", + "name": "scilab" + }, + "language_info": { + "file_extension": ".sce", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "scilab", + "version": "0.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/11-INTEGRATED_OPTICS_AND_PHOTONICS.ipynb b/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/11-INTEGRATED_OPTICS_AND_PHOTONICS.ipynb new file mode 100644 index 0000000..b6a528e --- /dev/null +++ b/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/11-INTEGRATED_OPTICS_AND_PHOTONICS.ipynb @@ -0,0 +1,201 @@ +{ +"cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 11: INTEGRATED OPTICS AND PHOTONICS" + ] + }, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 11.1: Determination_of_Voltage_required_to_provide_pi_radians_phase_change.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 11.1\n", +"//Program to determine the Voltage required for a phase change of \n", +"//pi radians\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"L=2*10^-2; //metres - LENGTH OF THE WAVEGUIDE\n", +"Lambda=1.3*10^-6; //metres - WAVELENGTH\n", +"d=25*10^-6; //metres - DISTANCE BETWEEN THE ELECTRODES\n", +"r=30.8*10^-12; //m/V - ELECTRO-OPTIC COEFFICIENT\n", +"n1=2.1; //REFRACTIVE INDEX AT 1.3um WAVELENGTH\n", +"\n", +"//Calculation of the Voltage required for a phase change of pi radians\n", +"V_pi=(Lambda*d)/((n1^3)*r*L);\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t Voltage required for a phase change of pi radians is %0.1f V.',V_pi);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 11.2: Determination_of_Corrugation_Period_and_Filter_3dB_Bandwidth.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 11.2\n", +"//Program to determine Corrugation Period and Filter's 3dB Bandwidth\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"L=1*10^-2; //metres - LENGTH OF THE DEVICE\n", +"Lambda_B=1.52*10^-6; //metres - CENTRE WAVELENGTH\n", +"Theeta=1; //Degree - INCIDENT ANGLE\n", +"n1=3.1; //REFRACTIVE INDEX of InGaAsP\n", +"\n", +"//Calculation of Effective Refractive Index of the Waveguide\n", +"ne=n1*sin(2*Theeta*%pi/180);\n", +"\n", +"//Calculation of the Corrugation Period\n", +"D=(Lambda_B)/(2*ne);\n", +"\n", +"//Calculation of the Filter's 3dB Bandwidth\n", +"delta_Lambda=(D*Lambda_B)/L;\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t Corrugation Period of the First Order Grating is %0.1f um.',D/10^-6);\n", +"printf('\n\n\t Filters 3dB Bandwidth is %0.1f Armstrong.',delta_Lambda/10^-10);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 11.3: Design_of_a_wavelength_channel_plan_for_a_dense_WDM_Interleaver_Waveband_Filter.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 11.3\n", +"//Program to design a wavelength channel plan for an 8 band, 32 \n", +"//channel dense WDM Interleaver Waveband Filter. Also to determine:\n", +"//(a)Total No. of channel required for each interleaver band filter\n", +"//(b)The overall bandwidth of the filter in each case\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"number_of_bands=8; \n", +"M=4; //TOTAL NUMBER OF CHANNELS IN EACH BAND\n", +"\n", +"//(a)Total No. of channel required for each interleaver band filter \n", +"//(i)N=0\n", +"N=0;\n", +"Cskip0=(number_of_bands-1)*N;\n", +"Ctotal0=number_of_bands*M+Cskip0;\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t (a)(i)For 4-skip-0, Ctotal = %d.',Ctotal0);\n", +"\n", +"//(ii)N=1\n", +"N=1;\n", +"Cskip1=(number_of_bands-1)*N;\n", +"Ctotal1=number_of_bands*M+Cskip1;\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t (ii)For 4-skip-1, Ctotal = %d.',Ctotal1);\n", +"\n", +"//(iii)N=2\n", +"N=2;\n", +"Cskip2=(number_of_bands-1)*N;\n", +"Ctotal2=number_of_bands*M+Cskip2;\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t (iii)For 4-skip-2, Ctotal = %d.',Ctotal2);\n", +"\n", +"//Generation of Table 11.1\n", +"printf('\n\n\t\t TABLE 11.1:WAVELENFTH CHANNEL PLAN');\n", +"W1=1552.52; //nm - WAVELENGTH FOR 1 CHANNEL\n", +"printf('\n\n\t\t (i)4-skip-0');\n", +"for i = 0:Ctotal0-1\n", +"printf('\n\t Number of Channels = %d, Wavelength = %0.2f nm.',i+1,W1+0.8*i);\n", +"end\n", +"printf('\n\n\t\t (ii)4-skip-1');\n", +"for i = 0:Ctotal1-1\n", +"printf('\n\t Number of Channels = %d, Wavelength = %0.2f nm.',i+1,W1+0.8*i);\n", +"end\n", +"printf('\n\n\t\t (iii)4-skip-2');\n", +"for i = 0:Ctotal2-1\n", +"printf('\n\t Number of Channels = %d, Wavelength = %0.2f nm.',i+1,W1+0.8*i);\n", +"end\n", +"\n", +"//(b)The overall bandwidth of the filter in each case taking values \n", +"//from Table 11.1\n", +"//(i)N=0\n", +"W2=1577.32; //nm - WAVELENGTH FOR 32 CHANNELS\n", +"BW=W2-W1;\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\n\t (b)(i)For 4-skip-0, Filter Bandwidth = %0.1f nm.',BW);\n", +"\n", +"//(ii)N=1\n", +"W2=1582.92; //nm - WAVELENGTH FOR 39 CHANNELS\n", +"BW=W2-W1;\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t (ii)For 4-skip-1, Filter Bandwidth = %0.1f nm.',BW);\n", +"\n", +"//(iii)N=2\n", +"W2=1588.52; //nm - WAVELENGTH FOR 46 CHANNELS\n", +"BW=W2-W1;\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t (iii)For 4-skip-2, Filter Bandwidth = %0.1f nm.',BW);" + ] + } +], +"metadata": { + "kernelspec": { + "display_name": "Scilab", + "language": "scilab", + "name": "scilab" + }, + "language_info": { + "file_extension": ".sce", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "scilab", + "version": "0.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/12-OPTICAL_FIBER_SYSTEMS_1_INTENSITY_MODULATION_AND_DIRECT_DETECTION.ipynb b/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/12-OPTICAL_FIBER_SYSTEMS_1_INTENSITY_MODULATION_AND_DIRECT_DETECTION.ipynb new file mode 100644 index 0000000..ea04897 --- /dev/null +++ b/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/12-OPTICAL_FIBER_SYSTEMS_1_INTENSITY_MODULATION_AND_DIRECT_DETECTION.ipynb @@ -0,0 +1,1110 @@ +{ +"cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 12: OPTICAL FIBER SYSTEMS 1 INTENSITY MODULATION AND DIRECT DETECTION" + ] + }, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 12.10: Estimation_of_ratio_of_SNR_of_the_coaxial_system_to_the_SNR_of_the_fiber_system.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 12.10\n", +"//Program to estimate ratio of SNR of the coaxial system to the SNR\n", +"//of the fiber system\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"V=5; //volts - TRANSMITTER PEAK OUTPUT VOLTAGE\n", +"Zo=100; //ohms - CABLE IMPEDANCE\n", +"T=290; //Kelvin - OPERATING TEMPERATURE\n", +"lambda=0.85*10^(-6); //metre - WAVELENGTH\n", +"K=1.38*10^(-23); //J/K - BOLTZMANN's CONSTANT\n", +"n=0.7; //(*100) percent - QUANTUM EFFICIENCY\n", +"Pi=1*10^(-3); //Watts - OPTICAL POWER\n", +"h=6.626*10^(-34); //(m^2)Kg/s - PLANK's CONSTANT\n", +"c=2.998*10^8; //m/s - SPEED OF LIGHT \n", +"\n", +"//Ratio SNR(coax)/SNR(fiber)\n", +"Ratio=V^2*h*c/(2*K*T*Zo*n*Pi*lambda);\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t SNR(coax)/SNR(fiber) = %d dB.',10*log10(Ratio));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 12.11: Determination_of_the_average_incident_optical_power_required_at_the_receiver.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 12.11\n", +"//Program to determine the average incident optical power required at \n", +"//the receiver \n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"k=1.38*10^(-23); //J/K - BOLTZMANN's CONSTANT\n", +"e=1.602*10^(-19); //Coulumbs - CHARGE OF AN ELECTRON\n", +"SNR_dB=55; //dB - SIGNAL POWER TO RMS NOISE RATIO\n", +"ma=0.8; //MODULATION INDEX\n", +"Id=0; //A - DARK CURRENT\n", +"T=293; //K - OPERATING TEMPERATURE\n", +"B=5*10^6; //Hz - BANDWIDTH\n", +"Fn_dB=1.5; //dB - NOISE FIGURE\n", +"Rl=1*10^6; //Ohms - EFFECTIVE INPUT IMPEDANCE\n", +"R=0.5; //A/W - RESPONSIVITIY\n", +"b=0.7; //RATIO OF LUMINANCE TO COMPOSITE VIDEO\n", +"SNR=10^(SNR_dB/10);\n", +"Fn=10^(Fn_dB/10);\n", +"\n", +"//Photo-current, Ip=R*Po Ip=Po*R;\n", +"//(SNR)p-p=(2*ma*Ip*b)^2/(2*e*B*(Ip+Id)+(4*k*T*B*Fn/Rl));\n", +"//Rearranging and solving the quadratic equation, Incident Power\n", +"Po=((SNR*2*e*B*R)+sqrt((SNR*2*e*B*R)^2-4*(2*ma*R*b)^2*(SNR*(-4*k*T*B*Fn/Rl))))/(2*(2*ma*R*b)^2);\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t The average incident optical power required at the receiver is %0.2f uW or %0.1f dBm.',Po/10^(-6),10*log10(Po/10^(-3)));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 12.12: EX12_12.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 12.12\n", +"//Program to determine the average incident optical power required to \n", +"//maintain given SNR\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"Lambda=1*10^(-6); //metre - WAVELENGTH \n", +"h= 6.626*10^(-34); //J/K - PLANK's CONSTANT\n", +"c=2.998*10^8; //m/s - VELOCITY OF LIGHT IN VACCUM\n", +"k=1.38*10^(-23); //J/K - BOLTZMANN's CONSTANT\n", +"e=1.602*10^(-19); //Coulumbs - CHARGE OF AN ELECTRON\n", +"eeta=0.6; //*100 percent - QUANTUM EFFICIENCY\n", +"SNR_dB=45; //dB - CURRENT SNR\n", +"Rl=50*10^3; //Ohms - EFFECTIVE LOAD IMPEDANCE\n", +"T=300; //K - OPERATING TEMPERATURE\n", +"ma=0.5; //MODULATION INDEX\n", +"Fn_dB=6; //dB - NOISE FIGURE\n", +"B=10*10^6; //Hz - POST DETECTION BANDWIDTH\n", +"\n", +"SNR=10^(SNR_dB/10);\n", +"Fn=10^(Fn_dB/10);\n", +"\n", +"//Average incident optical power required to maintain given SNR\n", +"Po=h*c/(e*eeta*ma^2*Lambda)*sqrt(8*k*T*Fn/Rl)*sqrt(SNR*B);\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t The average incident optical power required at the receiver is %0.2f uW or %0.1f dBm.',Po/10^(-6),10*log10(Po/10^(-3)));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 12.13: EX12_13.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 12.13\n", +"//Program to:\n", +"//(a)Determine the viability of optical power budget\n", +"//(b)Estimate any possible increase in link length\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"L=2; //km - OPTICAL FIBER LINK LENGTH\n", +"alpha_fc=3.5; //dB/km - CABLE FIBER LOSS \n", +"alpha_j=0.7; //dB/km - SPLICE LOSS\n", +"alpha_cr=1.6; //dB - CONNECTOR LOSS AT RECEIVER\n", +"Ma=4; //dB - REQUIRED SAFETY MARGIN\n", +"Pr_dBm=-25; //dBm - RECEIVER SENSITIVITY\n", +"Pi_dBm=-10; //dBm - POWER LAUNCHED\n", +"\n", +"//Total System Margin\n", +"Total_system_margin=Pi_dBm-Pr_dBm;\n", +"printf('\n\n\t (a)Total System Margin is %0.1f dB.',Total_system_margin);\n", +"\n", +"//Total System Loss\n", +"Total_system_loss=L*alpha_fc+L*alpha_j+alpha_cr+Ma;\n", +"printf('\n\n\t Total System Loss is %0.1f dB.',Total_system_loss);\n", +"\n", +"//Excess Power margin\n", +"Excess_power_margin=Total_system_margin-Total_system_loss;\n", +"printf('\n\n\t Excess Power margin is %0.1f dB.',Excess_power_margin);\n", +"\n", +"//(a)Testing Viability\n", +"if Excess_power_margin >=0 then\n", +"printf('\n\n\t The system is viable.');\n", +"else\n", +"printf('\n\n\t The system is not viable.');\n", +"end\n", +"\n", +"//(b)Maximum possible link length\n", +"Pi=0; //dBm - LAUNCHED POWER\n", +"Po=-25; //dBm - REQUIRED POWER BY APD\n", +"Ma=7; //dB - SAFETY MARGIN\n", +"//Optical budget: Pi-Po=(alpha_fc+alpha_j)L+alpha_cr+Ma\n", +"L1=(Pi-Po-alpha_cr-Ma)/(alpha_fc+alpha_j);\n", +"printf('\n\n\t (b)Maximum possible increase in link length is %0.1f km.',L1-L);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 12.14: EX12_14.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 12.14\n", +"//Program to determine whether the combination of components gives\n", +"//an adequate temporal response\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"L=5; //km - LENGTH OF FIBER LINK\n", +"Ts=10*10^(-9); //s - SOURCE RISE TIME\n", +"Dn=9*10^(-9); //s/km - INTERMODAL RISE TIME\n", +"Dc=2*10^(-9); //s/km - CHROMATIC RISE TIME\n", +"Td=3*10^(-9); //s - DETECTOR RISE TIME\n", +"Bopt=6*10^6; //Hz - REQUIRED OPTICAL BANDWIDTH\n", +"\n", +"Tn=Dn*L;\n", +"Tc=Dc*L;\n", +"\n", +"//Maximum permitted rise time\n", +"Tsyst_max=0.35/Bopt;\n", +"\n", +"//Total system rise time\n", +"Tsyst=1.1*sqrt(Ts^2+Tn^2+Tc^2+Td^2);\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t Maximum permitted rise time, Tsyst(max) = %0.1f ns.',Tsyst_max/10^(-9));\n", +"printf('\n\n\t Total system rise time, Tsyst = %0.1f ns.',Tsyst/10^(-9));\n", +"printf('\n\n\t Hence system gives adequate temporal response.');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 12.15: EX12_15.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 12.15\n", +"//Note: MAXIMA SCILAB TOOLBOX REQUIRED FOR THIS PROGRAM\n", +"//Program to:\n", +"//(a)Derive an expression for the improvement in post detection SNR\n", +"//(b)Determine the improvement in post detection SNR and Bandwidth\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//(a)Derive an expression for the improvement in post detection SNR\n", +"//Symbolic Representation\n", +"syms Pa R Po Ba No Df\n", +"//D-IM OUTPUT SNR\n", +"SNR_DIM=(R*Po)^2*Pa/(2*Ba*No);\n", +"//FM OUTPUT SNR\n", +"SNR_FM=3*Df^2*(R*Po)^2*Pa/(4*Ba*No);\n", +"//SNR IMPROVEMENT\n", +"SNR_imp=SNR_FM/SNR_DIM;\n", +"//SNR IMPROVEMENT IN dB\n", +"SNR_imp_dB=10*log10(SNR_imp);\n", +"disp(SNR_imp,'SNR IMPROVEMENT = ');\n", +"disp(SNR_imp_dB,'SNR IMPROVEMENT IN dB = ');\n", +"printf('\n\n\t The above expression is equivalent to 1.76+20*log10(Df)');\n", +"\n", +"//(b)Determine the improvement in post detection SNR and Bandwidth\n", +"//Given data\n", +"fd1=400*10^3; //Hz - PEAK FREQUENCY DEVIATION\n", +"Ba1=4*10^3; //Hz- BANDWIDTH\n", +"//Frequency Deviation Ratio\n", +"Df1=fd1/Ba1;\n", +"//SNR Improvement expression from part(a)\n", +"SNR_imp_dB1=1.76+20*log10(Df1);\n", +"//Bandwidth\n", +"Bm=2*(Df1+1)*Ba1;\n", +"printf('\n\n\t The SNR Improvement = %0.2f dB.',SNR_imp_dB1);\n", +"printf('\n\n\t The Bandwidth of FM-IM, Bm = %1.0f kHz.',Bm/10^3);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 12.16: Program_to_determine_the_ratio_of_SNRs_of_FM_IM_and_PM_IM_systems.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 12.16\n", +"//Note: MAXIMA SCILAB TOOLBOX REQUIRED FOR THIS PROGRAM\n", +"//Program to determine the ratio of SNRs of FM-IM and PM-IM systems\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Symbolic representation\n", +"syms fd Pa R Po Ac Ba No\n", +"\n", +"//FOR FM-IM \n", +"Df=fd/Ba; //Frequency Deviation\n", +"SNR_FM=3*Df^2*Pa*(R*Po)^2*Ac^2/2/(2*Ba*No);\n", +"\n", +"//FOR PM-IM\n", +"Dp=fd/Ba; //Frequency Deviation\n", +"SNR_PM=Df^2*Pa*(R*Po)^2*Ac^2/2/(2*Ba*No);\n", +"\n", +"//Determining Ratio\n", +"Ratio=SNR_FM/SNR_PM;\n", +"\n", +"//Displaying the Result in Command Window\n", +"disp(Ratio,' SNR_FM/SNR_PM = ');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 12.17: EX12_17.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 12.17\n", +"//Program to calculate:\n", +"//(a)The optimium receiver bandwidth\n", +"//(b)The peak to peak signal power to rms noise ratio\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"Tr=12*10^(-9); //s - SYSTEM RISE TIME\n", +"fo=20*10^6; //Hz - NOMINAL PULSE RATE\n", +"fd=5*10^6; //Hz - PEAK TO PEAK FREQUECY DEVIATION\n", +"M=60; //APD MULTIPLICATION FACTOR\n", +"R=0.7; //APD RESPONSIVITY\n", +"B=6*10^6; //Hz - BASEBAND NOISE BANDWIDTH\n", +"Ppo=10^(-7); //Watt - PEAK OPTICAL POWER\n", +"in_sq_bar=10^(-17); //A^2 - RECEIVER MEAN SQUARE NOISE CURRENT\n", +"\n", +"//(a)The optimium receiver bandwidth\n", +"Bopt=1/Tr;\n", +"To=1/fo;\n", +"\n", +"//(b)The peak to peak signal power to rms noise ratio\n", +"SNR=3*(To*fd*M*R*Ppo)^2/((2*%pi*Tr*B)^2*in_sq_bar);\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t (a)The optimium receiver bandwidth is %0.1f MHz.',Bopt/10^6);\n", +"printf('\n\n\t (b)The peak to peak signal power to rms noise ratio is %0.1f dB.',10*log10(SNR));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 12.18: EX12_18.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 12.18\n", +"//Program to form comparision showing total channel loss against \n", +"//number of nodes for:\n", +"//(i)Bus Distribution System\n", +"//(ii)Star Distribution System\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"alpha_cr=1; //dB - CONNECTOR LOSS\n", +"alpha_fc=5; //dB/km - FIBER CABLE LOSS\n", +"L_bu=0.1 //m - FIBER LENGTH\n", +"L_tr=10; //dB - ACCESS COUPLER TAP RATIO\n", +"L_sp=3; //dB - SPLITTER LOSS\n", +"L_ac=1; //dB - ACCESS COUPLER INSERTION LOSS\n", +"L_st=0.1; //m - TOTAL FIBER LENGTH IN STAR ARMS \n", +"L_ex=0; //dB - STAR COUPLER EXCESS LOSS\n", +"\n", +"//Bus Distribution System\n", +"N=0:0.01:11;\n", +"Cl_bus=2*alpha_cr+(N-1)*alpha_fc*L_bu+(2*alpha_cr+L_ac)*(N-3)+(2*alpha_cr+L_tr)+L_sp+alpha_cr;\n", +"Hm=abs(Cl_bus);\n", +"figure;\n", +"plot2d(N,Hm,2);\n", +"\n", +"//Star Distribution System\n", +"N=1:0.01:30;\n", +"Cl_star=4*alpha_cr+alpha_fc*L_st+10*log10(N)+L_ex;\n", +"Hm=abs(Cl_star);\n", +"plot2d(N,Hm,5);\n", +"xlabel('Number of Nodes N');\n", +"ylabel('Total Channel Loss Cl(dB)');\n", +"title('CHARACTERISTICS FOR TWO DISTRIBUTION SYSTEMS (BUS AND STAR)');\n", +"xgrid (1);\n", +"h=legend(['LINEAR BUS';'STAR']);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 12.19: Estimation_of_the_maximum_system_length_for_satisfactory_performance.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 12.19\n", +"//Program to estimate the maximum system length for satisfactory \n", +"//performance\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"SNR_dB=17; //dB - REQUIRED SNR\n", +"L=100*10^3; //metre - INTERVAL SPACING\n", +"K=4; //FOR AMPLIFIER\n", +"h= 6.626*10^(-34); //J/K - PLANK's CONSTANT\n", +"c=2.998*10^8; //m/s - VELOCITY OF LIGHT IN VACCUM\n", +"B=1.2*10^(9); //bit/s - TRANSMISSION RATE\n", +"Pi_dBm=0; //dBm - INPUT POWER\n", +"Lambda=1.55*10^(-6); //metre - OPERATING WAVELENGTH\n", +"alpha_fc=0.22; //dB/km - FIBER CABLE ATTENUATION\n", +"alpha_j=0.03; //dB/km - SPLICE LOSS\n", +"\n", +"//Calculation of SNR and Pi\n", +"SNR=10^(SNR_dB/10);\n", +"Pi=10^(Pi_dBm/10)*10^(-3);\n", +"\n", +"//Maximum system length\n", +"Lto=(Pi*Lambda*10^(-(alpha_fc+alpha_j)*L/10/10^3)/(K*h*c*B))/SNR*L;\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t Maximum system length for satisfactory performance is %1.0f X 10^4 km.',Lto/10^7);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 12.1: Determination_of_bit_rate_and_duration_of_a_Time_slot_Frame_and_Multiframe.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 12.1\n", +"//Program to determine:\n", +"//(a)Bit rate for the system\n", +"//(b)The duration of a time slot\n", +"//(c)The duration of a frame and multiframe\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"f=8*10^3; //Hz - SAMPLING RATE\n", +"b=8; //bits - SAMPLE SIZE\n", +"T=32; //NUMBER OF TIME SLOTS\n", +"\n", +"//(a)Bit rate for the system\n", +"Number_of_bits=T*b;\n", +"Bit_rate=f*Number_of_bits\n", +"//(b)The duration of a time slot\n", +"Bit_duration=1/Bit_rate;\n", +"Slot_duration=b*Bit_duration;\n", +"//(c)The duration of a frame and multiframe\n", +"Duration_of_frame=T*Slot_duration;\n", +"Duration_of_multiframe=T/2*Duration_of_frame;\n", +"\n", +"//Displaying The Results in Command Window\n", +"printf('\n\n\t (a)Bit rate for the system is %0.3f Mbit/s.',Bit_rate/10^6);\n", +"printf('\n\n\t (b)The duration of a time slot is %0.1f us.',Slot_duration/10^(-6));\n", +"printf('\n\n\t (c)The duration of a frame is %1.0f us and multiframe is %1.0f ms.',Duration_of_frame/10^(-6),Duration_of_multiframe/10^(-3));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 12.20: Obtain_an_expression_for_the_total_noise_figure_for_the_system.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 12.20\n", +"//Note: MAXIMA SCILAB TOOLBOX REQUIRED FOR THIS PROGRAM\n", +"//Program to obtain an expression for the total noise figure for the\n", +"//system\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Symbolic representation\n", +"syms F G k M;\n", +"\n", +"//Given data\n", +"//F_to = F1*G1 + F2*G2 + F3*G3 +......+ FM*GM\n", +"//For Identical Repeaters : \n", +"//F1*G1 = F2*G2 = F3*G3 =......= FM*GM = F*G(say)\n", +"x=F*G;\n", +"F_to = symsum(x,k,1,M);\n", +"\n", +"//Displaying The Results in Command Window\n", +"disp (F_to,'TOTAL NOISE FIGURE: F_to = ');\n", +"disp ('At the output from the first amplifier repeater, a degradation in SNR of F*G occurs followed by a decrease of 1/M');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 12.21: EX12_21.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 12.21\n", +"//Program to :\n", +"//(a)Calculate second order dispersion coefficient for L1\n", +"//(b)Determine the dispersion slope for L2\n", +"//(c)Verify that periodic dispersion management map will provide\n", +"//sufficient coincidence to facilitate reliable DWDM transmission\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"L1=160; //km - PATH LENGTH\n", +"L2=20; //km - PATH LENGTH\n", +"\n", +"//(a)To calculate second order dispersion coefficient for L1\n", +"Beeta22=17; //ps/nm/km - 2nd ORDER DISPERSION COEFF. FOR L2\n", +"Beeta21=-Beeta22*L2/L1;\n", +"printf('\n\n\t(a)The second order dispersion coefficient for L1 is %0.3f ps/nm/km',Beeta21);\n", +"\n", +"//(b)To determine the dispersion slope for L2\n", +"S1=0.075; //ps/nm^2/km - DISPERSION SLOPE FOR L1\n", +"S2=-S1*L1/L2;\n", +"printf('\n\n\t(b)The dispersion slope for L2 is %0.1f ps/nm^2/km',S2);\n", +"\n", +"//(c)To verify that periodic dispersion management map will provide\n", +"//sufficient coincidence to facilitate reliable DWDM transmission\n", +"OP=S1*(L1/L2)+S1*(Beeta22/Beeta21);\n", +"if OP==0 then\n", +"printf('\n\n\t(c)Periodic dispersion management map will provide sufficient coincidence to facilitate reliable DWDM transmission as S1(L1/L2)+S1(Beeta22/Beeta21)=0');\n", +"else\n", +"printf('\n\n\t(c)Periodic dispersion management map will not provide sufficient coincidence to facilitate reliable DWDM transmission as S1(L1/L2)+S1(Beeta22/Beeta21)!=0');\n", +"end" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 12.22: EX12_22.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 12.22\n", +"//Program to determine\n", +"//(a)The separation for the soliton pulses to avoid interaction\n", +"//(b)The transmission bit rate of the optical soliton communication\n", +"//system\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"To=70*10^(-12); //s - BIT PERIOD\n", +"tau=6*10^(-12); //s - PULSE WIDTH\n", +"Beeta2=-0.5*10^(-12)*10^(-12)*10^(-3);//s^2/km - 2nd ORDER DISPERSION\n", +" // COEFFICIENT \n", +"La=50*10^3; //AMPLIFIER SPACING\n", +"\n", +"//(a)The separation for the soliton pulses to avoid interaction\n", +"qo=1/2*(To/tau);\n", +"//(b)The transmission bit rate of the optical soliton comm. system\n", +"Bt=1/(2*qo)*1/sqrt(abs(Beeta2)*La);\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t(a)The separation for the soliton pulses to avoid interaction is %0.1f .',qo);\n", +"printf('\n\n\t(b)The maximum bit rate of the optical soliton communication system is much less than %0.2f Gbit/s .',Bt/10^9);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 12.23: Determination_of_the_maximum_transmission_bit_rate_for_the_system.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 12.23\n", +"//Program to determine the maximum transmission bit rate for the \n", +"//system\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"To=40*10^(-12); //s - BIT PERIOD\n", +"tau=4*10^(-12); //s - PULSE WIDTH\n", +"Beeta2=-1.25*10^(-12)*10^(-12)*10^(-3); //s^2/km - 2nd ORDER \n", +" //DISPERSION COEFFICIENT \n", +"alpha=0.2*10^(-3); //dB/m - ATTENUATION CONSTANT\n", +"\n", +"//The separation for the soliton pulses to avoid interaction\n", +"qo=1/2*(To/tau);\n", +"\n", +"//Maximum transmission bit rate for the system\n", +"Bt=1/(2*qo)*sqrt(alpha/abs(Beeta2));\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t The maximum bit rate of the ultrashort pulse optical soliton system is significantly greater than %1.0f Gbit/s .',Bt/10^9);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 12.2: Determination_of_required_electrical_and_optical_SNR.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 12.2\n", +"//Program to determine the required electrical and optical SNR\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"BER=10^(-9); //BIT ERROR RATE\n", +"\n", +"//Optical SNR\n", +"SNR_op=(erfinv(1-2*BER))*2*sqrt(2); //erfc(x)=1-erf(x)\n", +"\n", +"//Electrical SNR\n", +"SNR_el=((erfinv(1-2*BER))*2*sqrt(2))^2; //erfc(x)=1-erf(x)\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t Optical SNR is %1.0f or %0.1f dB.',SNR_op,10*log10(SNR_op));\n", +"printf('\n\n\t Electrical SNR is %1.0f or %0.1f dB.',SNR_el,10*log10(SNR_el));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 12.3: EX12_3.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 12.3\n", +"//Program to estimate the average number of photons which must be \n", +"//incident on the APD to register a binary one with a BER of 10^(-9) \n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"k=0.02; //CARRIER IONIZATION RATE\n", +"M=100; //MULTIPLICATION FACTOR\n", +"SNR=144; //SIGNAL TO NOISE RATIO\n", +"Bt=0.6; //FOR RAISED COSINE PULSE SPECTRUM\n", +"n=0.8; //(*100) percent - QUANTUM EFFICIENCY\n", +"\n", +"//Excess avalanche noise factor F(M)\n", +"F=k*M+(2-1/M)*(1-k);\n", +"\n", +"//Average number of photons\n", +"z=2*Bt*ceil(F)/n*SNR;\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t The average number of photons which must be incident on the APD is %1.0f photons.',z);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 12.4: EX12_4.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 12.4\n", +"//Program to estimate incident optical power to register binary 1\n", +"//at bit rates of 10 Mbit/s and 140 Mbit/s\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"BER=10^(-9); //BIT ERROR RATE\n", +"e=1.602*10^(-19); //Coulumbs - CHARGE OF AN ELECTRON\n", +"Lambda=1*10^(-6); //metre - WAVELENGTH \n", +"h= 6.626*10^(-34); //J/K - PLANK's CONSTANT\n", +"c=2.998*10^8; //m/s - VELOCITY OF LIGHT IN VACCUM\n", +"zm=864; //photons - FROM EXAMPLE 12.3\n", +"\n", +"//For 10 Mbit/s\n", +"Bt=10*10^6; //bps - BIT RATES\n", +"Po=zm*h*c*Bt/(2*Lambda);\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t Incident optical power for %1.0f Mbit/s is %0.1f pW or %0.1f dBm.',Bt/10^6,Po/10^(-12),10*log10(Po/10^(-3)));\n", +"\n", +"//For 140 Mbit/s\n", +"Bt=140*10^6; //bps - BIT RATES\n", +"Po=zm*h*c*Bt/(2*Lambda);\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t Incident optical power for %1.0f Mbit/s is %0.3f nW or %0.1f dBm.',Bt/10^6,Po/10^(-9),10*log10(Po/10^(-3)));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 12.5: Determination_of_the_total_channel_loss_ignoring_dispersion.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 12.5\n", +"//Program to determine the total channel loss ignoring dispersion\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"alpha_fc=5; //dB/km - FIBER CABLE ATTENUATION\n", +"alpha_j=2; //dB/km - SPLICE LOSS\n", +"alpha_s=3.5; //dB - SOURCE CONNECTOR LOSS\n", +"alpha_d=2.5; //dB - DETECTOR CONNECTOR LOSS \n", +"L=4; //km - LENGTH OF OPTICAL FIBER LINK\n", +"\n", +"//Total channel loss\n", +"alpha_cr=alpha_s+alpha_d\n", +"C_L=(alpha_fc+alpha_j)*L+alpha_cr;\n", +"\n", +"//Displaying The Result in Command Window\n", +"printf('\n\n\tTotal channel loss, C_L = %1.0f dB',C_L)" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 12.6: Estimation_of_the_dispersion_equalization_penalty_for_bit_given_rates.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 12.6\n", +"//Program to estimate the dispersion-equalization penalty for bit \n", +"//rates:\n", +"//(a)25 Mbit/s\n", +"//(b)150 Mbit/s\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"L=8; //km - LENGTH OF FIBER LINK\n", +"sigma=0.6*10^(-9); //s/km - RMS PULSE BROADENING\n", +"\n", +"\n", +"//(a)For 25 Mbit/s\n", +"Bt=25*10^6; //bit/sec - BIT RATE\n", +"//Without mode coupling\n", +"sigma_T=sigma*L;\n", +"D_L=2*(2*sigma_T*Bt*sqrt(2))^4;\n", +"printf('\n\n\t (a)For Bt = %1.0f Mbit/s, Without mode coupling, D_L = %0.2f dB',Bt/10^6,D_L);\n", +"//With mode coupling\n", +"sigma_T=sigma*sqrt(L);\n", +"D_L=2*(2*sigma_T*Bt*sqrt(2))^4;\n", +"printf('\n\n\t For Bt = %1.0f Mbit/s, With mode coupling, D_L = %0.2f X 10^(-4) dB',Bt/10^6,D_L/10^(-4));\n", +"\n", +"//(b)150 Mbit/s\n", +"Bt=150*10^6; //bit/sec - BIT RATE\n", +"//Without mode coupling\n", +"sigma_T=sigma*L;\n", +"D_L=2*(2*sigma_T*Bt*sqrt(2))^4;\n", +"printf('\n\n\t (b)For Bt = %1.0f Mbit/s, Without mode coupling, D_L = %0.2f dB',Bt/10^6,D_L);\n", +"//With mode coupling\n", +"sigma_T=sigma*sqrt(L);\n", +"D_L=2*(2*sigma_T*Bt*sqrt(2))^4;\n", +"printf('\n\n\t For Bt = %1.0f Mbit/s, With mode coupling, D_L = %0.2f dB',Bt/10^6,D_L);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 12.7: EX12_7.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 12.7\n", +"//Program to estimate the maximum bit rate that may be achieved on \n", +"//the link when using NRZ format\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"L=8; //km - LENGTH OF FIBER LINK\n", +"Ts=8*10^(-9); //s - SOURCE RISE TIME\n", +"Dn=5*10^(-9); //s/km - INTERMODAL RISE TIME\n", +"Dc=1*10^(-9); //s/km - INTRAMODAL RISE TIME\n", +"Td=6*10^(-9); //s - DETECTOR RISE TIME\n", +"Tn=Dn*L;\n", +"Tc=Dc*L;\n", +"\n", +"//Total Rise Time\n", +"Tsyst=1.1*sqrt(Ts^2+Tn^2+Tc^2+Td^2);\n", +"\n", +"//Maximum bit rate\n", +"Bt= 0.7/Tsyst;\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t Maximum bit rate, Bt(max) is %0.1f Mbit/s which for NRZ is equivalent to a 3 dB optical bandwidth of %0.1f Mbit/s.',Bt/10^6,Bt/10^6/2);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 12.8: EX12_8.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 12.8\n", +"//Program to estimate:\n", +"//(a)Maximum possible link length without repeaters when operating at 35 Mbit/s \n", +"//(b)Maximum possible link length without repeaters when operating at 400 Mbit/s\n", +"//(c)Reduction in maximum possible link length considering dispersion-equalization penalty\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"Pi=-3; //dBm - POWER LAUNCHED\n", +"alpha_fc=0.4; //dB/km - CABLE FIBER LOSS \n", +"alpha_j=0.1; //dB/km - SPLICE LOSS\n", +"alpha_cr=2; //dB - TOTAL CONNECTOR LOSS\n", +"Ma=7; //dB - REQUIRED SAFETY MARGIN\n", +"Dl=1.5; //dB - DISPERSION- EQUALIZATION PENALTY\n", +"\n", +"//(a)Maximum possible link length without repeaters when operating at 35 Mbit/s \n", +"Po=-55; //dBm - REQUIRED POWER BY APD\n", +"//Optical budget: Pi-Po=(alpha_fc+alpha_j)L+alpha_cr+Ma\n", +"L1=(Pi-Po-alpha_cr-Ma)/(alpha_fc+alpha_j);\n", +"printf('\n\n\t (a)Maximum possible link length without repeaters when operating at 35 Mbit/s is %1.0f km.',L1);\n", +"\n", +"//(b)Maximum possible link length without repeaters when operating at 400 Mbit/s\n", +"Po=-44; //dBm - REQUIRED POWER BY APD\n", +"//Optical budget: Pi-Po=(alpha_fc+alpha_j)L+alpha_cr+Ma\n", +"L2=(Pi-Po-alpha_cr-Ma)/(alpha_fc+alpha_j);\n", +"printf('\n\n\t (b)Maximum possible link length without repeaters when operating at 400 Mbit/s is %1.0f km.',L2);\n", +"\n", +"//(c)Reduction in maximum possible link length considering dispersion-equalization penalty\n", +"//Optical budget considering dispersion-equalization penalty:\n", +"//Pi-Po=(alpha_fc+alpha_j)L+alpha_cr+Ma\n", +"L3=(Pi-Po-alpha_cr-Dl-Ma)/(alpha_fc+alpha_j);\n", +"printf('\n\n\t (c)Reduction in maximum possible link length considering dispersion-equalization penalty is %1.0f km.',L2-L3);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 12.9: Determination_of_the_viability_of_optical_power_budget.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 12.9\n", +"//Program to determine the viability of optical power budget\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"L=7; //km - OPTICAL FIBER LINK LENGTH\n", +"alpha_fc=2.6; //dB/km - CABLE FIBER LOSS \n", +"alpha_j=0.5; //dB/km - SPLICE LOSS\n", +"alpha_cr=1.5; //dB - TOTAL CONNECTOR LOSS\n", +"Ma=6; //dB - REQUIRED SAFETY MARGIN\n", +"Pr_dBm=-41; //dBm - RECEIVER SENSITIVITY\n", +"Pi=100*10^(-6); //Watt - POWER LAUNCHED\n", +"Pi_dBm=10*log10(Pi/10^(-3));\n", +"\n", +"//Total System Margin\n", +"Total_system_margin=Pi_dBm-Pr_dBm;\n", +"printf('\n\n\t Total System Margin is %0.1f dB.',Total_system_margin);\n", +"\n", +"//Total System Loss\n", +"Total_system_loss=L*alpha_fc+(L-1)*alpha_j+alpha_cr+Ma;\n", +"printf('\n\n\t Total System Loss is %0.1f dB.',Total_system_loss);\n", +"\n", +"//Excess Power margin\n", +"Excess_power_margin=Total_system_margin-Total_system_loss;\n", +"printf('\n\n\t Excess Power margin is %0.1f dB.',Excess_power_margin);\n", +"\n", +"//Testing Viability\n", +"if Excess_power_margin >=0 then\n", +"printf('\n\n\t The system is viable.');\n", +"else\n", +"printf('\n\n\t The system is not viable.');\n", +"end" + ] + } +], +"metadata": { + "kernelspec": { + "display_name": "Scilab", + "language": "scilab", + "name": "scilab" + }, + "language_info": { + "file_extension": ".sce", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "scilab", + "version": "0.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/13-OPTICAL_FIBER_SYSTEMS_2_COHERENT_AND_PHASE_MODULATED.ipynb b/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/13-OPTICAL_FIBER_SYSTEMS_2_COHERENT_AND_PHASE_MODULATED.ipynb new file mode 100644 index 0000000..5ae5850 --- /dev/null +++ b/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/13-OPTICAL_FIBER_SYSTEMS_2_COHERENT_AND_PHASE_MODULATED.ipynb @@ -0,0 +1,306 @@ +{ +"cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 13: OPTICAL FIBER SYSTEMS 2 COHERENT AND PHASE MODULATED" + ] + }, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.1: EX13_1.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 13.1\n", +"//Program to estimate the maximum temperature change that could\n", +"//be allowed for the local oscillator laser\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"IF=1.5*10^6; //Hz - NOMINAL IF\n", +"del_f=19*10^6; //Hz/C - OUTPUT FREQUENCY CHANGE\n", +"\n", +"//Maximum temperature change that could be allowed\n", +"f=0.1*IF;\n", +"Max_temp_change=f/del_f;\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t Maximum temperature change that could be allowed for the local oscillator laser is %0.3f C .',Max_temp_change);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.2: Determination_of_the_operating_bandwidth_of_the_receiver.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 13.2\n", +"//Program to determine the operating bandwidth of the receiver\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"SNL=-85.45; //dBm - SHOT NOISE LIMIT\n", +"eeta=0.86; //*100 percent - EFFICIENCY FOR IDEAL RECEIVER\n", +"Lambda=1.54*10^(-6); //metre - OPERATING WAVELENGTH\n", +"SNR=12; //dB - SIGNAL TO NOISE RATIO\n", +"h= 6.626*10^(-34); //J/K - PLANK's CONSTANT\n", +"c=2.998*10^8; //m/s - VELOCITY OF LIGHT IN VACCUM\n", +"\n", +"//Incoming Signal Power\n", +"Ps=10^(SNL/10);\n", +"\n", +"//Operating bandwidth of the receiver\n", +"B=eeta*Ps*Lambda/(h*c*10^(SNR/10));\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t Operating bandwidth of the receiver, B = %0.1f GHz.',B/10^9);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.3: EX13_3.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 13.3\n", +"//Program to calculate the number of received photons per bit for:\n", +"//(a)ASK heterodyne synchronous detection\n", +"//(b)ASK heterodyne asynchronous detection\n", +"//(c)PSK homodyne detection\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"eeta=1; //*100 percent - EFFICIENCY FOR IDEAL RECEIVER\n", +"BER=10^(-9); //BIT ERROR RATE\n", +"\n", +"//Number of received photons per bit for:\n", +"printf('\n\n\t Number of received photons per bit for:');\n", +"//(a)ASK heterodyne synchronous detection\n", +"Np=(erfinv(1-2*BER))^2*4/eeta; //erfc(x)=1-erf(x)\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t (a)ASK heterodyne synchronous detection = %1.0f.',Np/2);\n", +"\n", +"//(b)ASK heterodyne asynchronous detection\n", +"Np=-log(2*BER)*4/eeta;\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t (b)ASK heterodyne asynchronous detection = %1.0f.',Np/2);\n", +"\n", +"//(c)PSK homodyne detection\n", +"Np=(erfinv(1-2*BER))^2/2; //erfc(x)=1-erf(x)\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t (c)PSK homodyne detection = %1.0f.',Np);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.4: Calculation_of_the_minimum_incoming_power_level.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 13.4\n", +"//Program to calculate the minimum incoming power level\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"K=1; //CONSTANT FOR HETERODYNE DETECTION \n", +"Z=1; //CONSTANT FOR FSK MODULAION SCHEME\n", +"eeta=1; //*100 percent - QUANTUM EFFICIENCY\n", +"Bt=400*10^6; //bps - TRANSMISSION RATE\n", +"BER=10^(-9); //BIT ERROR RATE\n", +"h= 6.626*10^(-34); //J/K - PLANK's CONSTANT\n", +"c=2.998*10^8; //m/s - VELOCITY OF LIGHT IN VACCUM\n", +"Lambda=1.55*10^(-6); //metre - OPERATING WAVELENGTH\n", +"\n", +"//Minimum incoming peak power level\n", +"Ps=(erfinv(1-2*BER))^2*2*h*c*Bt/Lambda; //erfc(x)=1-erf(x)\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t Minimum incoming peak power level is %0.1f nW or %0.1f dBm.',Ps/10^(-9),10*log10(Ps/(1*10^(-3))));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.5: EX13_5.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 13.5\n", +"//Program to calculate the absolute maximum repeater spacing for the \n", +"//following ideal receiver types:\n", +"//(a)ASK heterodyne synchronous detection\n", +"//(b)PSK homodyne detection\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"Np=36; //Average photons per bit - FROM EXAMPLE 13.3\n", +"h= 6.626*10^(-34); //J/K - PLANK's CONSTANT\n", +"c=2.998*10^8; //m/s - VELOCITY OF LIGHT IN VACCUM\n", +"Lambda=1.55*10^(-6); //metre - OPERATING WAVELENGTH\n", +"\n", +"//(a)ASK heterodyne synchronous detection\n", +"Np=36; //Average photons per bit - FROM EXAMPLE 13.3\n", +"//For 50 Mbit/s Transmission Rate\n", +"Bt=50*10^6; //bit/sec - GIVEN TRANSMISSION RATE\n", +"Ps=Np*h*c*Bt/Lambda;\n", +"Max_system_margin=4-10*log10(Ps/(1*10^(-3)));\n", +"Max_repeater_spacing=Max_system_margin/0.2;\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t (a)ASK : Maximum repeater spacing for %1.0f Mbit/s transmission rate is %1.0f km.',Bt/10^6,Max_repeater_spacing);\n", +"\n", +"//For 1 Gbit/s Transmission Rate\n", +"Bt=1*10^9; //bit/sec - GIVEN TRANSMISSION RATE\n", +"Ps=Np*h*c*Bt/Lambda;\n", +"Max_system_margin=4-10*log10(Ps/(1*10^(-3)));\n", +"Max_repeater_spacing=Max_system_margin/0.2;\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t Maximum repeater spacing for %1.0f Gbit/s transmission rate is %1.0f km.',Bt/10^9,Max_repeater_spacing);\n", +"\n", +"//(b)PSK homodyne detection\n", +"Np=9; //Average photons per bit - FROM EXAMPLE 13.3\n", +"//For 50 Mbit/s Transmission Rate\n", +"Bt=50*10^6; //bit/sec - GIVEN TRANSMISSION RATE\n", +"Ps=Np*h*c*Bt/Lambda;\n", +"Max_system_margin=4-10*log10(Ps/(1*10^(-3)));\n", +"Max_repeater_spacing=Max_system_margin/0.2;\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t (b)PSK : Maximum repeater spacing for %1.0f Mbit/s transmission rate is %1.0f km.',Bt/10^6,Max_repeater_spacing);\n", +"\n", +"//For 1 Gbit/s Transmission Rate\n", +"Bt=1*10^9; //bit/sec - GIVEN TRANSMISSION RATE\n", +"Ps=Np*h*c*Bt/Lambda;\n", +"Max_system_margin=4-10*log10(Ps/(1*10^(-3)));\n", +"Max_repeater_spacing=Max_system_margin/0.2;\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t Maximum repeater spacing for %1.0f Gbit/s transmission rate is %1.0f km.',Bt/10^9,Max_repeater_spacing);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.6: EX13_6.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 13.6\n", +"//Program to estimate the minimum transmitter power requirement for \n", +"//an optical coherent WDM\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"Np=150; //photons per bit - RECEPTION \n", +"h= 6.626*10^(-34); //J/K - PLANK's CONSTANT\n", +"c=2.998*10^8; //m/s - VELOCITY OF LIGHT IN VACCUM\n", +"B_fib=20*10^12; //Hz - OPTICAL BANDWIDTH\n", +"Lambda=1.3*10^(-6); //metre - SHORTEST WAVELENGTH\n", +"\n", +"//Minimum transmitter power requirement for an optical coherent WDM\n", +"Ptx=Np*h*c*B_fib/Lambda;\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t Minimum transmitter power requirement for an optical coherent WDM is %0.1f mW or %1.0f dBm .',Ptx/10^(-3), 10*log10(Ptx/(1*10^(-3))));" + ] + } +], +"metadata": { + "kernelspec": { + "display_name": "Scilab", + "language": "scilab", + "name": "scilab" + }, + "language_info": { + "file_extension": ".sce", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "scilab", + "version": "0.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/14-OPTICAL_FIBER_MEASUREMENTS.ipynb b/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/14-OPTICAL_FIBER_MEASUREMENTS.ipynb new file mode 100644 index 0000000..23ca6c1 --- /dev/null +++ b/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/14-OPTICAL_FIBER_MEASUREMENTS.ipynb @@ -0,0 +1,342 @@ +{ +"cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 14: OPTICAL FIBER MEASUREMENTS" + ] + }, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 14.1: EX14_1.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 14.1\n", +"//Program to determine the attenuation per kilometer for the fiber \n", +"//and estimate the accuracy of the result\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"L1=2*10^3; //metres - INITIAL LENGTH\n", +"L2=2; //metres - FINAL LENGTH\n", +"V1=2.1; //volts - INITIAL OUTPUT VOLTAGE\n", +"V2=10.7; //volts - FINAL OUTPUT VOLTAGE\n", +"\n", +"//Attenuation per Kilometer\n", +"alpha_dB=10/(L1-L2)*log10(V2/V1);\n", +"\n", +"//Uncertainity in measured attenuation\n", +"Uncertainity=0.2/(L1-L2);\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t Attenuation is %0.1f dB/km.',alpha_dB*10^3);\n", +"printf('\n\n\t Uncertainity in measured attenuation is +-%0.1f dB.',Uncertainity*10^3);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 14.2: Determination_of_the_absorption_loss_for_the_fiber_under_test.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 14.2\n", +"//Program to determine the absorption loss for the fiber under test\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"t1=10; //s - INITIAL TIME\n", +"t2=100; //s - FINAL TIME\n", +"Tinf_minus_Tt1=0.525;//From Figure 14.6\n", +"Tinf_minus_Tt2=0.021;//From Figure 14.6\n", +"C=1.64*10^4; //J/degree C - THERMAL CAPACITY PER KILOMETER\n", +"Tinf=4.3*10^(-4); //degree C - MAXIMUM THERMAL TEMPERATURE RISE \n", +"Popt=98*10^(-3); //Watt - OPTICAL POWER \n", +"\n", +"//Time constant for the calorimeter\n", +"tc=(t2-t1)/(log(Tinf_minus_Tt1)-log(Tinf_minus_Tt2));\n", +"\n", +"//Absorption loss of the test fiber\n", +"alpha_abs=C*Tinf/(Popt*tc);\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t Time constant for the calorimeter is %0.1f s.',tc);\n", +"printf('\n\n\t Absorption loss of the test fiber is %0.1f dB/km.',alpha_abs);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 14.3: Determination_of_the_loss_due_to_scattering_for_the_fiber.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 14.3\n", +"//Program to determine the loss due to scattering for the fiber\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"Vsc=6.14*10^(-9); //V - OPTICAL OUTPUT POWER\n", +"Vopt=153.38*10^(-6); //V - OPTICAL POWER WITHOUT SCATTERING\n", +"l=2.92; //cm - LENGTH OF THE FIBER\n", +"\n", +"//Loss due to scattering for the fiber\n", +"alpha_sc=4.343*10^5/l*Vsc/Vopt;\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t Loss due to scattering for the fiber is %0.1f dB/km.',alpha_sc);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 14.4: Calculation_of_3_dB_Pulse_Broadening_and_Fiber_Bandwidth_Length_product.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 14.4\n", +"//Program to calculate:\n", +"//(a)3 dB Pulse Broadening in ns/km\n", +"//(b)Fiber Bandwidth-Length product\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"tau_o=12.6; //ns - 3 dB width of Output Pulse\n", +"tau_i=0.3; //ns - 3 dB width of Input Pulse\n", +"L=1.2; //km - LENGTH\n", +"\n", +"//(a)3 dB Pulse Broadening in ns/km\n", +"tau=sqrt(tau_o^2-tau_i^2)/L;\n", +"\n", +"//(b)Fiber Bandwidth-Length product\n", +"Bopt=0.44/tau;\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t (a)3 dB Pulse Broadening is %0.1f ns/km.',tau);\n", +"printf('\n\n\t (b)Fiber Bandwidth-Length product is %0.1f MHz km.',Bopt*10^3);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 14.5: Calculation_of_the_Numerical_Aperture_of_the_fiber.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 14.5\n", +"//Program to calculate the Numerical Aperture(NA) of the fiber\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"D=10; //cm - SCREEN POSITION\n", +"A=6.2; //cm - OUTPUT PATTERN SIZE\n", +"\n", +"// Numerical Aperture(NA) of the fiber\n", +"NA=A/sqrt(A^2+4*D^2);\n", +"\n", +"//Displaying The Results in Command Window\n", +"printf('\n\n\t The Numerical Aperture(NA) of the fiber is %0.2f .',NA);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 14.6: Determination_of_the_outer_diameter_of_the_optical_fiber_in_micrometer.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 14.6\n", +"//Program to determine outer diameter of the optical fiber in micrometer\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"l=0.1; //m - MIRROR POSITION\n", +"d_PHI_by_dt=4; //rad/s - ANGULAR VELOCITY\n", +"We=300*10^(-6); //us - WIDTH OF SHADOW PULSE\n", +"\n", +"//Outer diameter of the optical fiber\n", +"d0=We*l*d_PHI_by_dt;\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t The Outer diameter of the optical fiber is %1.0f um.',d0*10^6);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 14.7: Conversion_of_optical_signal_powers_to_dBm_and_dBu.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 14.7\n", +"//Program to:\n", +"//(a) Convert optical signal powers to dBm\n", +"//(b) Convert optical signal powers to dBu\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//(a)Convert optical signal powers to dBm\n", +"Po=5*10^(-3); //Watt - GIVEN OPTICAL POWER\n", +"dBm=10*log10(Po/1*10^3);\n", +"printf('\n\n\t (a)The %1.0f mW of optical power is equivalent to %0.2f dBm.',Po/10^(-3), dBm);\n", +"\n", +"Po=20*10^(-6); //Watt - GIVEN OPTICAL POWER\n", +"dBm=10*log10(Po/1*10^3);\n", +"printf('\n\n\t The %1.0f uW of optical power is equivalent to %0.2f dBm.',Po/10^(-6), dBm);\n", +"\n", +"//(b)Convert optical signal powers to dBu\n", +"Po=0.03*10^(-3); //Watt - GIVEN OPTICAL POWER\n", +"dBm=10*log10(Po/1*10^6);\n", +"printf('\n\n\t (b)The %0.2f mW of optical power is equivalent to %0.2f dBu.',Po/10^(-3), dBm);\n", +"\n", +"Po=800*10^(-9); //Watt - GIVEN OPTICAL POWER\n", +"dBm=10*log10(Po/1*10^6);\n", +"printf('\n\n\t The %1.0f nW of optical power is equivalent to %0.2f dBu.',Po/10^(-9), dBm);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 14.8: EX14_8.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 14.8\n", +"//Program to calculate the ratio in dB of back scattered optical \n", +"//power to the forward optical power at the fiber input\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"NA=0.2; //NUMERICAL APERTURE\n", +"gamma_r=0.7*10^-3; //per m - RAYLEIGH SCATTERING COEFFICIENT\n", +"Wo=50*10^(-9); //s - PULSE DURATION\n", +"c=2.998*10^8; //m/s - VELOCITY OF LIGHT IN VACCUM\n", +"n1=1.5; //CORE REFRACTIVE INDEX\n", +"\n", +"//Calculated Ratio Pra(0)/Pi\n", +"Pra0_by_Pi=0.5*NA^2*gamma_r*Wo*c/(4*n1^3);\n", +"\n", +"//Displaying the Result in command window\n", +"printf('\n\n\t Pra(0)/Pi = %0.1f dB.',10*log10(Pra0_by_Pi));" + ] + } +], +"metadata": { + "kernelspec": { + "display_name": "Scilab", + "language": "scilab", + "name": "scilab" + }, + "language_info": { + "file_extension": ".sce", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "scilab", + "version": "0.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/15-OPTICAL_NETWORKS.ipynb b/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/15-OPTICAL_NETWORKS.ipynb new file mode 100644 index 0000000..101e505 --- /dev/null +++ b/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/15-OPTICAL_NETWORKS.ipynb @@ -0,0 +1,32 @@ +{ +"cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 15: OPTICAL NETWORKS" + ] + }, +], +"metadata": { + "kernelspec": { + "display_name": "Scilab", + "language": "scilab", + "name": "scilab" + }, + "language_info": { + "file_extension": ".sce", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "scilab", + "version": "0.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/2-OPTICAL_FIBER_WAVEGUIDES.ipynb b/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/2-OPTICAL_FIBER_WAVEGUIDES.ipynb new file mode 100644 index 0000000..7ddeb61 --- /dev/null +++ b/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/2-OPTICAL_FIBER_WAVEGUIDES.ipynb @@ -0,0 +1,522 @@ +{ +"cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 2: OPTICAL FIBER WAVEGUIDES" + ] + }, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.10: Estimation_of_fiber_core_diameter_for_a_single_mode_step_index_fiber.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 2.10\n", +"//Program to estimate the fiber core diameter for a single mode \n", +"//step index fiber\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"V=2.2; //NORMALIZED FREQUENCY\n", +"MFD=11.6*10^(-6); //metre - MODE FIELD DIAMETER \n", +"W0=5.8*10^(-6);\n", +"\n", +"// The fiber core radius\n", +"a=W0/(0.65+1.619*V^(-1.5)+2.879*V^(-6));\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t The fiber core diameter for a single mode step index fiber is %0.1f um.',2*a*10^6);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.11: Determination_of_spot_size_at_the_operating_wavelength_using_ESI_technique.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 2.11\n", +"//Program to determine spot size at the operating wavelength using ESI\n", +"//technique\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"lambda=1.30*10^(-6); //metre - OPERATING WAVELENGTH\n", +"lambda_c=1.08*10^(-6); //metre - CUTOFF WAVELENGTH\n", +"THEETA_min=12; //degree\n", +"\n", +"// The effective core radius\n", +"a_eff=3.832*lambda/(2*%pi*sin(THEETA_min*%pi/180));\n", +"\n", +"// The effective normalized frequency\n", +"V_eff=2.405*lambda_c/lambda;\n", +"\n", +"// The spot size\n", +"w0=3.81*10^(-6)*(0.6043+1.755*V_eff^(-1.5)+2.78*V_eff^(-6));\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t The effective core radius is %0.2f um.',a_eff*10^6);\n", +"printf('\n\n\t The effective normalized frequency is %0.2f.',V_eff);\n", +"printf('\n\n\t The spot size at the operating wavelength is %0.2f um.',w0*10^6);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.12: Determination_of_relative_refractive_index_difference_using_ESI_technique.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 2.12\n", +"//Program to determine relative refractive index difference using ESI\n", +"//technique\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"lambda_c=1.19*10^(-6); //metre - CUTOFF WAVELENGTH\n", +"w0=5.2*10^(-6); //metre - SPOT SIZE\n", +"n1=1.485; //MAXIMUM REFRACTIVE INDEX OF THE CORE\n", +"\n", +"// The ESI core diameter\n", +"d_ESI=1.820*w0;\n", +"\n", +"// The ESI relative index difference\n", +"delta_ESI=(0.293/n1^2)*(lambda_c/d_ESI)^2;\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t The relative refractive index difference using ESI technique is %0.2f percent.',delta_ESI*10^2);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.1: Determination_of_Critical_Angle_NA_and_Acceptance_Angle.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 2.1\n", +"//Program to determine the following:\n", +"//(a) Critical angle at the core-cladding interface\n", +"//(b) NA for the fiber\n", +"//(c) Acceptance angle in air for the fiber\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"n1=1.50; //CORE REFRACTIVE INDEX\n", +"n2=1.47; //CLADDING REFRACTIVE INDEX\n", +"\n", +"//(a) Critical angle at the core-cladding interface in degrees\n", +"PHIc=asin(n2/n1)*180/%pi;\n", +"\n", +"//(b) NA for the fiber\n", +"NA=sqrt(n1*n1-n2*n2);\n", +"\n", +"//(c) Acceptance angle in air for the fiber in degrees\n", +"THEETAa=asin(NA)*180/%pi;\n", +"\n", +"//Displaying The Results in Command Window\n", +"printf('\n\n\t Critical angle at the core-cladding interface is %0.1f degrees.',PHIc);\n", +"printf('\n\n\t NA for the fiber is %0.2f.',NA);\n", +"printf('\n\n\t Acceptance angle in air for the fiber is %0.1f degrees.',THEETAa);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.2: Determination_of_NA_Solid_Acceptance_Angle_and_the_Critical_Angle.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 2.2\n", +"//Program to calculate\n", +"//(a) NA \n", +"//(b) Solid Acceptance Angle\n", +"//(c) Critical Angle at the core-cladding interface\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"n1=1.46; //CORE REFRACTIVE INDEX\n", +"delta=0.01; //RELATIVE REFRACTIVE INDEX DIFFERENCE\n", +"\n", +"//Numerical Aperture\n", +"NA=n1*sqrt(2*delta);\n", +"\n", +"//Solid Acceptance Angle in radians\n", +"zeta=%pi*(NA)^2;\n", +"\n", +"//Critical Angle at the core-cladding interface in degrees\n", +"n2=n1*(1-delta);\n", +"PHI_c=asin(n2/n1)*180/%pi;\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t The Numerical Aperture for the fiber is %0.2f.',NA);\n", +"printf('\n\n\t The Solid Acceptance Angle for the fiber is %0.2f radians.',zeta);\n", +"printf('\n\n\t The Critical Angle at the core-cladding interface for the fiber is %0.1f degrees.',PHI_c);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.3: Comparision_of_Acceptance_Angle_for_Meridional_Rays_and_Skew_Rays.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 2.3\n", +"//Program to Compare the acceptance angle for meridional rays and \n", +"//skew rays which change direction by 100 degrees at each reflection\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"NA=0.4; //NUMERICAL APERTURE\n", +"GAMMA=100/2; //degrees - SKEW RAYS CHANGE DIRECTION BY 100 degrees\n", +"\n", +"//Acceptance angle for Meridional rays in degrees\n", +"THEETA_a=asin(NA)*180/%pi; \n", +"\n", +"//Acceptance angle for Skew rays in degrees\n", +"THEETA_as=asin(NA/cos(GAMMA*%pi/180))*180/%pi; \n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t Acceptance angle for Meridional rays is %0.1f degrees.',THEETA_a);\n", +"printf('\n\n\t Acceptance angle for Skew rays is %0.1f degrees.',THEETA_as);\n", +"printf('\n\n\t Acceptance angle for Skew rays is about %1.0f degrees greater than Meridional rays.',THEETA_as-THEETA_a);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.4: Estimation_of_Normalized_Frequency_and_Number_of_Guided_Modes.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 2.4\n", +"//Program to estimate \n", +"//(a) Normalized frequency for the fiber\n", +"//(b) The Number of guided modes\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"n1=1.48; //CORE REFRACTIVE INDEX\n", +"delta=0.015 //RELATIVE REFRACTIVE INDEX DIFFERENCE\n", +"d=80*10^(-6); //metre - CORE DIAMETER\n", +"lambda=0.85*10^(-6); //metre - OPERATING WAVELENGTH\n", +"a=d/2; //CORE RADIUS\n", +"\n", +"//(a) Normalized frequency for the fiber\n", +"V=2*%pi/lambda*a*n1*sqrt(2*delta);\n", +"\n", +"//(b) The Number of guided modes\n", +"Ms=(V^2)/2;\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t The Normalized frequency for the fiber is %0.1f.',V);\n", +"printf('\n\n\t The Number of guided modes of the fiber is %d.',ceil(Ms));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.5: Estimation_of_total_number_of_Guided_Modes_propagating_in_the_fiber.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 2.5\n", +"//Program to estimate total number of guided modes propagating in the fiber\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"NA=0.2; //NUMERICAL APERTURE\n", +"d=50*10^(-6); //metre - CORE DIAMETER\n", +"lambda=1*10^(-6); //metre - OPERATING WAVELENGTH\n", +"a=d/2; //CORE RADIUS\n", +"\n", +"//Normalized Frequency for the fiber\n", +"V=2*%pi/lambda*a*NA;\n", +"\n", +"//Mode Volume for parabolic profile\n", +"M=(V^2)/4;\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t The number of modes supported by fiber is %1.0f.',M);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.6: EX2_6.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 2.6\n", +"//Program to estimate \n", +"//(a) The maximum core diameter of an optical fiber for Example 2.4 \n", +"//(b) The new core diameter for single mode operation when the \n", +"//relative refractive index difference is reduced by a factor of 10\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"V=2.4; //Normalized Frequency\n", +"lambda=0.85*10^(-6); //metre - OPERATING WAVELENGTH\n", +"n1=1.48; //CORE REFRACTIVE INDEX \n", +"delta=0.015; //RELATIVE REFRACTIVE INDEX DIFFERENCE\n", +"\n", +"//(a) The maximum core radius of the optical fiber with delta=1.5%\n", +"a1=V*lambda/(2*%pi*n1*sqrt(2*delta));\n", +"\n", +"//(b) The new core radius for single mode operation when the \n", +"//relative refractive index difference is reduced by a factor of 10\n", +"delta=delta/10;\n", +"a2=V*lambda/(2*%pi*n1*sqrt(2*delta));\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t The maximum core diameter of the optical fiber with delta 1.5 percent is %0.1f micrometre.',2*a1*10^6);\n", +"printf('\n\n\t The new core diameter for single mode operation when the relative refractive index difference is reduced by a factor of 10 is %0.1f micrometre.',2*a2*10^6);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.7: EX2_7.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 2.7\n", +"//Program to estimate the maximum core diameter of an optical fiber \n", +"//which allows single mode operation\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"alpha=2; //Parabolic Profile\n", +"lambda=1.3*10^(-6); //metre - OPERATING WAVELENGTH\n", +"n1=1.5; //CORE REFRACTIVE INDEX \n", +"delta=0.01; //RELATIVE REFRACTIVE INDEX DIFFERENCE\n", +"\n", +"//Normalized Frequency for single mode operation\n", +"V=2.4*sqrt(1+2/alpha);\n", +"\n", +"//The maximum core radius for single mode operation\n", +"a=V*lambda/(2*%pi*n1*sqrt(2*delta));\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t The maximum core diameter of the optical fiber which allows single mode operation is %0.1f micrometre.',2*a*10^6);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.8: EX2_8.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 2.8\n", +"//Program to estimate cutoff wavelength for a step index fiber to \n", +"//exhibit single mode operation\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"a=4.5*10^(-6); //metre - CORE RADIUS\n", +"n1=1.46; //CORE REFRACTIVE INDEX \n", +"delta=0.0025; //RELATIVE REFRACTIVE INDEX DIFFERENCE\n", +"\n", +"// The cutoff wavelength for a step index fiber\n", +"lambda_c=2*%pi*a*n1*sqrt(2*delta)/2.405;\n", +"\n", +"//Displaying The Results in Command Window\n", +"printf('\n\n\t The cutoff wavelength for a step index fiber to exhibit single mode operation is %1.0f nm.',lambda_c*10^9);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.9: Deduction_of_an_approximation_for_the_normalized_propagation_constant.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 2.9\n", +"//Note: MAXIMA SCILAB TOOLBOX REQUIRED FOR THIS PROGRAM\n", +"//Program to deduce an approximation for the normalized propagation \n", +"//constant\n", +" \n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"syms W b V;\n", +"\n", +"//Given data\n", +"//Eigen Value of the single mode step index fiber cladding\n", +"W =1.1428*V-0.9960;\n", +" \n", +"//Normalized propagation constant b(V)\n", +"b= W^2/V^2;\n", +"\n", +"//Display the result in command window\n", +"disp (b,'The normalized propagation constant b(V) is given by');" + ] + } +], +"metadata": { + "kernelspec": { + "display_name": "Scilab", + "language": "scilab", + "name": "scilab" + }, + "language_info": { + "file_extension": ".sce", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "scilab", + "version": "0.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/3-TRANSMISSION_CHARACTERISTICS_OF_OPTICAL_FIBERS.ipynb b/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/3-TRANSMISSION_CHARACTERISTICS_OF_OPTICAL_FIBERS.ipynb new file mode 100644 index 0000000..a736b01 --- /dev/null +++ b/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/3-TRANSMISSION_CHARACTERISTICS_OF_OPTICAL_FIBERS.ipynb @@ -0,0 +1,672 @@ +{ +"cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 3: TRANSMISSION CHARACTERISTICS OF OPTICAL FIBERS" + ] + }, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.10: Estimation_of_total_RMS_pulse_broadening_and_BW_Length_product.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 3.10\n", +"//Program to estimate\n", +"//(a)RMS pulse broadening per kilometer\n", +"//(b)Bandwidth-Length product for the fiber\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"NA=0.3 ; //NUMERICAL APERTURE\n", +"n1=1.45; //CORE REFRACTIVE INDEX \n", +"M=250*10^(-6); //s/km^2 - MATERIAL DISPERSION PARAMETER \n", +"sigma_lambda=50*10^(-9); //metre - RMS SPECTRAL WIDTH\n", +"L=1; //km - LENGTH OF OPTICAL LINK\n", +"c=2.998*10^8; //m/s - VELOCITY OF LIGHT IN VACCUM\n", +"\n", +"//RMS pulse broadening /km due to material dispersion\n", +"sigma_m=sigma_lambda*L*M;\n", +"\n", +"//RMS pulse broadening /km due to intermodal dispersion\n", +"sigma_s=L*NA^2/(4*sqrt(3)*n1*c);\n", +"\n", +"//(a)Total RMS pulse broadening /km\n", +"sigma_t=sqrt(sigma_m^2+sigma_s^2);\n", +"\n", +"//(b)Bandwidth-Length product\n", +"BoptXL=0.2/sigma_t;\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t Total RMS pulse broadening per kilometer is %0.1f ns/km.',sigma_t/10^(-12));\n", +"printf('\n\n\t Bandwidth-Length product is %0.1f MHz km.',BoptXL/10^(9));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.11: Comparision_of_total_first_order_dispersion_for_the_fiber.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 3.11\n", +"//Program to compare the total first order dispersion and determine \n", +"//waveguide dispersion\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"lambda0=1310; //nm - ZERO DISPERSION WAVELENGTH \n", +"So=0.09*10^(-12); //s/nm^2/km - DISPERSION SLOPE\n", +"\n", +"//Dt at 1280nm\n", +"lambda1=1280; //nm - OPERATING WAVELENGTH \n", +"Dt1=lambda1*So/4*(1-(lambda0/lambda1)^4);\n", +"\n", +"//Dt at 1550nm\n", +"lambda2=1550; //nm - OPERATING WAVELENGTH \n", +"Dt2=lambda2*So/4*(1-(lambda0/lambda2)^4);\n", +"\n", +"//Waveguide Dispersion at 1550nm\n", +"Dm=13.5*10^(-12); //s/nm/km - MATERIAL DISPERSION \n", +"Dp=0.4*10^(-12); //s/nm/km - PROFILE DISPERSION\n", +"Dw=Dt2-(Dm+Dp);\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t Dt(1280nm) = %0.1f ps/nm/km.',Dt1/10^(-12));\n", +"printf('\n\n\t Dt(1550nm) = %0.1f ps/nm/km.',Dt2/10^(-12));\n", +"printf('\n\n\t Dw = %0.1f ps/nm/km.',Dw/10^(-12));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.12: EX3_12.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 3.12\n", +"//Program to determine modal birefringence, coherence length and difference between propagation constants for the two orthogonal modes \n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"lambda=0.9*10^(-6); //metre - PEAK WAVELENGTH \n", +"Lb=9*10^(-2); //metre - BEAT LENGTH\n", +"del_lambda=1*10^(-9); //metre - SPECTRAL LINE WIDTH\n", +"\n", +"//Modal Birefringence\n", +"Bf=lambda/Lb;\n", +"\n", +"//Coherence Length\n", +"Lbc=lambda^2/(Bf*del_lambda);\n", +"\n", +"//Difference between propagation constants for the two orthogonal \n", +"//modes \n", +"Bx_minus_By=2*%pi/Lb;\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t The Modal birefringence is %1.0f X 10^(-5) .',Bf/10^(-5));\n", +"printf('\n\n\t The Coherence Length is %d m.',round(Lbc));\n", +"printf('\n\n\t The difference between propagation constants for the two orthogonal modes is %0.1f .',Bx_minus_By);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.13: Determination_of_fiber_birefringence_for_two_given_cases.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 3.13\n", +"//Program to determine fiber birefringence for given beat lengths\n", +"//(1)Lb = 0.7 mm\n", +"//(2)Lb = 80 m\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"lambda=1.3*10^(-6); //metre - OPERATING WAVELENGTH \n", +"\n", +"//Part (1)\n", +"Lb1=0.7*10^(-3); //metre - BEAT LENGTH\n", +"Bf1=lambda/Lb1;\n", +"\n", +"//Part (2)\n", +"Lb2=80; //metre - BEAT LENGTH\n", +"Bf2=lambda/Lb2;\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t The fiber birefringence for Lb = 0.7 mm is %0.2f X 10^(-3) which is high.',Bf1/10^(-3));\n", +"printf('\n\n\t The fiber birefringence for Lb = 80 m is %0.2f X 10^(-8) which is low.',Bf2/10^(-8));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.14: Determination_of_mode_coupling_parameter_for_the_fiber.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 3.14\n", +"//Program to determine the mode coupling parameter for the fiber\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"L=3.5*10^3; //metre - LENGTH\n", +"CT=-27; //dB - POLARIZATION CROSSTALK\n", +"\n", +"//Mode coupling parameter for the fiber\n", +"h=(10^(CT/10))/L; //as tan(h*L)=h*L for small values\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t The mode coupling parameter for the fiber is %0.1f X 10^(-7)/m.',h/10^(-7));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.1: EX3_1.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 3.1\n", +"//Program to Determine \n", +"//(a)Overall signal attenuation\n", +"//(b)Signal attenuation per kilometer\n", +"//(c)Overall signal attenuation for 10 km optical link with splices \n", +"//(d)Numerical Input/Output power ratio\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"Pi=120; //uW - INPUT OPTICAL POWER\n", +"Po=3; //uW - OUTPUT OPTICAL POWER\n", +"L=8; //km - FIBER LENGTH\n", +"\n", +"//(a)Overall signal attenuation\n", +"Alpha_dB_L=10*log10(Pi/Po);\n", +"\n", +"//(b)Signal attenuation per kilometer\n", +"Alpha_dB=Alpha_dB_L/L;\n", +"\n", +"//(c)Overall signal attenuation for 10 km optical link with splices \n", +"A=Alpha_dB*10+9;\n", +"\n", +"//(d)Numerical Input/Output power ratio\n", +"Pi_by_Po=10^(round(A)/10);\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t (a)Overall signal attenuation is %1.0f dB.',Alpha_dB_L);\n", +"printf('\n\n\t (b)Signal attenuation per kilometer is %1.0f dB/km.',Alpha_dB);\n", +"printf('\n\n\t (c)Overall signal attenuation for 10 km optical link with splices is %1.0f dB.',A);\n", +"printf('\n\n\t (d)Numerical Input/Output power ratio is %0.1f.',Pi_by_Po);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.2: EX3_2.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 3.2\n", +"//Program to Determine Theoretical attenuation in dB/km due to fundamental rayleigh scattering at optical wavelengths:\n", +"//(a)0.63um\n", +"//(b)1.00um\n", +"//(c)1.30um\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"n=1.46; //REFRACTIVE INDEX\n", +"p=0.286; //PHOTOELASTIC COEFFICIENT\n", +"Bc=7*10^(-11); //m^2/N - ISOTHERMAL COMPRESSIBILITY\n", +"K=1.381*10^(-23); //J/K - BOLTZMANN's CONSTANT\n", +"Tf=1400; //Kelvin - FICTIVE TEMPERATURE\n", +"l=1000; //metre - FIBER LENGTH\n", +"\n", +"//(a)Attenuation in dB/km due to fundamental rayleigh scattering at 0.63um\n", +"lambda=0.63*10^(-6); //metre - WAVELENGTH\n", +"Gamma_R=8*(%pi)^3*n^8*p^2*Bc*K*Tf/(3*lambda^4);\n", +"L_km1=exp(-Gamma_R*l)\n", +"A1=10*log10(1/L_km1);\n", +"\n", +"//(b)Attenuation in dB/km due to fundamental rayleigh scattering at 1.00um\n", +"lambda=1.00*10^(-6); //metre - WAVELENGTH\n", +"Gamma_R=8*(%pi)^3*n^8*p^2*Bc*K*Tf/(3*lambda^4);\n", +"L_km2=exp(-Gamma_R*l)\n", +"A2=10*log10(1/L_km2);\n", +"\n", +"//(c)Attenuation in dB/km due to fundamental rayleigh scattering at 1.30um\n", +"lambda=1.30*10^(-6); //metre - WAVELENGTH\n", +"Gamma_R=8*(%pi)^3*n^8*p^2*Bc*K*Tf/(3*lambda^4);\n", +"L_km3=exp(-Gamma_R*l)\n", +"A3=10*log10(1/L_km3);\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t (a)Attenuation in dB/km due to fundamental rayleigh scattering at 0.63um = %0.1f dB/km.',A1);\n", +"printf('\n\n\t (b)Attenuation in dB/km due to fundamental rayleigh scattering at 1.00um = %0.1f dB/km.',A2);\n", +"printf('\n\n\t (c)Attenuation in dB/km due to fundamental rayleigh scattering at 1.30um = %0.1f dB/km.',A3);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.3: Comparision_of_threshold_optical_powers_for_SBS_and_SRS.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 3.3\n", +"//Program to compare the threshold optical powers for stimulated \n", +"//Brillouin and Raman Scattering\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"alpha_dB=0.5; //dB/km - ATTENUATION\n", +"lambda=1.3; //micrometre - OPERATING WAVELENGTH\n", +"d=6; //micrometre - FIBER CORE DIAMETER\n", +"nu=0.6; //GHz - LASER SOURCE BANDWIDTH \n", +"\n", +"//Threshold optical power for SBS\n", +"Pb=4.4*10^(-3)*(d^2)*(lambda^2)*alpha_dB*nu;\n", +"\n", +"//Threshold optical power for SRS\n", +"Pr=5.9*10^(-2)*d^2*lambda*alpha_dB;\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t The threshold optical power for SBS is %0.1f mW.',Pb*10^3);\n", +"printf('\n\n\t The threshold optical power for SRS is %0.2f W.',Pr);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.4: Estimation_of_critical_radius_of_curvature.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 3.4\n", +"//Program to estimate critical radius of curvature at which large \n", +"//bending loss occur\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data for part (a)\n", +"n1=1.500; //metre - LENGTH\n", +"delta=0.03; //*100 percent - RELATIVE REFRACTIVE INDEX DIFFERENCE\n", +"lambda=0.82*10^(-6); //metre - OPERATING WAVELENGTH\n", +"\n", +"//Calculation of the radius of curvature of Multi Mode fiber\n", +"n2=sqrt(n1^2-2*delta*n1^2);\n", +"Rc=3*n1^2*lambda/(4*%pi*(n1^2-n2^2)^(3/2));\n", +"\n", +"//Given data for part (b)\n", +"n1=1.500; //metre - LENGTH\n", +"delta=0.003; //*100 percent - RELATIVE REFRACTIVE INDEX DIFFERENCE\n", +"lambda=1.55*10^(-6); //metre - OPERATING WAVELENGTH\n", +"d=8*10^(-6); //metre - CORE DIAMETER\n", +"\n", +"//Calculation of the radius of curvature of Single Mode fiber\n", +"n2=sqrt(n1^2-2*delta*n1^2);\n", +"a=d/2;\n", +"lambda_c=2*%pi*a*n1*sqrt(2*delta)/2.405;\n", +"Rcs=20*lambda*(2.748-0.996*lambda/lambda_c)^(-3)/(n1-n2)^(3/2);\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t (a)The radius of curvature of Multi Mode fiber is %1.0f um.',Rc/10^(-6));\n", +"printf('\n\n\t (b)The radius of curvature of Single Mode fiber is %1.0f mm.',Rcs/10^(-3));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.5: EX3_5.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 3.5\n", +"//Program to estimate \n", +"//(a)The maximum possible bandwidth on the link assuming no ISI\n", +"//(b)The pulse dispersion per unit length\n", +"//(c)The bandwidth-length product for the fiber\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"tau=0.1*10^(-6); //second - TOTAL PULSE BROADENING\n", +"L=15; //km - DISTANCE\n", +"\n", +"//(a)The maximum possible bandwidth on the link assuming no ISI\n", +"B_opt=1/(2*tau);\n", +"\n", +"//(b)The pulse dispersion per unit length\n", +"Dispersion=tau/L;\n", +"\n", +"//(c)The bandwidth-length product for the fiber\n", +"B_optXL=B_opt*L;\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t (a)The maximum possible bandwidth on the link assuming no ISI is %1.0f MHz.',B_opt/10^6);\n", +"printf('\n\n\t (b)The pulse dispersion per unit length is %0.2f ns/km.',Dispersion/10^(-9));\n", +"printf('\n\n\t (c)The bandwidth-length product for the fiber is %1.0f MHz km.',B_optXL/10^6);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.6: Determination_of_Material_Dispersion_Parameter_and_RMS_Pulse_Broadening.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 3.6\n", +"//Program to estimate Material dispersion parameter and rms pulse \n", +"//broadening per kilometer\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"lambda=0.85*10^(-6); //metre - WAVELENGTH\n", +"L=1; //km - DISTANCE\n", +"MD=0.025;//MATERIAL DISPERSION = mod(lamda^2*[del^2(n1)/del(lamda)^2) \n", +"c=2.998*10^8; //m/s - VELOCITY OF LIGHT IN VACCUM\n", +"sigma_lambda=20*10^(-9);//metre - RMS SPECTRAL WIDTH \n", +"\n", +"//Material Dispersion Parameter\n", +"M=MD/(lambda*c);\n", +"\n", +"//R.M.S. pulse broadening per kilometer\n", +"sigma_m=sigma_lambda*L*M;\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t Material Dispersion Parameter is %0.1f ps/nm/km.',M*10^6);\n", +"printf('\n\n\t R.M.S. pulse broadening per kilometer is %0.2f ns/km.',sigma_m/10^(-12));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.7: Estimation_of_RMS_Pulse_Broadening_per_kilometer_for_the_fiber.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 3.7\n", +"//Program to estimate rms pulse broadening per kilometer for the fiber\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"lambda=0.85*10^(-6); //metre - WAVELENGTH\n", +"L=1; //km - DISTANCE\n", +"MD=0.025;//MATERIAL DISPERSION = mod(lamda^2*[del^2(n1)/del(lamda)^2) \n", +"c=2.998*10^8; //m/s - VELOCITY OF LIGHT IN VACCUM\n", +"sigma_lambda_by_lambda=0.0012;// sigma_lambda/lambda\n", +"\n", +"//Material Dispersion Parameter\n", +"M=MD/(lambda*c);\n", +"\n", +"//R.M.S. Spectral Width\n", +"sigma_lambda=sigma_lambda_by_lambda*lambda;\n", +"\n", +"//R.M.S. pulse broadening per kilometer\n", +"sigma_m=sigma_lambda*L*M;\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t R.M.S. pulse broadening per kilometer is %0.2f ns/km.',sigma_m/10^(-12));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.8: EX3_8.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 3.8\n", +"//Program to estimate \n", +"//(a)The delay difference between the slowest and fastest modes at the fiber output\n", +"//(b)The rms pulse broadening due to intermodal dispersion on the link\n", +"//(c)The maximum bit rate \n", +"//(d)Bandwidth-length product corresponding to (c)\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"delta=0.01; //*100 percent - RELATIVE REFRACTIVE INDEX DIFFERENCE\n", +"L=6; //km - LENGTH OF OPTICAL LINK\n", +"n1=1.5; //CORE REFRACTIVE INDEX \n", +"c=2.998*10^8; //m/s - VELOCITY OF LIGHT IN VACCUM\n", +"\n", +"//(a)The delay difference between the slowest and fastest modes at the fiber output\n", +"del_Ts=L*n1*delta/c;\n", +"\n", +"//(b)The rms pulse broadening due to intermodal dispersion on the link\n", +"sigma_s=L*n1*delta/(2*sqrt(3)*c);\n", +"\n", +"//(c)The maximum bit rate \n", +"Bt=1/(2*del_Ts);\n", +"//Improved maximum bit rate \n", +"Bti=0.2/sigma_s;\n", +"\n", +"//(d)Bandwidth-length product corresponding to (c)\n", +"BoptXL=Bti*L;\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t (a)The delay difference between the slowest and fastest modes at the fiber output is %1.0f ns.',del_Ts/10^(-12));\n", +"printf('\n\n\t (b)The rms pulse broadening due to intermodal dispersion on the link is %0.1f ns.',sigma_s/10^(-12));\n", +"printf('\n\n\t (c)The maximum bit rate is %0.1f Mbit/s and improved bit rate is %0.1f Mbit/s.',Bt/10^(9),Bti/10^(9));\n", +"printf('\n\n\t (d)Bandwidth-length product is %0.1f MHz km.',BoptXL/10^(9));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.9: Comparision_of_RMS_Pulse_Broadening_per_Kilometer_for_two_cases.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 3.9\n", +"//Program to compare rms pulse broadening per kilometer due to \n", +"//intermodal dispersion for multimode step index fiber with that of \n", +"//near parabolic graded index fiber \n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"delta=0.01; //*100 percent - RELATIVE REFRACTIVE INDEX DIFFERENCE\n", +"L=1; //km - LENGTH OF OPTICAL LINK\n", +"n1=1.5; //CORE REFRACTIVE INDEX \n", +"c=2.998*10^8; //m/s - VELOCITY OF LIGHT IN VACCUM\n", +"\n", +"//RMS pulse broadening /km due to intermodal dispersion for MMSI Fiber\n", +"sigma_s=L*n1*delta/(2*sqrt(3)*c);\n", +"\n", +"//RMS pulse broadening /km for near parabolic graded index fiber\n", +"sigma_g=L*n1*delta^2/(20*sqrt(3)*c);\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t RMS pulse broadening per kilometer due to intermodal dispersion for MMSI Fiber is %0.1f ns/km.',sigma_s/10^(-12));\n", +"printf('\n\n\t RMS pulse broadening per kilometer for near parabolic graded index fiber is %0.1f ps/km.',sigma_g/10^(-15));" + ] + } +], +"metadata": { + "kernelspec": { + "display_name": "Scilab", + "language": "scilab", + "name": "scilab" + }, + "language_info": { + "file_extension": ".sce", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "scilab", + "version": "0.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/4-OPTICAL_FIBERS_AND_CABLES.ipynb b/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/4-OPTICAL_FIBERS_AND_CABLES.ipynb new file mode 100644 index 0000000..d7a49fa --- /dev/null +++ b/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/4-OPTICAL_FIBERS_AND_CABLES.ipynb @@ -0,0 +1,78 @@ +{ +"cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 4: OPTICAL FIBERS AND CABLES" + ] + }, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.1: Estimation_of_fracture_stress_for_the_fiber_and_percentage_strain_at_the_break.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 4.1\n", +"//Program to determine the following:\n", +"//(a) Fracture Stress in psi for the fiber\n", +"//(b) Percentage Strain at the break\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"St=2.6*10^6; //psi - THEORETICAL COHESIVE STRENGTH\n", +"la=0.16*10^-9; //metres - BOND DISTANCE\n", +"C=10*10^-9; //metres - DEPTH OF CRACK\n", +"E= 9*10^10 ; //N/m^2 - YOUNG'S MODULUS OF SILICA\n", +"\n", +"Gamma_p=(4*la*St^2)/E;\n", +"\n", +"//Fracture Stress for an Elliptical Crack\n", +"Sf_psi=sqrt((2*E*Gamma_p)/(%pi*C));\n", +"\n", +"//Fracture Stress in psi units\n", +"Sf=Sf_psi*6894.76;\n", +"\n", +"//Strain Calculation\n", +"strain=Sf/E;\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t Fracture Stress for the fiber is %0.2f X 10^9 N/m or %0.2f X 10^5 psi.',Sf/10^9,Sf_psi/10^5);\n", +"printf('\n\n\t Percentage Strain at the break is %d percent.',strain*100);" + ] + } +], +"metadata": { + "kernelspec": { + "display_name": "Scilab", + "language": "scilab", + "name": "scilab" + }, + "language_info": { + "file_extension": ".sce", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "scilab", + "version": "0.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/5-OPTICAL_FIBER_CONNECTIONS_JOINTS_COUPLERS_AND_ISOLATORS.ipynb b/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/5-OPTICAL_FIBER_CONNECTIONS_JOINTS_COUPLERS_AND_ISOLATORS.ipynb new file mode 100644 index 0000000..53f09c5 --- /dev/null +++ b/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/5-OPTICAL_FIBER_CONNECTIONS_JOINTS_COUPLERS_AND_ISOLATORS.ipynb @@ -0,0 +1,473 @@ +{ +"cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 5: OPTICAL FIBER CONNECTIONS JOINTS COUPLERS AND ISOLATORS" + ] + }, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 5.10: Calculation_of_the_grating_period_for_reflection.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 5.10\n", +"//Program to find the grating period for reflection\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"n=1.46; //CORE REFRACTIVE INDEX\n", +"lambda_b=1.55; //um - WAVELENGTH\n", +"\n", +"//Grating Period\n", +"lambda=lambda_b/(2*n);\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t Grating Period is %0.2f um .',lambda);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 5.1: Calculation_of_the_optical_loss_in_decibels_at_the_joint.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 5.1\n", +"//Program to calculate the optical loss in decibels at the joint\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"n1=1.5; //CORE REFRACTIVE INDEX\n", +"n=1.0;\n", +"\n", +"//Magnitude of Frensel reflection at the fiber-air interface\n", +"r=((n1-n)/(n1+n))^2;\n", +"\n", +"//Optical Loss\n", +"Loss_fres=-10*log10(1-r);\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t Optical Loss is %0.2f dB .',Loss_fres);\n", +"printf('\n\n\t Total loss due to Frensel Reflection at the fiber joint is %0.2f dB .',Loss_fres*2);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 5.2: Estimation_of_the_insertion_loss_in_two_given_cases.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 5.2\n", +"//Program to estimate the insertion loss when:\n", +"//(a)there is a small air gap at the joint \n", +"//(b)the joint is considered index matched\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"n1=1.5; //CORE REFRACTIVE INDEX\n", +"n=1.0;\n", +"y=5*10^(-6); //metre - LATERAL MISALIGNMENT\n", +"a=25*10^(-6); //metre - CORE RADIUS\n", +"\n", +"//(a)Coupling efficiency\n", +"eeta_lat1=16*(n1/n)^2/(1+(n1/n))^4*1/%pi*(2*acos(y/(2*a))-(y/a)*sqrt(1-(y/(2*a))^2));\n", +"//Insertion Loss\n", +"Loss_lat1=-10*log10(eeta_lat1);\n", +"\n", +"//(b)Coupling efficiency\n", +"eeta_lat2=1/%pi*(2*acos(y/(2*a))-(y/a)*sqrt(1-(y/(2*a))^2));\n", +"//Insertion Loss\n", +"Loss_lat2=-10*log10(eeta_lat2);\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t (a)Insertion Loss (there is a small air gap at the joint) is %0.2f dB .',Loss_lat1);\n", +"printf('\n\n\t (b)Insertion Loss (the joint is considered index matched) is %0.2f dB .',Loss_lat2);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 5.3: Estimation_of_the_insertion_loss_in_two_given_cases.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 5.3\n", +"//Program to estimate the insertion loss when:\n", +"//(a)there is uniform illumination of all guided modes only \n", +"//(b)there is uniform illumination of all guided and leaky modes \n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"y=3*10^(-6); //metre - LATERAL MISALIGNMENT\n", +"a=25*10^(-6); //metre - CORE RADIUS\n", +"\n", +"//(a)Misalignment Loss\n", +"Lt1=0.85*(y/a);\n", +"//Coupling efficiency\n", +"eeta_lat1=1-Lt1;\n", +"//Insertion Loss\n", +"Loss_lat1=-10*log10(eeta_lat1);\n", +"\n", +"//(b)Misalignment Loss\n", +"Lt2=0.75*(y/a);\n", +"//Coupling efficiency\n", +"eeta_lat2=1-Lt2;\n", +"//Insertion Loss\n", +"Loss_lat2=-10*log10(eeta_lat2);\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t (a)Insertion Loss (there is uniform illumination of all guided modes only) is %0.2f dB .',Loss_lat1);\n", +"printf('\n\n\t (b)Insertion Loss (there is uniform illumination of all guided and leaky modes) is %0.2f dB .',Loss_lat2);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 5.4: Estimation_of_the_insertion_loss_in_two_given_cases.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 5.4\n", +"//Program to estimate the insertion loss for\n", +"//NA = 0.2\n", +"//NA = 0.4\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"n1=1.48; //CORE REFRACTIVE INDEX\n", +"n=1.0;\n", +"theeta=5; //degree - ANGULAR MISALIGNMENT\n", +"\n", +"//Calculation for NA = 0.2\n", +"NA=0.2\n", +"eeta_ang1=16*(n1/n)^2/(1+n1/n)^4*(1-n*theeta*%pi/180/(%pi*NA));\n", +"//Insertion Loss\n", +"Loss_ang1=-10*log10(eeta_ang1);\n", +"\n", +"//Calculation for NA = 0.4\n", +"NA=0.4\n", +"eeta_ang2=16*(n1/n)^2/(1+n1/n)^4*(1-n*theeta*%pi/180/(%pi*NA));\n", +"//Insertion Loss\n", +"Loss_ang2=-10*log10(eeta_ang2);\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t Insertion Loss (NA=0.2) is %0.2f dB .',Loss_ang1);\n", +"printf('\n\n\t Insertion Loss (NA=0.4) is %0.2f dB .',Loss_ang2);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 5.5: EX5_5.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 5.5\n", +"//Program to estimate the total insertion loss of the fiber joint \n", +"//with a lateral misalignment and angular misalignment\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"V=2.40; //NORMALIZED FREQUENCY\n", +"n1=1.46; //CORE REFRACTIVE INDEX\n", +"d=8*10^(-6); //metre - CORE DIAMETER\n", +"NA=0.1; //NUMERICAL APERTURE\n", +"y=1*10^(-6); //metre - LATERAL MISALIGNMENT\n", +"theeta=1; //degree - ANGULAR MISALIGNMENT\n", +"\n", +"//Normalized Spot Size\n", +"a=d/2;\n", +"omega=a*(0.65+1.62*V^(-3/2)+2.88*V^(-6))/sqrt(2);\n", +"\n", +"//Loss due to lateral offset\n", +"Tl=2.17*(y/omega)^2;\n", +"\n", +"//Loss due to angular misalignment\n", +"Ta=2.17*((theeta*%pi/180)*omega*n1*V/(a*NA))^2;\n", +"\n", +"//Total insertion loss\n", +"Tt=Tl+Ta;\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t Total Insertion Loss is %0.2f dB .',Tt);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 5.6: Calculation_of_the_loss_at_the_connection_due_to_mode_field_diameter_mismatch.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 5.6\n", +"//Program to calculate the loss at the connection due to mode field \n", +"//diameter mismatch\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"MFD01=11.2; //um - MODE FIELD DIAMETER\n", +"MFD02=8.4; //um - MODE FIELD DIAMETER\n", +"\n", +"//Calculation of Intrinsic Loss\n", +"omega_01=MFD01/2; \n", +"omega_02=MFD02/2;\n", +"Loss_int=-10*log10(4*(omega_02/omega_01+omega_01/omega_02)^(-2))\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t Intrinsic Loss is %0.2f dB .',Loss_int);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 5.7: Determination_of_excess_loss_insertion_losses_crosstalk_and_split_ratio.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 5.7\n", +"//Program to determine the excess loss, insertion losses, crosstalk\n", +"//and split ratio\n", +" \n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"P1=60*10^(-6); //Watts - INPUT POWER AT PORT 1 \n", +"P2=0.004*10^(-6); //Watts - OUTPUT POWER AT PORT 2\n", +"P3=26*10^(-6); //Watts - OUTPUT POWER AT PORT 3\n", +"P4=27.5*10^(-6); //Watts - OUTPUT POWER AT PORT 4\n", +"\n", +"//Calculation of Excess Loss\n", +"Excess_loss=10*log10(P1/(P3+P4));\n", +"\n", +"//Calculation of Insertion Loss (ports 1 to 3)\n", +"Insertion_loss3=10*log10(P1/P3);\n", +"\n", +"//Calculation of Insertion Loss (ports 1 to 4)\n", +"Insertion_loss4=10*log10(P1/P4);\n", +"\n", +"//Calculation of Crosstalk\n", +"Crosstalk=10*log10(P2/P1);\n", +"\n", +"//Calculation of Split Ratio\n", +"Split_ratio=P3/(P3+P4)*100;\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t Excess Loss is %0.2f dB .',Excess_loss);\n", +"printf('\n\n\t Intrinsic Loss (ports 1 to 3) is %0.2f dB .',Insertion_loss3);\n", +"printf('\n\n\t Intrinsic Loss (ports 1 to 4) is %0.2f dB .',Insertion_loss4);\n", +"printf('\n\n\t Crosstalk is %0.1f dB .',Crosstalk);\n", +"printf('\n\n\t Split Ratio is %0.1f percent .',Split_ratio);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 5.8: Determination_of_excess_loss_insertion_losses_crosstalk_and_split_ratio.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 5.8\n", +"//Program to determine the total loss incurred by the star coupler \n", +"//and average insertion loss\n", +" \n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"Pi=1*10^(-3); //Watts - INPUT POWER AT PORT 1 \n", +"Po=14*10^(-6); //Watts - OUTPUT POWER AT OTHER PORTS\n", +"N=32; //Ports\n", +"\n", +"//Calculation of Splitting Loss\n", +"Splitting_loss=10*log10(N);\n", +"\n", +"//Calculation of Excess Loss\n", +"Excess_loss=10*log10(Pi/(Po*N));\n", +"\n", +"//Calculation of Total loss\n", +"Total_loss=Splitting_loss+Excess_loss;\n", +"\n", +"//Calculation of Average Insertion Loss \n", +"Insertion_loss=10*log10(Pi/Po);\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t Total loss is %0.2f dB .',Total_loss);\n", +"printf('\n\n\t Average Insertion Loss is %0.2f dB .',Insertion_loss);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 5.9: Determination_of_the_insertion_loss_associated_with_one_typical_path.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 5.9\n", +"//Program to determine the insertion loss associated with one typical\n", +"//path\n", +" \n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"Excess_loss=0.2; //dB - EXCESS LOSS OF EACH PORT\n", +"Split_ratio=0.5; //*100 percent - SPLIT RATIO\n", +"N=16; //PORTS\n", +"M=4; //For N=16 ports\n", +"Splice_loss=0.1; //dB - SPLICE LOSS\n", +"\n", +"//Calculation of Total Excess Loss\n", +"Total_Excess_loss=M*Excess_loss+3*Splice_loss;\n", +"\n", +"//Calculation of Splitting Loss\n", +"Splitting_loss=10*log10(N);\n", +"\n", +"//Calculation of Insertion Loss \n", +"Insertion_loss=Splitting_loss+Total_Excess_loss;\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t Insertion Loss is %0.2f dB .',Insertion_loss);" + ] + } +], +"metadata": { + "kernelspec": { + "display_name": "Scilab", + "language": "scilab", + "name": "scilab" + }, + "language_info": { + "file_extension": ".sce", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "scilab", + "version": "0.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/6-OPTICAL_SOURCES_1_THE_LASER.ipynb b/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/6-OPTICAL_SOURCES_1_THE_LASER.ipynb new file mode 100644 index 0000000..7f2bf6e --- /dev/null +++ b/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/6-OPTICAL_SOURCES_1_THE_LASER.ipynb @@ -0,0 +1,361 @@ +{ +"cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 6: OPTICAL SOURCES 1 THE LASER" + ] + }, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.1: EX6_1.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 6.1\n", +"//Program to calculate the ratio of stimulated emission rate to the\n", +"//spontaneous emission rate\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"Lambda=0.5*10^-6; //metres - OPERATING WAVELENGTH\n", +"k=1.381*10^(-23); //m^2 kg/s - BOLTZMANN's CONSTANT\n", +"c= 2.998*10^8; //m/s - SPEED OF LIGHT\n", +"h=6.626*10^(-34); //J/K - PLANK's CONSTANT\n", +"T=1000; //Kelvin - TEMPERATURE\n", +"\n", +"//Average operating frequency\n", +"f=c/Lambda;\n", +"\n", +"//Stimulated Emission Rate/Spontaneous Emission Rate\n", +"Ratio=1/(exp(h*f/(k*T))-1);\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t Stimulated Emission Rate/Spontaneous Emission Rate = %0.1f X 10^(-13).',Ratio/10^(-13));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.2: EX6_2.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 6.2\n", +"//Program to determine the number of longitudinal modes and their \n", +"//frequency separation in a ruby laser\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"Lambda=0.55*10^-6; //metres - PEAK EMISSION WAVELENGTH\n", +"n=1.78; //REFRACTIVE INDEX\n", +"c= 2.998*10^8; //m/s - SPEED OF LIGHT\n", +"L=4*10^(-2); //metres - CRYSTAL LENGTH\n", +"\n", +"//Number of Longitudinal modes\n", +"q=2*n*L/Lambda;\n", +"\n", +"//Frequency separation of the modes\n", +"del_f=c/(2*n*L);\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t Number of Longitudinal modes is %0.1f X 10^5.',q/10^5);\n", +"printf('\n\n\t Frequency separation of the modes is %0.1f GHz.',del_f/10^9);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.3: Calculation_of_laser_gain_coefficient_for_the_cavity.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 6.3\n", +"//Program to calculate laser gain coefficient for the cavity\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"L=600*10^-4; //cm - CAVITY LENGTH\n", +"r=0.3; //*100 percent - REFLECTIVITY\n", +"alpha_bar= 30; //per cm - LOSSES\n", +"\n", +"//Laser Gain Coefficient\n", +"gth_bar=alpha_bar+1/L*log(1/r);\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t Laser Gain Coefficient is %1.0f per cm.',gth_bar);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.4: EX6_4.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 6.4\n", +"//Program to compare the approximate radiative minority carrier \n", +"//lifetimes in gallium arsenide and silicon\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"N=10^18; //per cm^3 - HOLE CONCENTRATION\n", +"Br1=7.21*10^(-10); //cm^3 / s - RECOMBINATION COEFFICIENT FOR GaAs\n", +"Br2=1.79*10^(-15); //cm^3 / s - RECOMBINATION COEFFICIENT FOR Si\n", +"\n", +"//Radiative minority carrier lifetime for GaAs\n", +"tau_r1=1/(Br1*N);\n", +"\n", +"//Radiative minority carrier lifetime for Si\n", +"tau_r2=1/(Br2*N);\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t Radiative minority carrier lifetime for GaAs is %0.2f ns.',tau_r1/10^(-9));\n", +"printf('\n\n\t Radiative minority carrier lifetime for Si is %0.2f ms.',tau_r2/10^(-3));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.5: EX6_5.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 6.5\n", +"//Program to determine the threshold current density and the \n", +"//threshold current for the device\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"n=3.6; //REFRACTIVE INDEX OF GaAs\n", +"beeta_bar=21*10^(-3); //A/cm^3 - GAIN FACTOR\n", +"alpha_bar=10; //per cm - LOSS COEFFICIENT\n", +"L=250*10^(-4); //cm - LENGTH OF OPTICAL CAVITY\n", +"W=100*10^(-4); //cm - WIDTH OF OPTICAL CAVITY\n", +"\n", +"//Reflectivity for normal incidence\n", +"r=((n-1)/(n+1))^2;\n", +"\n", +"//Threshold current density\n", +"Jth=1/beeta_bar*(alpha_bar+1/L*log(1/r));\n", +"\n", +"//Threshold current\n", +"Ith=Jth*W*L;\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t Threshold current density is %0.2f X 10^3 A/cm^2.',Jth/10^3);\n", +"printf('\n\n\t Threshold current is %0.1f mA.',Ith/10^(-3));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.6: Calculation_of_external_power_efficiency_of_the_device.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 6.6\n", +"//Program to calculate the external power efficiency of the device \n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"eeta_t=0.18; //*100 percent - TOTAL EFFICIENCY\n", +"Eg=1.43; //eV - ENERGY BAND GAP OF GaAs\n", +"V=2.5; //Volts - APPLIED VOLTAGE\n", +"\n", +"//External power efficiency of the device\n", +"eeta_ep=eeta_t*Eg/V;\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t External power efficiency of GaAs device is %1.0f percent.',eeta_ep*100);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.7: EX6_7.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 6.7\n", +"//Program to compare the ratio of threshold current densities at 20 C \n", +"//and 80 C for AlGaAs and InGaAsP\n", +" \n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data \n", +"T1=293; //degree C\n", +"T2=352; //degree C\n", +"\n", +"//For AlGaAs\n", +"T0=170; //degree C\n", +"Jth_20=exp(T1/T0);\n", +"Jth_80=exp(T2/T0);\n", +"Ratio=Jth_80/Jth_20;\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t Ratio of current densities for AlGaAs is %0.2f .',Ratio);\n", +"\n", +"//For InGaAsP\n", +"T0=55; //degree C\n", +"Jth_20=exp(T1/T0);\n", +"Jth_80=exp(T2/T0);\n", +"Ratio=Jth_80/Jth_20;\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t Ratio of current densities for InGaAsP is %0.2f .',Ratio);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.8: EX6_8.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 6.8\n", +"//Determine the\n", +"//(a)The RMS value of the power fluctuation\n", +"//(b)The RMS noise current at the output of the detector\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data \n", +"B=100*10^6; //Hz - BANDWIDTH\n", +"S_rinf_by_Pebarsquare=10^(-15); //per Hz - RIN VALUE\n", +"e=1.602*10^(-19); //Coulumbs - CHARGE OF AN ELECTRON\n", +"eeta=0.6; //*100 percent - QUANTUM EFFICIENCY\n", +"lambda=1.55*10^(-6); //metre - WAVELENGTH \n", +"h= 6.626*10^(-34); //J/K - PLANK's CONSTANT\n", +"c=2.998*10^8; //m/s - VELOCITY OF LIGHT IN VACCUM\n", +"Pe_bar=2*10^(-3); //Watt - INCIDENT POWER\n", +"\n", +"//(a)The RMS value of the power fluctuation\n", +"RMS_value=sqrt(S_rinf_by_Pebarsquare*B);\n", +"\n", +"//(b)The RMS noise current at the output of the detector\n", +"RMS_noise_current=e*eeta*lambda/(h*c)*RMS_value*Pe_bar;\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t (a)The RMS value of the power fluctuation is %0.2f X 10^(-4) W.',RMS_value/10^(-4));\n", +"printf('\n\n\t (b)The RMS noise current at the output of the detector is %0.2f X 10^(-7) A.',RMS_noise_current/10^(-7));" + ] + } +], +"metadata": { + "kernelspec": { + "display_name": "Scilab", + "language": "scilab", + "name": "scilab" + }, + "language_info": { + "file_extension": ".sce", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "scilab", + "version": "0.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/7-OPTICAL_SOURCES_2_THE_LIGHT_EMITTING_DIODE.ipynb b/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/7-OPTICAL_SOURCES_2_THE_LIGHT_EMITTING_DIODE.ipynb new file mode 100644 index 0000000..a08cbba --- /dev/null +++ b/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/7-OPTICAL_SOURCES_2_THE_LIGHT_EMITTING_DIODE.ipynb @@ -0,0 +1,371 @@ +{ +"cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 7: OPTICAL SOURCES 2 THE LIGHT EMITTING DIODE" + ] + }, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 7.1: EX7_1.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 7.1\n", +"//Program to determine the total carrier recombination lifetime and\n", +"//the power internally generated within the device\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"Tau_r=60; //ns - RADIATIVE RECOMBINATION LIFETIME\n", +"Tau_nr=100; //ns - NON RADIATIVE RECOMBINATION LIFETIME\n", +"Lambda=0.87*10^-6; //metres - PEAK EMISSION WAVELENGTH\n", +"c= 2.998*10^8; //m/s - SPEED OF LIGHT\n", +"h= 6.626*10^(-34); //J/K - PLANK's CONSTANT\n", +"e=1.602*10^(-19); //Coulumbs - CHARGE OF AN ELECTRON\n", +"i=40*10^(-3); //A - DRIVE CURRENT\n", +"\n", +"//Total carrier recombination lifetime\n", +"Tau=Tau_r*Tau_nr/(Tau_r+Tau_nr);\n", +"\n", +"//Internal quantum efficiency\n", +"eeta_int=Tau/Tau_r;\n", +"\n", +"//Power internally generated within the device\n", +"P_int=eeta_int*h*c*i/(Lambda*e);\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t Total carrier recombination lifetime is %0.1f ns.',Tau);\n", +"printf('\n\n\t Power internally generated within the device is %0.1f mW .',P_int/10^(-3));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 7.2: EX7_2.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 7.2\n", +"//Program to :\n", +"//(a)Calculate the optical power emitted into air as a percentage of \n", +"//internal optical power\n", +"//(b)Determine the external power efficiency\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"F=0.68; //TRANSMISSION FACTOR\n", +"n=1;\n", +"nx=3.6; //REFRACTIVE INDEX OF GaAs\n", +"Pint_by_P=0.5; //*100 percent - Pe/P\n", +"\n", +"//Percentage optical power emitted\n", +"Pe_by_Pint=F*n^2/(4*nx^2);\n", +"\n", +"//External power efficiency\n", +"eeta_ep=Pe_by_Pint*Pint_by_P;\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t (a)Percentage optical power emitted is %0.1f percent of generated optical power.',Pe_by_Pint*100);\n", +"printf('\n\n\t (b)External power efficiency is %0.2f percent.',eeta_ep*100);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 7.3: EX7_3.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 7.3\n", +"//Program to calculate the:\n", +"//(a)Coupling Efficieny\n", +"//(b)Optical loss in decibels relative to Pe\n", +"//(c)Optical loss in decibels relative to Pint\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"NA=0.2; //NUMERICAL APERTURE\n", +"F=0.68; //TRANSMISSION FACTOR\n", +"n=1;\n", +"nx=3.6; //REFRACTIVE INDEX OF GaAs\n", +"\n", +"//(a)Coupling Efficieny\n", +"eeta_c=(NA)^2;\n", +"\n", +"//(b)Optical loss in decibels relative to Pe\n", +"Loss1=-10*log10(eeta_c);\n", +"\n", +"//Percentage optical power emitted\n", +"Pint_by_P=F*n^2/(4*nx^2);\n", +"\n", +"//(c)Optical loss in decibels relative to Pint\n", +"Loss2=-10*log10(eeta_c*Pint_by_P);\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t (a)Coupling Efficieny is %1.0f percent.',eeta_c*100);\n", +"printf('\n\n\t (b)Optical loss in decibels relative to Pe is %0.1f dB.',Loss1);\n", +"printf('\n\n\t (c)Optical loss in decibels relative to Pint is %0.1f dB.',Loss2);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 7.4: Estimation_of_the_optical_power_coupled_into_the_fiber.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 7.4\n", +"//Program to estimate the optical power coupled into the fiber\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"d=50*10^(-4); //cm - EMISSION AREA DIAMETER\n", +"R_D=30; //W/sr/cm^2\n", +"NA=0.15; //NUMERICAL APERTURE\n", +"r=0.01; //REFLECTION COEFFICIENT\n", +"\n", +"//Optical power coupled into the fiber\n", +"a=d/2; //RADIUS\n", +"A=%pi*a^2; //EMISSION AREA\n", +"Pc=%pi*(1-r)*A*R_D*NA^2;\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t Optical power coupled into the fiber is %0.1f uW.',Pc/10^(-6));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 7.5: Determination_of_the_overall_power_conversion_efficiency.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 7.5\n", +"//Program to determine the overall power conversion efficiency\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"Pc=190*10^(-6); //Watts - INPUT OPTICAL POWER\n", +"I=25*10^(-3); //A - FORWARD CURRENT\n", +"V=1.5; //V - FORWARD VOLTAGE\n", +"\n", +"//Overall power conversion efficiency\n", +"P=I*V;\n", +"eeta_pc=Pc/P;\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t Overall power conversion efficiency is %0.1f percent.',eeta_pc*100);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 7.6: EX7_6.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 7.6\n", +"//Compare the electrical and optical bandwidth for an optical fiber \n", +"//commuication system and develop a relationship between the two\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"Re_dB=3; //dB - ELECTRICAL 3 dB POINTS\n", +"Ro_dB=3; //dB - OPTICAL 3 dB POINTS\n", +"\n", +"//Electrical Bandwidth\n", +"Iout_by_Iin=sqrt(10^(-Re_dB/10));\n", +"printf('\n\n\t For Electrical Bandwidth, Iout/Iin = %0.3f .',Iout_by_Iin);\n", +"\n", +"//Optical Bandwidth\n", +"Iout_by_Iin=10^(-Ro_dB/10);\n", +"printf('\n\n\t For Optical Bandwidth, Iout/Iin = %0.1f .',Iout_by_Iin);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 7.7: EX7_7.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 7.7\n", +"//Determine the optical output power modulated at frequencies\n", +"//(a)20 MHz\n", +"//(b)100 MHz\n", +"//Also determine electrical and optical bandwidths\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"P_dc=300*10^(-6); //Watt - OPTICAL OUTPUT POWER\n", +"tau_i=5*10^(-9); //s - CARRIER RECOMBINATION LIFETIME\n", +"\n", +"//(a)Optical output power at 20 MHz\n", +"f=20*10^6; //Hz - OPERATING FREQUENCY\n", +"Pe=P_dc/sqrt(1+(2*%pi*f*tau_i)^2);\n", +"printf('\n\n\t (a)Optical output power at %1.0f MHz, Pe(%1.0f MHz) = %0.2f uW.',f/10^6,f/10^6,Pe/10^(-6));\n", +"\n", +"//(b)Optical output power at 100 MHz\n", +"f=100*10^6; //Hz - OPERATING FREQUENCY \n", +"Pe=P_dc/sqrt(1+(2*%pi*f*tau_i)^2);\n", +"printf('\n\n\t (b)Optical output power at %1.0f MHz, Pe(%1.0f MHz) = %0.2f uW.',f/10^6,f/10^6,Pe/10^(-6));\n", +"\n", +"//Optical Bandwidth\n", +"Bopt=sqrt(3)/(2*%pi*tau_i);\n", +"printf('\n\n\t Optical Bandwidth, Bopt = %0.1f MHz.',Bopt/10^6);\n", +"\n", +"//Electrical Bandwidth\n", +"B=Bopt/sqrt(2);\n", +"printf('\n\n\t Electrical Bandwidth, B = %0.1f MHz.',B/10^6);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 7.8: Estimation_of_the_CW_operating_lifetime_for_the_given_LED.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 7.8\n", +"//Program to estimate the CW operating lifetime for the given LED\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"Ea=1*1.602*10^(-19); //Joules - ACTIVATION ENERGY \n", +"k=1.38*10^(-23); //m^2 kg/s - BOLTZMANN's CONSTANT\n", +"T=290; //Kelvin - JUNCTION TEMPERATURE\n", +"Pe_by_Pout=0.67; //Pe/Pout RATIO\n", +"Beeta_o=1.84*10^7; //per h - CONSTANT OF PROPORTIONALITY\n", +"\n", +"//Degradation Rate\n", +"Beeta_r=Beeta_o*exp(-Ea/(k*T));\n", +"\n", +"//CW operating lifetime for the given LED\n", +"t=log(Pe_by_Pout)/-Beeta_r;\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t CW operating lifetime for the given LED is %0.1f X 10^9 h.',t/10^9);" + ] + } +], +"metadata": { + "kernelspec": { + "display_name": "Scilab", + "language": "scilab", + "name": "scilab" + }, + "language_info": { + "file_extension": ".sce", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "scilab", + "version": "0.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/8-OPTICAL_DETECTORS.ipynb b/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/8-OPTICAL_DETECTORS.ipynb new file mode 100644 index 0000000..86c8593 --- /dev/null +++ b/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/8-OPTICAL_DETECTORS.ipynb @@ -0,0 +1,405 @@ +{ +"cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 8: OPTICAL DETECTORS" + ] + }, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 8.1: Determination_of_the_quantum_efficiency_and_responsivity_of_the_photodiode.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 8.1\n", +"//Program to determine the Quantum efficiency and Responsivity of\n", +"//the photodiode\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"Lambda=0.85*10^-6; //metres - WAVELENGTH\n", +"e=1.602*10^(-19); //Coulumbs - CHARGE OF AN ELECTRON\n", +"h= 6.626*10^(-34); //J/K - PLANK's CONSTANT\n", +"c=2.998*10^8; //m/s - VELOCITY OF LIGHT IN VACCUM\n", +"Ne=1.2*10^11; //NUMBER OF ELECTRONS COLLECTED\n", +"Np=3*10^11; //NUMBER OF INCIDENT PHOTONS\n", +"\n", +"//Quantum Efficiency\n", +"eeta=Ne/Np;\n", +"\n", +"//Responsivity\n", +"R=eeta*e*Lambda/(h*c);\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t Quantum Efficiency = %0.1f .',eeta);\n", +"printf('\n\n\t Responsivity, R = %0.3f A/W .',R);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 8.2: Determination_of_operating_wavelength_and_incident_optical_power.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 8.2\n", +"//Program to determine:\n", +"//(a)Operating Wavelength\n", +"//(b)Incident Optical Power\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"eeta=0.65; //*100 percent - QUANTUM EFFICIENCY\n", +"e=1.602*10^(-19); //Coulumbs - CHARGE OF AN ELECTRON\n", +"h=6.626*10^(-34); //J/K - PLANK's CONSTANT\n", +"c=2.998*10^8; //m/s - VELOCITY OF LIGHT IN VACCUM\n", +"Ip=2.5*10^(-6); //A - PHOTOCURRENT\n", +"E=1.5*10^(-19); //J - ENERGY OF PHOTONS\n", +"\n", +"//(a)Operating Wavelength\n", +"Lambda=h*c/E;\n", +"\n", +"//Responsivity\n", +"R=eeta*e*Lambda/(h*c);\n", +"\n", +"//(b)Incident Optical Power\n", +"Po=Ip/R;\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t (a)Operating Wavelength = %0.2f um.',Lambda/10^(-6));\n", +"printf('\n\n\t (b)Incident Optical Power = %0.2f uW.',Po/10^(-6));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 8.3: EX8_3.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 8.3\n", +"//Program to determine the wavelength above which an intrinsic \n", +"//photodetector will cease to operate\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"e=1.602*10^(-19); //Coulumbs - CHARGE OF AN ELECTRON\n", +"h=6.626*10^(-34); //J/K - PLANK's CONSTANT\n", +"c=2.998*10^8; //m/s - VELOCITY OF LIGHT IN VACCUM\n", +"Eg=1.43*e; //V - BANDGAP ENERGY\n", +"\n", +"//Wavelength determination\n", +"Lambda_c=h*c/Eg;\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t The wavelength above which an intrinsic photodetector will cease to operate is %0.2f um.',Lambda_c/10^(-6));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 8.4: EX8_4.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 8.4\n", +"//Program to determine:\n", +"//(a)Drift time of the carriers\n", +"//(b)Junction capacitance of the photodiode\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"w=20*10^(-6); //metre - WIDTH OF INTRINSIC REGION\n", +"r=500*10^(-6); //metre - RADIUS\n", +"epsilon_s=10.5*10^(-11);//F/m - PERMITTIVITY\n", +"vd=10^5; //m/s - DRIFT VELOCITY OF ELECTRONS\n", +"\n", +"//(a)Drift time of the carriers\n", +"t_drift=w/vd;\n", +"\n", +"//(b)Junction capacitance of the photodiode\n", +"A=%pi*r^2;\n", +"Cj=epsilon_s*A/w;\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t (a)Drift time of the carriers is %1.0f ps.',t_drift/10^(-12));\n", +"printf('\n\n\t (b)Junction capacitance of the photodiode is %1.0f pF.',Cj/10^(-12));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 8.5: Determination_of_maximum_response_time_for_the_device.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 8.5\n", +"//Program to determine maximum response time for the device\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"w=25*10^(-6); //metre - WIDTH OF DEPLETION REGION\n", +"vd=3*10^4; //m/s - DRIFT VELOCITY OF CARRIER\n", +"\n", +"//Maximum 3 dB Bandwidth\n", +"Bw=vd/(2*%pi*w);\n", +"\n", +"//Maximum response time\n", +"t=1/Bw;\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t Maximum response time for the device is %0.1f ns.',t/10^(-9));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 8.6: Calculation_of_noise_equivalent_power_and_specific_detectivity_for_the_device.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 8.6\n", +"//Program to calculate the noise equivalent power and specific \n", +"//detectivity for the device\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"Id=8*10^(-9); //A - DARK CURRENT\n", +"eeta=0.55; //*100 - QUANTUM EFFICIENCY\n", +"Lambda=1.3*10^(-6); //metre - OPERATING WAVELENGTH\n", +"A=100*50*(10^(-6))^2; //m^2 - AREA\n", +"e=1.602*10^(-19); //Coulumbs - CHARGE OF AN ELECTRON\n", +"h= 6.626*10^(-34); //J/K - PLANK's CONSTANT\n", +"c=2.998*10^8; //m/s - VELOCITY OF LIGHT IN VACCUM\n", +"\n", +"//Noise equivalent power\n", +"NEP=h*c*sqrt(2*e*Id)/(eeta*e*Lambda);\n", +"\n", +"//Specific detectivity\n", +"D=sqrt(A)/NEP;\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t Noise equivalent power = %0.2f X 10^(-14) W.',NEP/10^(-14));\n", +"printf('\n\n\t Specific detectivity = %0.1f X 10^8 m H^(1/2)/W.',D/10^(8));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 8.7: Determination_of_the_multiplication_factor_of_the_photodiode.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 8.7\n", +"//Program to determine the multiplication factor of the photodiode\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"eeta=0.80; //*100 percent - QUANTUM EFFICIENCY\n", +"e=1.602*10^(-19); //Coulumbs - CHARGE OF AN ELECTRON\n", +"h=6.626*10^(-34); //J/K - PLANK's CONSTANT\n", +"c=2.998*10^8; //m/s - VELOCITY OF LIGHT IN VACCUM\n", +"Lambda=0.9*10^(-6); //metre - OPERATING WAVELENGTH\n", +"I=11*10^(-6); //A - OUTPUT CURRENT\n", +"Po=0.5*10^(-6); //Watt - INCIDENT OPTICAL POWER\n", +"\n", +"//Responsivity\n", +"R=eeta*e*Lambda/(h*c);\n", +"//Photocurrent\n", +"Ip=Po*R;\n", +"//Multiplication Factor\n", +"M=I/Ip;\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t The multiplication factor of the photodiode is approximately %1.0f.',M);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 8.8: Determination_of_optical_gain_of_the_device_and_common_emitter_current_gain.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 8.8\n", +"//Program to determine:\n", +"//(a)Optical gain of the device\n", +"//(b)Common emitter current gain\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"eeta=0.40; //*100 percent - QUANTUM EFFICIENCY\n", +"e=1.602*10^(-19); //Coulumbs - CHARGE OF AN ELECTRON\n", +"h=6.626*10^(-34); //J/K - PLANK's CONSTANT\n", +"c=2.998*10^8; //m/s - VELOCITY OF LIGHT IN VACCUM\n", +"Lambda=1.26*10^(-6); //metre - OPERATING WAVELENGTH\n", +"Ic=15*10^(-3); //A - COLLECTOR CURRENT\n", +"Po=125*10^(-6); //Watt - INCIDENT OPTICAL POWER\n", +"\n", +"//(a)Optical Gain\n", +"Go=h*c*Ic/(Lambda*e*Po);\n", +"\n", +"//(b)Common emitter current gain\n", +"h_FE=Go/eeta;\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t (a)Optical Gain, Go = %0.1f.',Go);\n", +"printf('\n\n\t (b)Common emitter current Gain, h_FE = %0.1f.',h_FE);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 8.9: Determination_of_the_maximum_3_dB_bandwidth_permitted_by_the_device.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 8.9\n", +"//Program to determine the maximum 3 dB bandwidth permitted by the\n", +"//device\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"tf=5*10^(-12); //second - ELECTRON TRANSIT TIME\n", +"G=70; //PHOTOCONDUCTIVE GAIN\n", +"\n", +"//Maximum 3 dB bandwidth permitted by the MSM\n", +"Bm=1/(2*%pi*tf*G);\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n\t Maximum 3 dB bandwidth permitted by the device is %0.1f MHz.',Bm/10^6);" + ] + } +], +"metadata": { + "kernelspec": { + "display_name": "Scilab", + "language": "scilab", + "name": "scilab" + }, + "language_info": { + "file_extension": ".sce", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "scilab", + "version": "0.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/9-DIRECT_DETECTION_RECEIVER_PERFORMANCE_CONSIDERATIONS.ipynb b/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/9-DIRECT_DETECTION_RECEIVER_PERFORMANCE_CONSIDERATIONS.ipynb new file mode 100644 index 0000000..e8657d0 --- /dev/null +++ b/Optical_Fiber_Communications_Principles_And_Practice_by_J_M_Senior/9-DIRECT_DETECTION_RECEIVER_PERFORMANCE_CONSIDERATIONS.ipynb @@ -0,0 +1,410 @@ +{ +"cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 9: DIRECT DETECTION RECEIVER PERFORMANCE CONSIDERATIONS" + ] + }, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9.1: EX9_1.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 9.1\n", +"//Note: MAXIMA SCILAB TOOLBOX REQUIRED FOR THIS PROGRAM\n", +"//Program to determine:\n", +"//(a)The theoretical quantum limit at the receiver in terms of quantum\n", +"//efficiency and energy of incident photon\n", +"//(b)The minimum incident optical power\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"syms h f eeta;\n", +"\n", +"//(a)The theoretical quantum limit at the receiver in terms of quantum\n", +"//efficiency and energy og incident photon\n", +"BER=10^(-9); //BIT ERROR RATE\n", +"z_min=-log(BER)\n", +"E_min=z_min*h*f/eeta;\n", +"disp(E_min,'(a)The theoretical quantum limit at the receiver in terms of quantum efficiency and energy of incident photon is =');\n", +"printf(' which is equivalent to %0.1f h*f/eeta.',z_min);\n", +"\n", +"//(b)The minimum incident optical power\n", +"h1= 6.626*10^(-34); //J/K - PLANK's CONSTANT\n", +"f1=2.998*10^14; //Hz - FREQUENCY\n", +"Bt=10*10^6; //bit/s - SIGNALING RATE\n", +"eeta1=1; //*100 percent - QUANTUM EFFICIENCY\n", +"Po_binary=z_min*h1*f1*Bt/(2*eeta1);\n", +"Po=10*log10(Po_binary/10^(-3));\n", +"printf('\n\n (b)The minimum incident optical power is %0.1f pW or %0.1f dBm.',Po_binary/10^(-12),Po);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9.2: Calculation_of_incident_optical_power_to_achieve_given_SNR.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 9.2\n", +"//Program to calculate incident optical power to achieve given SNR\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"SNR=50; //dB - SIGNAL TO NOISE RATIO GIVEN\n", +"h= 6.626*10^(-34); //J/K - PLANK's CONSTANT\n", +"Lambda=1*10^(-6); //metre - OPERATING WAVELENGTH\n", +"c=2.998*10^8; //m/s - VELOCITY OF LIGHT IN VACCUM\n", +"B=5*10^6; //MHz - POST DETECTION BANDWIDTH\n", +"eeta=1; //*100 percent - QUANTUM EFFICIENCY\n", +"\n", +"//Incident optical power to achieve given SNR\n", +"Po=2*h*c*B*10^(SNR/10)/(eeta*Lambda);\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n The incident optical power is %0.1f nW or %0.1f dBm.',Po/10^(-9),10*log10(Po/10^(-3)));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9.3: EX9_3.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 9.3\n", +"//Program to compare the shot noise generated in the photodetector \n", +"//with the thermal noise in the load resistor\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"Id=3*10^(-9); //A - DARK CURRENT\n", +"e=1.602*10^(-19); //Coulumbs - CHARGE OF AN ELECTRON\n", +"h= 6.626*10^(-34); //J/K - PLANK's CONSTANT\n", +"Lambda=0.9*10^(-6); //metre - OPERATING WAVELENGTH\n", +"c=2.998*10^8; //m/s - VELOCITY OF LIGHT IN VACCUM\n", +"eeta=0.6; //*100 percent - QUANTUM EFFICIENCY\n", +"Po=200*10^(-9); //Watt- INCIDENT OPTICAL POWER\n", +"k=1.381*10^(-23); //m^2 kg/s - BOLTZMANN's CONSTANT\n", +"T=293; //Kelvin - TEMPERATURE\n", +"B=5*10^6; //Hz - BANDWIDTH OF RECEIVER\n", +"Rl=4*10^3; //Ohms - LOAD RESISTANCE\n", +"\n", +"//RMS shot noise current\n", +"Ip=eeta*Po*e*Lambda/(h*c);\n", +"Shot_noise_current=sqrt(2*e*B*(Id+Ip));\n", +"\n", +"//RMS thermal noise current\n", +"Thermal_noise_current=sqrt(4*k*T*B/Rl);\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n RMS shot noise current = %0.3f X 10^(-10) A.',Shot_noise_current/10^(-10));\n", +"printf('\n\n RMS thermal noise current = %0.3f X 10^(-9) A.',Thermal_noise_current/10^(-9));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9.4: Determination_of_SNR_at_the_output_of_the_receiver.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 9.4\n", +"//Program to determine SNR at the output of the receiver\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"Id=3*10^(-9); //A - DARK CURRENT\n", +"e=1.602*10^(-19); //Coulumbs - CHARGE OF AN ELECTRON\n", +"h= 6.626*10^(-34); //J/K - PLANK's CONSTANT\n", +"Lambda=0.9*10^(-6); //metre - OPERATING WAVELENGTH\n", +"c=2.998*10^8; //m/s - VELOCITY OF LIGHT IN VACCUM\n", +"eeta=0.6; //*100 percent - QUANTUM EFFICIENCY\n", +"Po=200*10^(-9); //Watt- INCIDENT OPTICAL POWER\n", +"k=1.381*10^(-23); //m^2 kg/s - BOLTZMANN's CONSTANT\n", +"T=293; //Kelvin - TEMPERATURE\n", +"B=5*10^6; //Hz - BANDWIDTH OF RECEIVER\n", +"Rl=4*10^3; //Ohms - LOAD RESISTANCE\n", +"Fn=3; //dB - AMPLIFIER NOISE FIGURE\n", +"\n", +"//RMS shot noise current\n", +"Ip=eeta*Po*e*Lambda/(h*c);\n", +"Shot_noise_current=sqrt(2*e*B*(Id+Ip));\n", +"//RMS thermal noise current\n", +"Thermal_noise_current=sqrt(4*k*T*B/Rl);\n", +"\n", +"//SNR Calculation\n", +"SNR=Ip^2/(Shot_noise_current^2+Thermal_noise_current^2*10^(Fn/10));\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n SNR = %0.2f dB.',10*log10(SNR));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9.5: EX9_5.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 9.5\n", +"//Program to:\n", +"//(i)Calculate Maximum Load Resistance\n", +"//(ii)Determine Bandwidth Penalty considering amplifier capacitance\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"Cd=6*10^(-12); //Farad - PHOTODIODE CAPACITANCE\n", +"Ca=6*10^(-12); //Farad - AMPLIFIER INPUT CAPACITANCE\n", +"B=8*10^6; //Hz - POST DETECTION BANDWIDTH\n", +"\n", +"//(i)Maximum Load Resistance\n", +"Rl=1/(2*%pi*Cd*B);\n", +"\n", +"//(ii)Maximum Bandwidth considering amplifier capacitance \n", +"Bm=1/(2*%pi*Rl*(Cd+Ca));\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('\n\n\t (i)Maximum Load Resistance, Rl(max) = %0.2f kiloOhms.',Rl/10^3);\n", +"printf('\n\n\t(ii)Maximum Bandwidth considering amplifier capacitance, B = %1.0f MHz.',Bm/10^6);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9.6: Determination_of_the_maximum_SNR_improvement.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 9.6\n", +"//Program to determine the maximum SNR improvement between \n", +"//M=1 and M=Mop\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"Cd=5*10^(-12); //Farad - APD CAPACITANCE\n", +"B=50*10^6; //Hz - POST DETECTION BANDWIDTH\n", +"T=291; //Kelvin - TEMPERATURE\n", +"k=1.381*10^(-23); //m^2 kg/s - BOLTZMANN's CONSTANT\n", +"Id=0; //A - DARK CURRENT\n", +"x=0.3;\n", +"Fn=1; //dB - AMPLIFIER NOISE FIGURE\n", +"e=1.602*10^(-19); //Coulumbs - CHARGE OF AN ELECTRON\n", +"Ip=10^(-7); //A - PHOTOCURRENT\n", +"\n", +"//Maximum Load Resistance\n", +"Rl=1/(2*%pi*Cd*B);\n", +"\n", +"//For M=1\n", +"M=1\n", +"SNR1=Ip^2*M^2/(2*e*B*(Ip+Id)*M^(2+x)+4*k*T*B*Fn/Rl); \n", +"//Displaying the Result in Command Window\n", +"printf('\n\n For M = 1, SNR = %0.2f dB.',10*log10(SNR1));\n", +"\n", +"//For M=Mop\n", +"Mop=(4*k*T/(x*e*Rl*Ip))^(1/(2+x));\n", +"M=Mop;\n", +"SNR2=Ip^2*M^2/(2*e*B*(Ip+Id)*M^(2+x)+4*k*T*B*Fn/Rl); \n", +"//Displaying the Result in Command Window\n", +"printf('\n\n For M = Mopt, SNR = %0.2f dB.',10*log10(SNR2));\n", +"printf('\n\n SNR Improvement = %0.2f dB.',10*log10(SNR2)-10*log10(SNR1));" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9.7: Determination_of_the_optimum_avalanche_multiplication_factor.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 9.7\n", +"//Program to determine the optimum avalanche multiplication factor\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"Rl=10*10^3; //Ohms - LOAD RESISTANCE\n", +"T=120; //Kelvin - TEMPERATURE\n", +"SNR=35; //dB - SIGNAL TO NOISE RATIO\n", +"Fn=1; //dB - AMPLIFIER NOISE FIGURE\n", +"B=10*10^6; //Hz - POST DETECTION BANDWIDTH\n", +"x=1;\n", +"k=1.381*10^(-23); //m^2 kg/s - BOLTZMANN's CONSTANT\n", +"e=1.602*10^(-19); //Coulumbs - CHARGE OF AN ELECTRON\n", +"\n", +"//As Ip=10*Id, Minimum Photo Current\n", +"Ip=(10^(SNR/10)*(12*k*T*B*10^(Fn/10)/Rl)/(4*k*T*10^(Fn/10)/(1.1*e*Rl))^(2/(2+x)))^(3/4);\n", +" \n", +"//Optimum avalanche multiplication factor\n", +"Mop=(4*k*T*10^(Fn/10)/(e*Rl/10*1.1*Ip))^(1/(2+x));\n", +"\n", +"//Displaying the Result in Command Window\n", +"printf('\n\n Optimum avalanche multiplication factor, Mop = %0.2f.',Mop);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9.8: EX9_8.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 9.8\n", +"//Program to determine:\n", +"//(a)Maximum bandwidth without equilization\n", +"//(b)Mean square thermal noise current per unit bandwidth\n", +"//(c)(Compare (a) and (b) for transimpedance amplifier\n", +"\n", +"clear;\n", +"clc ;\n", +"close ;\n", +"\n", +"//Given data\n", +"Ra=4*10^6; //Ohms - INPUT RESISTANCE\n", +"Rb=4*10^6; //Ohms - DETECTOR BIAS RESISTANCE\n", +"Ct=6*10^(-12); //Farad - TOTAL CAPACITANCE\n", +"k=1.381*10^(-23); //m^2 kg/s - BOLTZMANN's CONSTANT\n", +"T=300; //Kelvin - TEMPERATURE\n", +"Rf=100*10^3; //Ohms - LOAD RESISTANCE\n", +"G=400; //OPEN LOOP GAIN OF TRANSIMPEDANCE AMP.\n", +"\n", +"//Total effective load resistance\n", +"Rtl=Rb*Ra/(Rb+Ra);\n", +"\n", +"//(a)Maximum bandwidth without equilization\n", +"B=1/(2*%pi*Rtl*Ct)\n", +"\n", +"//(b)Mean square thermal noise current per unit bandwidth\n", +"it_sq_bar=4*k*T/Rtl;\n", +"\n", +"//(c)(Compare (a) and (b) for transimpedance amplifier\n", +"B1=G/(2*%pi*Rf*Ct)\n", +"it_sq_bar1=4*k*T/Rf;\n", +"\n", +"//Displaying the Results in Command Window\n", +"printf('For High Gain Transimpedance Amplifier:')\n", +"printf('\n\n (a)Maximum bandwidth without equilization, B = %0.2f X 10^4 Hz.',B/10^4);\n", +"printf('\n\n (b)Mean square thermal noise current per unit bandwidth, it_sq_bar = %0.2f X 10^(-27) A^2/Hz.',it_sq_bar/10^(-27));\n", +"printf('\n\n (c)For High Gain Transimpedance Amplifier:')\n", +"printf('\n\n Maximum bandwidth without equilization, B = %0.2f X 10^8 Hz.',B1/10^8);\n", +"printf('\n\n Mean square thermal noise current per unit bandwidth, it_sq_bar = %0.2f X 10^(-25) A^2/Hz.',it_sq_bar1/10^(-25));\n", +"printf('\n\n Mean square thermal noise current for transimpedance amplifier is %1.0f times or %1.0f dB greater.',it_sq_bar1/it_sq_bar,10*log10(it_sq_bar1/it_sq_bar));" + ] + } +], +"metadata": { + "kernelspec": { + "display_name": "Scilab", + "language": "scilab", + "name": "scilab" + }, + "language_info": { + "file_extension": ".sce", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "scilab", + "version": "0.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} |