summaryrefslogtreecommitdiff
path: root/401/CH9
diff options
context:
space:
mode:
Diffstat (limited to '401/CH9')
-rwxr-xr-x401/CH9/EX9.1/Example9_1.sce29
-rwxr-xr-x401/CH9/EX9.2/Example9_2.sce20
-rwxr-xr-x401/CH9/EX9.3/Example9_3.sce31
-rwxr-xr-x401/CH9/EX9.4/Example9_4.sce32
-rwxr-xr-x401/CH9/EX9.5/Example9_5.sce23
-rwxr-xr-x401/CH9/EX9.6/Example9_6.sce35
-rwxr-xr-x401/CH9/EX9.7/Example9_7.sce25
-rwxr-xr-x401/CH9/EX9.8/Example9_8.sce40
8 files changed, 235 insertions, 0 deletions
diff --git a/401/CH9/EX9.1/Example9_1.sce b/401/CH9/EX9.1/Example9_1.sce
new file mode 100755
index 000000000..564b09bc2
--- /dev/null
+++ b/401/CH9/EX9.1/Example9_1.sce
@@ -0,0 +1,29 @@
+//Example 9.1
+//Note: MAXIMA SCILAB TOOLBOX REQUIRED FOR THIS PROGRAM
+//Program to determine:
+//(a)The theoretical quantum limit at the receiver in terms of quantum
+//efficiency and energy of incident photon
+//(b)The minimum incident optical power
+
+clear;
+clc ;
+close ;
+
+syms h f eeta;
+
+//(a)The theoretical quantum limit at the receiver in terms of quantum
+//efficiency and energy og incident photon
+BER=10^(-9); //BIT ERROR RATE
+z_min=-log(BER)
+E_min=z_min*h*f/eeta;
+disp(E_min,"(a)The theoretical quantum limit at the receiver in terms of quantum efficiency and energy of incident photon is =");
+printf(" which is equivalent to %0.1f h*f/eeta.",z_min);
+
+//(b)The minimum incident optical power
+h1= 6.626*10^(-34); //J/K - PLANK's CONSTANT
+f1=2.998*10^14; //Hz - FREQUENCY
+Bt=10*10^6; //bit/s - SIGNALING RATE
+eeta1=1; //*100 percent - QUANTUM EFFICIENCY
+Po_binary=z_min*h1*f1*Bt/(2*eeta1);
+Po=10*log10(Po_binary/10^(-3));
+printf("\n\n (b)The minimum incident optical power is %0.1f pW or %0.1f dBm.",Po_binary/10^(-12),Po); \ No newline at end of file
diff --git a/401/CH9/EX9.2/Example9_2.sce b/401/CH9/EX9.2/Example9_2.sce
new file mode 100755
index 000000000..a16ca73be
--- /dev/null
+++ b/401/CH9/EX9.2/Example9_2.sce
@@ -0,0 +1,20 @@
+//Example 9.2
+//Program to calculate incident optical power to achieve given SNR
+
+clear;
+clc ;
+close ;
+
+//Given data
+SNR=50; //dB - SIGNAL TO NOISE RATIO GIVEN
+h= 6.626*10^(-34); //J/K - PLANK's CONSTANT
+Lambda=1*10^(-6); //metre - OPERATING WAVELENGTH
+c=2.998*10^8; //m/s - VELOCITY OF LIGHT IN VACCUM
+B=5*10^6; //MHz - POST DETECTION BANDWIDTH
+eeta=1; //*100 percent - QUANTUM EFFICIENCY
+
+//Incident optical power to achieve given SNR
+Po=2*h*c*B*10^(SNR/10)/(eeta*Lambda);
+
+//Displaying the Result in Command Window
+printf("\n\n The incident optical power is %0.1f nW or %0.1f dBm.",Po/10^(-9),10*log10(Po/10^(-3))); \ No newline at end of file
diff --git a/401/CH9/EX9.3/Example9_3.sce b/401/CH9/EX9.3/Example9_3.sce
new file mode 100755
index 000000000..f2cb81770
--- /dev/null
+++ b/401/CH9/EX9.3/Example9_3.sce
@@ -0,0 +1,31 @@
+//Example 9.3
+//Program to compare the shot noise generated in the photodetector
+//with the thermal noise in the load resistor
+
+clear;
+clc ;
+close ;
+
+//Given data
+Id=3*10^(-9); //A - DARK CURRENT
+e=1.602*10^(-19); //Coulumbs - CHARGE OF AN ELECTRON
+h= 6.626*10^(-34); //J/K - PLANK's CONSTANT
+Lambda=0.9*10^(-6); //metre - OPERATING WAVELENGTH
+c=2.998*10^8; //m/s - VELOCITY OF LIGHT IN VACCUM
+eeta=0.6; //*100 percent - QUANTUM EFFICIENCY
+Po=200*10^(-9); //Watt- INCIDENT OPTICAL POWER
+k=1.381*10^(-23); //m^2 kg/s - BOLTZMANN's CONSTANT
+T=293; //Kelvin - TEMPERATURE
+B=5*10^6; //Hz - BANDWIDTH OF RECEIVER
+Rl=4*10^3; //Ohms - LOAD RESISTANCE
+
+//RMS shot noise current
+Ip=eeta*Po*e*Lambda/(h*c);
+Shot_noise_current=sqrt(2*e*B*(Id+Ip));
+
+//RMS thermal noise current
+Thermal_noise_current=sqrt(4*k*T*B/Rl);
+
+//Displaying the Results in Command Window
+printf("\n\n RMS shot noise current = %0.3f X 10^(-10) A.",Shot_noise_current/10^(-10));
+printf("\n\n RMS thermal noise current = %0.3f X 10^(-9) A.",Thermal_noise_current/10^(-9)); \ No newline at end of file
diff --git a/401/CH9/EX9.4/Example9_4.sce b/401/CH9/EX9.4/Example9_4.sce
new file mode 100755
index 000000000..4764481a9
--- /dev/null
+++ b/401/CH9/EX9.4/Example9_4.sce
@@ -0,0 +1,32 @@
+//Example 9.4
+//Program to determine SNR at the output of the receiver
+
+clear;
+clc ;
+close ;
+
+//Given data
+Id=3*10^(-9); //A - DARK CURRENT
+e=1.602*10^(-19); //Coulumbs - CHARGE OF AN ELECTRON
+h= 6.626*10^(-34); //J/K - PLANK's CONSTANT
+Lambda=0.9*10^(-6); //metre - OPERATING WAVELENGTH
+c=2.998*10^8; //m/s - VELOCITY OF LIGHT IN VACCUM
+eeta=0.6; //*100 percent - QUANTUM EFFICIENCY
+Po=200*10^(-9); //Watt- INCIDENT OPTICAL POWER
+k=1.381*10^(-23); //m^2 kg/s - BOLTZMANN's CONSTANT
+T=293; //Kelvin - TEMPERATURE
+B=5*10^6; //Hz - BANDWIDTH OF RECEIVER
+Rl=4*10^3; //Ohms - LOAD RESISTANCE
+Fn=3; //dB - AMPLIFIER NOISE FIGURE
+
+//RMS shot noise current
+Ip=eeta*Po*e*Lambda/(h*c);
+Shot_noise_current=sqrt(2*e*B*(Id+Ip));
+//RMS thermal noise current
+Thermal_noise_current=sqrt(4*k*T*B/Rl);
+
+//SNR Calculation
+SNR=Ip^2/(Shot_noise_current^2+Thermal_noise_current^2*10^(Fn/10));
+
+//Displaying the Result in Command Window
+printf("\n\n SNR = %0.2f dB.",10*log10(SNR)); \ No newline at end of file
diff --git a/401/CH9/EX9.5/Example9_5.sce b/401/CH9/EX9.5/Example9_5.sce
new file mode 100755
index 000000000..cdcbec6f6
--- /dev/null
+++ b/401/CH9/EX9.5/Example9_5.sce
@@ -0,0 +1,23 @@
+//Example 9.5
+//Program to:
+//(i)Calculate Maximum Load Resistance
+//(ii)Determine Bandwidth Penalty considering amplifier capacitance
+
+clear;
+clc ;
+close ;
+
+//Given data
+Cd=6*10^(-12); //Farad - PHOTODIODE CAPACITANCE
+Ca=6*10^(-12); //Farad - AMPLIFIER INPUT CAPACITANCE
+B=8*10^6; //Hz - POST DETECTION BANDWIDTH
+
+//(i)Maximum Load Resistance
+Rl=1/(2*%pi*Cd*B);
+
+//(ii)Maximum Bandwidth considering amplifier capacitance
+Bm=1/(2*%pi*Rl*(Cd+Ca));
+
+//Displaying the Results in Command Window
+printf("\n\n\t (i)Maximum Load Resistance, Rl(max) = %0.2f kiloOhms.",Rl/10^3);
+printf("\n\n\t(ii)Maximum Bandwidth considering amplifier capacitance, B = %1.0f MHz.",Bm/10^6); \ No newline at end of file
diff --git a/401/CH9/EX9.6/Example9_6.sce b/401/CH9/EX9.6/Example9_6.sce
new file mode 100755
index 000000000..d9feae248
--- /dev/null
+++ b/401/CH9/EX9.6/Example9_6.sce
@@ -0,0 +1,35 @@
+//Example 9.6
+//Program to determine the maximum SNR improvement between
+//M=1 and M=Mop
+
+clear;
+clc ;
+close ;
+
+//Given data
+Cd=5*10^(-12); //Farad - APD CAPACITANCE
+B=50*10^6; //Hz - POST DETECTION BANDWIDTH
+T=291; //Kelvin - TEMPERATURE
+k=1.381*10^(-23); //m^2 kg/s - BOLTZMANN's CONSTANT
+Id=0; //A - DARK CURRENT
+x=0.3;
+Fn=1; //dB - AMPLIFIER NOISE FIGURE
+e=1.602*10^(-19); //Coulumbs - CHARGE OF AN ELECTRON
+Ip=10^(-7); //A - PHOTOCURRENT
+
+//Maximum Load Resistance
+Rl=1/(2*%pi*Cd*B);
+
+//For M=1
+M=1
+SNR1=Ip^2*M^2/(2*e*B*(Ip+Id)*M^(2+x)+4*k*T*B*Fn/Rl);
+//Displaying the Result in Command Window
+printf("\n\n For M = 1, SNR = %0.2f dB.",10*log10(SNR1));
+
+//For M=Mop
+Mop=(4*k*T/(x*e*Rl*Ip))^(1/(2+x));
+M=Mop;
+SNR2=Ip^2*M^2/(2*e*B*(Ip+Id)*M^(2+x)+4*k*T*B*Fn/Rl);
+//Displaying the Result in Command Window
+printf("\n\n For M = Mopt, SNR = %0.2f dB.",10*log10(SNR2));
+printf("\n\n SNR Improvement = %0.2f dB.",10*log10(SNR2)-10*log10(SNR1)); \ No newline at end of file
diff --git a/401/CH9/EX9.7/Example9_7.sce b/401/CH9/EX9.7/Example9_7.sce
new file mode 100755
index 000000000..2bfc37563
--- /dev/null
+++ b/401/CH9/EX9.7/Example9_7.sce
@@ -0,0 +1,25 @@
+//Example 9.7
+//Program to determine the optimum avalanche multiplication factor
+
+clear;
+clc ;
+close ;
+
+//Given data
+Rl=10*10^3; //Ohms - LOAD RESISTANCE
+T=120; //Kelvin - TEMPERATURE
+SNR=35; //dB - SIGNAL TO NOISE RATIO
+Fn=1; //dB - AMPLIFIER NOISE FIGURE
+B=10*10^6; //Hz - POST DETECTION BANDWIDTH
+x=1;
+k=1.381*10^(-23); //m^2 kg/s - BOLTZMANN's CONSTANT
+e=1.602*10^(-19); //Coulumbs - CHARGE OF AN ELECTRON
+
+//As Ip=10*Id, Minimum Photo Current
+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);
+
+//Optimum avalanche multiplication factor
+Mop=(4*k*T*10^(Fn/10)/(e*Rl/10*1.1*Ip))^(1/(2+x));
+
+//Displaying the Result in Command Window
+printf("\n\n Optimum avalanche multiplication factor, Mop = %0.2f.",Mop); \ No newline at end of file
diff --git a/401/CH9/EX9.8/Example9_8.sce b/401/CH9/EX9.8/Example9_8.sce
new file mode 100755
index 000000000..c931f9149
--- /dev/null
+++ b/401/CH9/EX9.8/Example9_8.sce
@@ -0,0 +1,40 @@
+//Example 9.8
+//Program to determine:
+//(a)Maximum bandwidth without equilization
+//(b)Mean square thermal noise current per unit bandwidth
+//(c)(Compare (a) and (b) for transimpedance amplifier
+
+clear;
+clc ;
+close ;
+
+//Given data
+Ra=4*10^6; //Ohms - INPUT RESISTANCE
+Rb=4*10^6; //Ohms - DETECTOR BIAS RESISTANCE
+Ct=6*10^(-12); //Farad - TOTAL CAPACITANCE
+k=1.381*10^(-23); //m^2 kg/s - BOLTZMANN's CONSTANT
+T=300; //Kelvin - TEMPERATURE
+Rf=100*10^3; //Ohms - LOAD RESISTANCE
+G=400; //OPEN LOOP GAIN OF TRANSIMPEDANCE AMP.
+
+//Total effective load resistance
+Rtl=Rb*Ra/(Rb+Ra);
+
+//(a)Maximum bandwidth without equilization
+B=1/(2*%pi*Rtl*Ct)
+
+//(b)Mean square thermal noise current per unit bandwidth
+it_sq_bar=4*k*T/Rtl;
+
+//(c)(Compare (a) and (b) for transimpedance amplifier
+B1=G/(2*%pi*Rf*Ct)
+it_sq_bar1=4*k*T/Rf;
+
+//Displaying the Results in Command Window
+printf("For High Gain Transimpedance Amplifier:")
+printf("\n\n (a)Maximum bandwidth without equilization, B = %0.2f X 10^4 Hz.",B/10^4);
+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));
+printf("\n\n (c)For High Gain Transimpedance Amplifier:")
+printf("\n\n Maximum bandwidth without equilization, B = %0.2f X 10^8 Hz.",B1/10^8);
+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));
+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)); \ No newline at end of file