summaryrefslogtreecommitdiff
path: root/Electronic_Communication_Systems_by_Roy_Blake/Chapter25.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'Electronic_Communication_Systems_by_Roy_Blake/Chapter25.ipynb')
-rw-r--r--Electronic_Communication_Systems_by_Roy_Blake/Chapter25.ipynb245
1 files changed, 245 insertions, 0 deletions
diff --git a/Electronic_Communication_Systems_by_Roy_Blake/Chapter25.ipynb b/Electronic_Communication_Systems_by_Roy_Blake/Chapter25.ipynb
new file mode 100644
index 00000000..00dafb1b
--- /dev/null
+++ b/Electronic_Communication_Systems_by_Roy_Blake/Chapter25.ipynb
@@ -0,0 +1,245 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 25 : Fiber Optic Systems"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 1 : pg 919"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The system margin is 7.011 dB\n"
+ ]
+ }
+ ],
+ "source": [
+ " \n",
+ "# page no 919\n",
+ "# prob no 25_1\n",
+ "#calculate the system margin\n",
+ "#given\n",
+ "from math import log10\n",
+ "span_length = 40#in km\n",
+ "Pin_mW = 1.5\n",
+ "signal_strength_dBm = -25\n",
+ "fiber_length = 2.5#in km\n",
+ "loss_per_slice_dB = 0.25\n",
+ "f_loss_dB_per_km = 0.3\n",
+ "loss_connector_dB = 4\n",
+ "#calculations\n",
+ "Pin_dBm = 10 * log10(Pin_mW)\n",
+ "splices = span_length / fiber_length - 1\n",
+ "fiber_loss = span_length * f_loss_dB_per_km\n",
+ "splice_loss = splices * loss_per_slice_dB\n",
+ "T_loss = fiber_loss + splice_loss + loss_connector_dB\n",
+ "P_out = Pin_dBm - T_loss\n",
+ "sys_margin = P_out - signal_strength_dBm\n",
+ "#results\n",
+ "print 'The system margin is',round(sys_margin,3),'dB'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2 : pg 921"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The maximum permissible value for the pulse-spreading constant is 2.22 ns/km\n"
+ ]
+ }
+ ],
+ "source": [
+ " \n",
+ "# page no 921\n",
+ "# prob no 25_2\n",
+ "#calculate the max permissible value\n",
+ "#given\n",
+ "L=45;#in km\n",
+ "dt=100.;#in ns\n",
+ "#calculations\n",
+ "#The maximum permissible value for the pulse-spreading constant is \n",
+ "D=dt/L;\n",
+ "#results\n",
+ "print 'The maximum permissible value for the pulse-spreading constant is',round(D,2),'ns/km'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3 : pg 922"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "a) The maximum bit rate for NRZ 0.00743 GHz\n",
+ "b) The maximum bit rate for NRZ 0.00371 GHz\n"
+ ]
+ }
+ ],
+ "source": [
+ " \n",
+ "# page no 922\n",
+ "# prob no 25_3\n",
+ "#calculate the max bitrate in both cases#given\n",
+ "#given\n",
+ "from math import sqrt\n",
+ "L=45.;\n",
+ "T_Rtx=50.; T_Rrx=75.; T_Rf=100.;\n",
+ "#calculations and results\n",
+ "T_RT=sqrt(T_Rtx**2 + T_Rrx**2 + T_Rf**2);\n",
+ "# a) for NRZ\n",
+ "fb=1/T_RT;\n",
+ "print 'a) The maximum bit rate for NRZ',round(fb,5),'GHz'\n",
+ "# b) for RZ\n",
+ "fb=1/(2*T_RT);\n",
+ "print 'b) The maximum bit rate for NRZ',round(fb,5),'GHz'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4 : pg 924"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Dispersion is 1.0 ns/km\n",
+ "Total rise time is 5.0 ns\n"
+ ]
+ }
+ ],
+ "source": [
+ " \n",
+ "# page no 924\n",
+ "# prob no 25_4\n",
+ "#calculate the total rise time and dispersion\n",
+ "#given\n",
+ "Bl=500.;#in MHz-km\n",
+ "L=5.;#in km\n",
+ "#calculations and results\n",
+ "# using the bandwidth-distance product formula dispersion is given as\n",
+ "D=500/Bl;\n",
+ "print 'Dispersion is',D,'ns/km'\n",
+ "# Total rise time is given as\n",
+ "T_rt= D*L;\n",
+ "print 'Total rise time is',T_rt,'ns'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5 : pg 924"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The maximum acceptable dispersion is 0.139 ns/km\n",
+ "The bandwidth-distance product is 3608.439 MHz-km\n"
+ ]
+ }
+ ],
+ "source": [
+ " \n",
+ "# page no 924\n",
+ "# prob no 25_5\n",
+ "#calculate the max acceptable dispersion and bandwidth-distance product\n",
+ "#given\n",
+ "from math import sqrt\n",
+ "T_Rrx=3.*10**-9;\n",
+ "T_Rtx=2.*10**-9;\n",
+ "fb=100.*10**6;#in bps\n",
+ "L=25;#in km\n",
+ "#calculations and results\n",
+ "T_RT = 1/(2*fb)\n",
+ "# we have to compute rise time therefore\n",
+ "T_rf= sqrt(T_RT**2 - T_Rtx**2 - T_Rrx**2)\n",
+ "# dispersion per km is\n",
+ "D= T_rf/L;\n",
+ "print 'The maximum acceptable dispersion is',round(D/10**-9,3),'ns/km'\n",
+ "# using the bandwidth-distance product\n",
+ "Bl=500/D;\n",
+ "print 'The bandwidth-distance product is',round(Bl*10**-9,3),'MHz-km'"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.11"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}