summaryrefslogtreecommitdiff
path: root/Electronic_Devices
diff options
context:
space:
mode:
authorJovina Dsouza2014-07-07 16:34:28 +0530
committerJovina Dsouza2014-07-07 16:34:28 +0530
commitfffcc90da91b66ee607066d410b57f34024bd1de (patch)
tree7b8011d61013305e0bf7794a275706abd1fdb0d3 /Electronic_Devices
parent299711403e92ffa94a643fbd960c6f879639302c (diff)
downloadPython-Textbook-Companions-fffcc90da91b66ee607066d410b57f34024bd1de.tar.gz
Python-Textbook-Companions-fffcc90da91b66ee607066d410b57f34024bd1de.tar.bz2
Python-Textbook-Companions-fffcc90da91b66ee607066d410b57f34024bd1de.zip
adding book
Diffstat (limited to 'Electronic_Devices')
-rwxr-xr-xElectronic_Devices/Chapter1.ipynb156
-rwxr-xr-xElectronic_Devices/Chapter10.ipynb740
-rwxr-xr-xElectronic_Devices/Chapter11.ipynb172
-rwxr-xr-xElectronic_Devices/Chapter12.ipynb458
-rwxr-xr-xElectronic_Devices/Chapter13.ipynb580
-rwxr-xr-xElectronic_Devices/Chapter14.ipynb346
-rwxr-xr-xElectronic_Devices/Chapter15.ipynb325
-rwxr-xr-xElectronic_Devices/Chapter16.ipynb299
-rwxr-xr-xElectronic_Devices/Chapter17.ipynb336
-rwxr-xr-xElectronic_Devices/Chapter18.ipynb56
-rwxr-xr-xElectronic_Devices/Chapter2.ipynb629
-rwxr-xr-xElectronic_Devices/Chapter3.ipynb369
-rwxr-xr-xElectronic_Devices/Chapter4.ipynb446
-rwxr-xr-xElectronic_Devices/Chapter5.ipynb419
-rwxr-xr-xElectronic_Devices/Chapter6.ipynb591
-rwxr-xr-xElectronic_Devices/Chapter7.ipynb710
-rwxr-xr-xElectronic_Devices/Chapter8.ipynb422
-rwxr-xr-xElectronic_Devices/Chapter9.ipynb371
-rwxr-xr-xElectronic_Devices/README.txt10
-rwxr-xr-xElectronic_Devices/screenshots/ipwaveform.pngbin0 -> 14612 bytes
-rwxr-xr-xElectronic_Devices/screenshots/modulatedopvoltage.pngbin0 -> 24301 bytes
-rwxr-xr-xElectronic_Devices/screenshots/transfercharectercurve.pngbin0 -> 12968 bytes
22 files changed, 7435 insertions, 0 deletions
diff --git a/Electronic_Devices/Chapter1.ipynb b/Electronic_Devices/Chapter1.ipynb
new file mode 100755
index 00000000..a4646948
--- /dev/null
+++ b/Electronic_Devices/Chapter1.ipynb
@@ -0,0 +1,156 @@
+{
+ "metadata": {
+ "name": "Chapter_1"
+ },
+ "nbformat": 2,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h1>Chapter 1: Semiconductor Basics<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 1.1(a), Page Number:29<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "V_bias=10.0; #bias voltage in volt",
+ "R_limit=1000; #limiting resistance in ohm",
+ "r_d =10.0; #r_d value",
+ "",
+ "#calculation",
+ "#IDEAL MODEL",
+ "print \"IDEAL MODEL\"",
+ "V_f=0; #voltage in volt",
+ "I_f=V_bias/R_limit; #foward current",
+ "V_R_limit=I_f*R_limit; #limiting voltage",
+ "print \"forward voltage = %.2f volts\" %V_f",
+ "print \"forward current = %.2f amperes\" %I_f",
+ "print \"voltage across limiting resistor = %.2f volts\" %V_R_limit",
+ "",
+ "#PRACTICAL MODEL",
+ "print \"\\nPRACTICAL MODEL\"",
+ "V_f=0.7; #voltage in volt",
+ "I_f=(V_bias-V_f)/R_limit; #foward current",
+ "V_R_limit=I_f*R_limit; #limiting voltage",
+ "print \"forward voltage = %.2f volts\" %V_f",
+ "print \"forward current = %.3f amperes\" %I_f",
+ "print \"voltage across limiting resistor = %.2f volts\" %V_R_limit",
+ "",
+ "#COMPLETE MODEL",
+ "print \"\\nCOMPLETE MODEL\"",
+ "I_f=(V_bias-0.7)/(R_limit+r_d); #foward current",
+ "V_f=0.7+I_f*r_d; #forward voltage",
+ "V_R_limit=I_f*R_limit; #limiting voltage",
+ "print \"forward voltage = %.3f volts\" %V_f",
+ "print \"forward current = %.3f amperes\" %I_f",
+ "print \"voltage across limiting resistor = %.2f volts\" %V_R_limit"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "IDEAL MODEL",
+ "forward voltage = 0.00 volts",
+ "forward current = 0.01 amperes",
+ "voltage across limiting resistor = 10.00 volts",
+ "",
+ "PRACTICAL MODEL",
+ "forward voltage = 0.70 volts",
+ "forward current = 0.009 amperes",
+ "voltage across limiting resistor = 9.30 volts",
+ "",
+ "COMPLETE MODEL",
+ "forward voltage = 0.792 volts",
+ "forward current = 0.009 amperes",
+ "voltage across limiting resistor = 9.21 volts"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 1.1(b), Page Number:29<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "V_bias=5; #bias voltage in volt",
+ "I_R=1*10**-6; #current",
+ "R_limit=1000 #in Ohm",
+ "",
+ "#calculation",
+ "#IDEAL MODEL",
+ "print \"IDEAL MODEL\"",
+ "I_r=0.0; #current in ampere",
+ "V_R=V_bias; #voltages are equal",
+ "V_R_limit=I_r*R_limit; #limiting voltage",
+ "print \"Reverse voltage across diode = %.2f volts\" %V_R",
+ "print \"Reverse current through diode= %.2f amperes\" %I_r",
+ "print \"voltage across limiting resistor = %.2f volts\" %V_R_limit",
+ "",
+ "#PRACTICAL MODEL",
+ "print \"\\nPRACTICAL MODEL\"",
+ "I_r=0.0; #current in ampere",
+ "V_R=V_bias; #voltages are equal",
+ "V_R_limit=I_r*R_limit; #limiting voltage",
+ "print \"Reverse voltage across diode= %.2f volts\" %V_R",
+ "print \"Reverse current through diode = %.2f amperes\" %I_r",
+ "print \"voltage across limiting resistor = %.2f volts\" %V_R_limit",
+ "",
+ "#COMPLETE MODEL",
+ "print \"\\nCOMPLETE MODEL\"",
+ "I_r=I_R; #current in ampere",
+ "V_R_limit=I_r*R_limit; #limiting voltage",
+ "V_R=V_bias-V_R_limit; #voltage in volt",
+ "print \"Reverse voltage across diode = %.3f volts\" %V_R",
+ "print \"Reverse current through diode = %d micro Amp\" %(I_r*10**6)",
+ "print \"voltage across limiting resistor = %d mV\" %(V_R_limit*1000)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "IDEAL MODEL",
+ "Reverse voltage across diode = 5.00 volts",
+ "Reverse current through diode= 0.00 amperes",
+ "voltage across limiting resistor = 0.00 volts",
+ "",
+ "PRACTICAL MODEL",
+ "Reverse voltage across diode= 5.00 volts",
+ "Reverse current through diode = 0.00 amperes",
+ "voltage across limiting resistor = 0.00 volts",
+ "",
+ "COMPLETE MODEL",
+ "Reverse voltage across diode = 4.999 volts",
+ "Reverse current through diode = 1 micro Amp",
+ "voltage across limiting resistor = 1 mV"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices/Chapter10.ipynb b/Electronic_Devices/Chapter10.ipynb
new file mode 100755
index 00000000..ad380243
--- /dev/null
+++ b/Electronic_Devices/Chapter10.ipynb
@@ -0,0 +1,740 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:46b495ee163997b315e5d2a4308b2429d2950dd9bb4f2a5562e7098cc144cbec"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1>Chapter 10: Amplifier Frequency Response<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.1, Page Number: 311<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math\n",
+ "\n",
+ "A_p=250.0\n",
+ "A_p_dB=10*math.log10(A_p)\n",
+ "print('Power gain(dB) when power gain is 250 = %d'% math.ceil(A_p_dB));\n",
+ "A_p=100.0\n",
+ "A_p_dB=10*math.log10(A_p)\n",
+ "print('Power gain(dB) when power gain is 100 = %d'%A_p_dB)\n",
+ "A_p=10.0\n",
+ "A_p_dB=20*math.log10(A_p)\n",
+ "print('Voltage gain(dB) when Voltage gain is 10 = %d'%A_p_dB)\n",
+ "A_p=0.50\n",
+ "A_p_dB=10*math.log10(A_p)\n",
+ "print('Power gain(dB) when voltage gain is 0.50 = %d'%A_p_dB)\n",
+ "A_p=0.707\n",
+ "A_p_dB=20*math.log10(A_p)\n",
+ "print('Power gain(dB) when power gain is 0.707 = %d'%A_p_dB)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power gain(dB) when power gain is 250 = 24\n",
+ "Power gain(dB) when power gain is 100 = 20\n",
+ "Voltage gain(dB) when Voltage gain is 10 = 20\n",
+ "Power gain(dB) when voltage gain is 0.50 = -3\n",
+ "Power gain(dB) when power gain is 0.707 = -3"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.2, Page Number: 313<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "\n",
+ "v_out=0.707*10;\n",
+ "print('output voltage in volts at -3dB gain = %.2f'%v_out)\n",
+ "#at -6dB voltage gain from table is 0.5\n",
+ "v_out=0.5*10;\n",
+ "print('output voltage in volts at -6dB gain = %d'%v_out)\n",
+ "#at -12dB voltage gain from table is 0.25\n",
+ "v_out=0.25*10;\n",
+ "print('output voltage in volts at -12dB gain = %.1f'%v_out)\n",
+ "#at -24dB voltage gain from table is 0.0625\n",
+ "v_out=0.0625*10;\n",
+ "print('output voltage in volts at -24dB gain = %.3f'%v_out)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "output voltage in volts at -3dB gain = 7.07\n",
+ "output voltage in volts at -6dB gain = 5\n",
+ "output voltage in volts at -12dB gain = 2.5\n",
+ "output voltage in volts at -24dB gain = 0.625"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.3, Page Number: 316<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math\n",
+ "R_in=1.0*10**3;\n",
+ "C1=1.0*10**-6;\n",
+ "A_v_mid=100.0; #mid range voltage gain\n",
+ "f_c=1/(2*math.pi*R_in*C1);\n",
+ "#at f_c, capacitive reactance is equal to resistance(X_C1=R_in)\n",
+ "attenuation=0.707;\n",
+ "#A_v is gain at lower critical frequency\n",
+ "A_v=0.707*A_v_mid;\n",
+ "print('lower critical frequency = %f Hz'%f_c)\n",
+ "print('attenuation at lower critical frequency =%.3f'%attenuation)\n",
+ "print('gain at lower critical frequency = %.1f'%A_v)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lower critical frequency = 159.154943 Hz\n",
+ "attenuation at lower critical frequency =0.707\n",
+ "gain at lower critical frequency = 70.7"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.4, Page Number: 317<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "A_v_mid=100.0;\n",
+ "#At 1Hz frequency,voltage gain is 3 dB less than at midrange. At -3dB, the voltage is reduced by a factor of 0.707\n",
+ "A_v=0.707*A_v_mid;\n",
+ "print('actual voltage gain at 1Hz frequency = %.1f'%A_v)\n",
+ "#At 100Hz frequency,voltage gain is 20 dB less than at critical frequency (f_c ). At -20dB, the voltage is reduced by a factor of 0.1\n",
+ "A_v=0.1*A_v_mid;\n",
+ "print('actual voltage gain at 100Hz frequency = %d'%A_v)\n",
+ "#At 10Hz frequency,voltage gain is 40 dB less than at critical frequency (f_c). At -40dB, the voltage is reduced by a factor of 0.01\n",
+ "A_v=0.01*A_v_mid;\n",
+ "print('actual voltage gain at 10Hz frequency = %d'%A_v)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "actual voltage gain at 1Hz frequency = 70.7\n",
+ "actual voltage gain at 100Hz frequency = 10\n",
+ "actual voltage gain at 10Hz frequency = 1"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.5, Page Number: 319<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math\n",
+ "R_C=10.0*10**3;\n",
+ "C3=0.1*10**-6;\n",
+ "R_L=10*10**3;\n",
+ "A_v_mid=50;\n",
+ "f_c=1/(2*math.pi*(R_L+R_C)*C3);\n",
+ "print('lower critical frequency = %f Hz'%f_c)\n",
+ "#at midrange capacitive reactance is zero\n",
+ "X_C3=0;\n",
+ "attenuation=R_L/(R_L+R_C); \n",
+ "print('attenuation at midrange frequency = %.1f'%attenuation)\n",
+ "#at critical frequency, capacitive reactance equals total resistance\n",
+ "X_C3=R_L+R_C;\n",
+ "attenuation=R_L/(math.sqrt((R_C+R_L)**2+X_C3**2));\n",
+ "print('attenuation at critical frequency = %f'%attenuation)\n",
+ "A_v=0.707*A_v_mid;\n",
+ "print('gain at critical frequency = %.2f'%A_v)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lower critical frequency = 79.577472 Hz\n",
+ "attenuation at midrange frequency = 0.5\n",
+ "attenuation at critical frequency = 0.353553\n",
+ "gain at critical frequency = 35.35"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.6, Page Number: 321<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math\n",
+ "B_ac=100.0;\n",
+ "r_e=12.0;\n",
+ "R1=62.0*10**3;\n",
+ "R2=22.0*10**3;\n",
+ "R_S=1.0*10**3;\n",
+ "R_E=1.0*10**3;\n",
+ "C2=100.0*10**-6;\n",
+ "#Base circuit impedance= parallel combination of R1, R2, R_S\n",
+ "R_th=(R1*R2*R_S)/(R1*R2+R2*R_S+R_S*R1);\n",
+ "#Resistance looking at emitter\n",
+ "R_in_emitter=r_e+(R_th/B_ac);\n",
+ "#resistance of equivalent bypass RC is parallel combination of R_E,R_in_emitter\n",
+ "R=(R_in_emitter*R_E)/(R_E+R_in_emitter);\n",
+ "f_c=1/(2*math.pi*R*C2);\n",
+ "print('critical frequency of bypass RC circuit = %f Hz'%f_c)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "critical frequency of bypass RC circuit = 75.893960 Hz"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.7, Page Number:323<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math\n",
+ "V_GS=-10.0;\n",
+ "I_GSS=25.0*10**-9;\n",
+ "R_G=10.0*10**6;\n",
+ "C1=0.001*10**-6;\n",
+ "R_in_gate=abs((V_GS/I_GSS));\n",
+ "R_in=(R_in_gate*R_G)/(R_G+R_in_gate);\n",
+ "f_c=1/(2*math.pi*R_in*C1);\n",
+ "print('critical frequency = %f Hz'%f_c)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "critical frequency = 16.313382 Hz"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.8, Page Number: 324<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math\n",
+ "V_GS=-12.0;\n",
+ "I_GSS=100.0*10**-9;\n",
+ "R_G=10.0*10**6;\n",
+ "R_D=10.0*10**3;\n",
+ "C1=0.001*10**-6;\n",
+ "C2=0.001*10**-6;\n",
+ "R_in_gate=abs((V_GS/I_GSS));\n",
+ "R_in=(R_in_gate*R_G)/(R_G+R_in_gate);\n",
+ "R_L=R_in; #according to question\n",
+ "f_c_input=1/(2*math.pi*R_in*C1);\n",
+ "print('critical frequency of input RC circuit = %f Hz'%f_c_input)\n",
+ "f_c_output=1/(2*math.pi*(R_D+R_L)*C2)\n",
+ "print('critical frequency of output RC circuit = %f Hz'%f_c_output)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "critical frequency of input RC circuit = 17.241786 Hz\n",
+ "critical frequency of output RC circuit = 17.223127 Hz"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.9, Page Number: 327<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math\n",
+ "B_ac=100.0;\n",
+ "r_e=16.0;\n",
+ "R1=62.0*10**3;\n",
+ "R2=22.0*10**3;\n",
+ "R_S=600.0;\n",
+ "R_E=1.0*10**3;\n",
+ "R_C=2.2*10**3;\n",
+ "R_L=10.0*10**3;\n",
+ "C1=0.1*10**-6;\n",
+ "C2=10.0*10**-6;\n",
+ "C3=0.1*10**-6;\n",
+ "#input RC circuit\n",
+ "R_in=(B_ac*r_e*R1*R2)/(B_ac*r_e*R1+B_ac*r_e*R2+R1*R2);\n",
+ "f_c_input=1/(2*math.pi*(R_S+R_in)*C1);\n",
+ "print('input frequency = %f Hz'%f_c_input)\n",
+ "#For bypass circuit; Base circuit impedance= parallel combination of R1, R2, R_S\n",
+ "R_th=(R1*R2*R_S)/(R1*R2+R2*R_S+R_S*R1);\n",
+ "#Resistance looking at emitter\n",
+ "R_in_emitter=r_e+(R_th/B_ac);\n",
+ "#resistance of equivalent bypass RC is parallel combination of R_E,R_in_emitter\n",
+ "R=(R_in_emitter*R_E)/(R_E+R_in_emitter);\n",
+ "f_c_bypass=1/(2*math.pi*R*C2);\n",
+ "print('critical frequency of bypass RC circuit = %f Hz'%f_c_bypass)\n",
+ "f_c_output=1/(2*math.pi*(R_C+R_L)*C3)\n",
+ "print('output frequency circuit = %f Hz'%f_c_output)\n",
+ "R_c=R_C*R_L/(R_C+R_L);\n",
+ "A_v_mid=R_c/r_e;\n",
+ "attenuation=R_in/(R_in+R_S);\n",
+ "A_v=attenuation*A_v_mid; #overall voltage gain\n",
+ "A_v_mid_dB=20*math.log10(A_v); \n",
+ "print('overall voltage gain in dB = %f'%A_v_mid_dB)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "input frequency = 773.916632 Hz\n",
+ "critical frequency of bypass RC circuit = 746.446517 Hz\n",
+ "output frequency circuit = 130.454871 Hz\n",
+ "overall voltage gain in dB = 38.042470"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.10, Page Number: 330<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math\n",
+ "B_ac=125.0;\n",
+ "C_be=20.0*10**-12;\n",
+ "C_bc=2.4*10**-12;\n",
+ "R1=22.0*10**3;\n",
+ "R2=4.7*10**3;\n",
+ "R_E=470.0;\n",
+ "R_S=600.0;\n",
+ "R_L=2.2*10**3;\n",
+ "V_CC=10.0;\n",
+ "V_B=(R2/(R1+R2))*V_CC;\n",
+ "V_E=V_B-0.7;\n",
+ "I_E=V_E/R_E;\n",
+ "r_e=25.0*10**-3/I_E;\n",
+ "#total resistance of input circuit is parallel combination of R1,R2,R_s,B_ac*r_e\n",
+ "R_in_tot=B_ac*r_e*R1*R2*R_S/(B_ac*r_e*R1*R2+B_ac*r_e*R1*R_S+B_ac*r_e*R2*R_S+R1*R2*R_S);\n",
+ "R_c= 1100.0#R_C*R_L/(R_C+R_L)\n",
+ "A_v_mid=R_c/r_e;\n",
+ "C_in_Miller=C_bc*(A_v_mid+1)\n",
+ "C_in_tot=C_in_Miller+C_be;\n",
+ "C_in_tot=C_in_tot*10**10\n",
+ "f_c=1/(2*math.pi*R_in_tot*C_in_tot);\n",
+ "print('total resistance of circuit = %f Ohm'%R_in_tot)\n",
+ "print('total capacitance = %f * 10^-10 F'%C_in_tot)\n",
+ "print('critical frequency = %f Hz'%f_c)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "total resistance of circuit = 377.815676 Ohm\n",
+ "total capacitance = 2.606290 * 10^-10 F\n",
+ "critical frequency = 0.000162 Hz"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.11, Page Number: 333<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math\n",
+ "C_bc=2.4*10**-12; #from previous question\n",
+ "A_v=99.0; #from previous question\n",
+ "R_C=2.2*10**3;\n",
+ "R_L=2.2*10**3;\n",
+ "R_c=R_C*R_L/(R_C+R_L);\n",
+ "C_out_Miller=C_bc*(A_v+1)/A_v;\n",
+ "f_c=1/(2*math.pi*R_c*C_bc); #C_bc is almost equal to C_in_Miller\n",
+ "C_out_Miller=C_out_Miller*10**12\n",
+ "print('equivalent resistance = %d Ohm'%R_c)\n",
+ "print('equivalent capacitance =%f *10^-12 F'%C_out_Miller)\n",
+ "print('critical frequency =%f Hz'%f_c)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equivalent resistance = 1100 Ohm\n",
+ "equivalent capacitance =2.424242 *10^-12 F\n",
+ "critical frequency =60285963.292385 Hz"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.12, Page Number: 334<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "C_iss=6.0*10**-12;\n",
+ "C_rss=2.0*10**-12;\n",
+ "C_gd=C_rss;\n",
+ "C_gs=C_iss-C_rss;\n",
+ "C_gd=C_gd*10**12\n",
+ "C_gs=C_gs*10**12\n",
+ "print('gate to drain capacitance = %.1f * 10^-12 F'%C_gd)\n",
+ "print('gate to source capacitance = %.1f * 10^-12 F'%C_gs)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "gate to drain capacitance = 2.0 * 10^-12 F\n",
+ "gate to source capacitance = 4.0 * 10^-12 F"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.13, Page Number:335 <h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math\n",
+ "C_iss=8.0*10**-12;\n",
+ "C_rss=3.0*10**-12;\n",
+ "g_m=6500.0*10**-6; #in Siemens\n",
+ "R_D=1.0*10**3;\n",
+ "R_L=10.0*10**6;\n",
+ "R_s=50.0;\n",
+ "C_gd=C_rss;\n",
+ "C_gs=C_iss-C_rss;\n",
+ "R_d=R_D*R_L/(R_D+R_L);\n",
+ "A_v=g_m*R_d;\n",
+ "C_in_Miller=C_gd*(A_v+1);\n",
+ "C_in_tot=C_in_Miller+C_gs;\n",
+ "f_c=1/(2*math.pi*C_in_tot*R_s);\n",
+ "print('critical frequency of input RC circuit =%.3f *10^8 Hz'%(f_c*10**-8))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "critical frequency of input RC circuit =1.158 *10^8 Hz"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.14, Page Number: 336<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math\n",
+ "C_gd=3.0*10**-12; #from previous question\n",
+ "A_v=6.5; #from previous question\n",
+ "R_d=1.0*10**3; #from previous question\n",
+ "C_out_Miller=C_gd*(A_v+1)/A_v;\n",
+ "f_c=1/(2*math.pi*R_d*C_out_Miller);\n",
+ "print('critical frequency of the output circuit = %d Hz'%f_c)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "critical frequency of the output circuit = 45978094 Hz"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.15, Page Number: 339<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "f_cu=2000.0;\n",
+ "f_cl=200.0;\n",
+ "BW=f_cu-f_cl;\n",
+ "print('bandwidth = %d Hz'%BW)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "bandwidth = 1800 Hz"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.16, Page Number: 340<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "f_T=175.0*10**6; #in hertz\n",
+ "A_v_mid=50.0;\n",
+ "BW=f_T/A_v_mid;\n",
+ "print('bandwidth = %d Hz'%BW)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "bandwidth = 3500000 Hz"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.17, Page Number: 341<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "f_cl=1.0*10**3; #lower critical frequency of 2nd stage in hertz\n",
+ "f_cu=100.0*10**3; #upper critical frequency of 1st stage in hertz\n",
+ "BW=f_cu-f_cl;\n",
+ "print('bandwidth = %d Hz'%BW)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "bandwidth = 99000 Hz"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.18, Page Number: 341<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math\n",
+ "n=2.0; #n is the number of stages of amplifier\n",
+ "f_cl=500.0;\n",
+ "f_cu=80.0*10**3;\n",
+ "f_cl_new=f_cl/(math.sqrt(2**(1/n)-1));\n",
+ "f_cu_new=f_cu*(math.sqrt(2**(1/n)-1));\n",
+ "BW=f_cu_new-f_cl_new;\n",
+ "print('bandwidth = %f Hz'%BW)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "bandwidth = 50710.653245 Hz"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices/Chapter11.ipynb b/Electronic_Devices/Chapter11.ipynb
new file mode 100755
index 00000000..966e3619
--- /dev/null
+++ b/Electronic_Devices/Chapter11.ipynb
@@ -0,0 +1,172 @@
+{
+ "metadata": {
+ "name": "Chapter_11"
+ },
+ "nbformat": 2,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h1>Chapter 11: Thyristors and other Devices<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 11.1, Page Number: 353<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "V_AK=20.0; #VOLTAGE ACROSS ANODE",
+ "I_A=1*10**-6;",
+ "R_AK=V_AK/I_A;",
+ "print('Resistance = %d * 10^6 Ohm'%(R_AK/10**6))"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resistance = 20 * 10^6 Ohm"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 11.2, Page Number: 354<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "R_S=10**3;",
+ "V_BIAS=110.0;",
+ "V_BE=0.7;",
+ "V_CE_sat=0.1;",
+ "V_A=V_BE+V_CE_sat; #VOLTAGE ACROSS ANODE",
+ "V_R_s=V_BIAS-V_A; #VOLTAGE ACROSS R_S",
+ "I_A=V_R_s/R_S;",
+ "print('Anode current = %f A'%I_A)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Anode current = 0.109200 A"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 11.3, Page Number: 364<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "n=0.6;",
+ "V_BB=20.0;",
+ "V_pn=0.7;",
+ "V_P=n*V_BB+V_pn;",
+ "print('peak point emitter voltage = %.1f Volts'%V_P)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak point emitter voltage = 12.7 Volts"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 11.4, page Number: 366<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "V_BB=30.0;",
+ "V_P=14.0;",
+ "I_P=20.0*10**-6;",
+ "V_V=1.0;",
+ "I_V=10.0*10**-3;",
+ "x=(V_BB-V_P)/I_P;",
+ "y=(V_BB-V_V)/I_V;",
+ "print('R1 should be less than %d Ohms'%x)",
+ "print('R1 should be more than %d Ohms'%y)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R1 should be less than 800000 Ohms",
+ "R1 should be more than 2900 Ohms"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 11.5, Page Number: 376<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import math",
+ "n2=1.3; #cladding index",
+ "n1=1.35; #core index",
+ "theta=math.acos(n2/n1);",
+ "t=theta*180/math.pi;",
+ "print('critical angle in degrees \\n\\t%f'%t)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "critical angle in degrees ",
+ "\t15.642471"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices/Chapter12.ipynb b/Electronic_Devices/Chapter12.ipynb
new file mode 100755
index 00000000..3f9f927c
--- /dev/null
+++ b/Electronic_Devices/Chapter12.ipynb
@@ -0,0 +1,458 @@
+{
+ "metadata": {
+ "name": "Chapter_12"
+ },
+ "nbformat": 2,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h1>Chapter 12: The Operational Amplifier<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 12.1, Page Number: 392<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import math",
+ "A_ol=100000.0; #open loop voltage gain",
+ "A_cm=0.2; #common mode gain",
+ "CMRR=A_ol/A_cm;",
+ "CMRR_dB=20*math.log10(CMRR);",
+ "print('CMRR = %d'%CMRR)",
+ "print('CMRR in decibels = %f'%CMRR_dB)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "CMRR = 500000",
+ "CMRR in decibels = 113.979400"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 12.2, Page Number: 395<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "del_t=1.0; # in microseconds",
+ "#lower limit is -9V and upper limit is 9V from the graph",
+ "del_V_out=9.0-(-9.0);",
+ "slew_rate=del_V_out/del_t;",
+ "print('slew rate =%d V/microseconds'%slew_rate)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "slew rate =18 V/microseconds"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 12.3, Page Number: 400<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "R_f=100*10**3;",
+ "R_i=4.7*10**3;",
+ "A_cl_NI=1+(R_f/R_i);",
+ "print('closed loop voltage gain = %f'%A_cl_NI)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "closed loop voltage gain = 22.276596"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 12.4,Page Number: 402<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "R_i=2.2*10**3;",
+ "A_cl=-100.0; #closed loop voltage gain",
+ "R_f=abs(A_cl)*R_i;",
+ "print('value of R_f = %d ohms'%R_f)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of R_f = 220000 ohms"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 12.5, Page Number: 404<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "Z_in=2*10**6;",
+ "Z_out=75.0;",
+ "A_ol=200000.0;",
+ "R_f=220.0*10**3;",
+ "R_i=10.0*10**3;",
+ "B=R_i/(R_i+R_f); #B is attenuation",
+ "Z_in_NI=(1+A_ol*B)*Z_in;",
+ "Z_out_NI=Z_out/(1+A_ol*B);",
+ "A_cl_NI=1+(R_f/R_i);",
+ "Z_in_NI=Z_in_NI/10**10",
+ "print('input impedance = %f * 10^10 ohms'%Z_in_NI)",
+ "print('output impedance = %f ohms'%Z_out_NI)",
+ "print('closed loop voltage gain = %d'%A_cl_NI)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "input impedance = 1.739330 * 10^10 ohms",
+ "output impedance = 0.008624 ohms",
+ "closed loop voltage gain = 23"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 12.6, Page Number: 405<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "B=1.0; #voltage follower configuration",
+ "A_ol=200000.0;",
+ "Z_in=2*10**6;",
+ "Z_out=75.0;",
+ "Z_in_VF=(1+A_ol)*Z_in;",
+ "Z_out_VF=Z_out/(1+A_ol);",
+ "Z_in_VF=Z_in_VF*10**-11",
+ "print('input impedance = %d * 10^11 Ohms'%Z_in_VF)",
+ "print('output impedance = %f Ohms'%Z_out_VF)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "input impedance = 4 * 10^11 Ohms",
+ "output impedance = 0.000375 Ohms"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 12.7, Page Number: 406<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "R_i=1.0*10**3;",
+ "R_f=100.0*10**3;",
+ "Z_in=4.0*10**6;",
+ "Z_out=50.0;",
+ "A_ol=50000.0;",
+ "B=R_i/(R_i+R_f); #attenuation",
+ "Z_in_I=R_i; #almost equal to R_i",
+ "Z_out_I=Z_out/(1+(A_ol*B));",
+ "A_cl_I=-R_f/R_i;",
+ "print('input impedance = %d Ohms'%Z_in_I)",
+ "print('output impedance = %f Ohms'%Z_out_I)",
+ "print('closed loop voltage gain =%d'%A_cl_I)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "input impedance = 1000 Ohms",
+ "output impedance = 0.100796 Ohms",
+ "closed loop voltage gain =-100"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 12.8, Page Number: 412<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import math",
+ "f_c_ol=100.0;",
+ "A_ol_mid=100000.0;",
+ "f=0.0;",
+ "A_ol=A_ol_mid/(math.sqrt(1+(f/f_c_ol)**2))",
+ "print('open loop gain when f=0Hz is %f'%A_ol);",
+ "f=10.0;",
+ "A_ol=A_ol_mid/(math.sqrt(1+(f/f_c_ol)**2))",
+ "print('open loop gain when f=10Hz is %f'%A_ol)",
+ "f=100.0;",
+ "A_ol=A_ol_mid/(math.sqrt(1+(f/f_c_ol)**2))",
+ "print('open loop gain when f=100Hz is %f'%A_ol)",
+ "f=1000.0;",
+ "A_ol=A_ol_mid/(math.sqrt(1+(f/f_c_ol)**2))",
+ "print('open loop gain when f=1000Hz is %f'%A_ol)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "open loop gain when f=0Hz is 100000.000000",
+ "open loop gain when f=10Hz is 99503.719021",
+ "open loop gain when f=100Hz is 70710.678119",
+ "open loop gain when f=1000Hz is 9950.371902"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 12.9,Page Number: 413<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import math",
+ "f_c=100.0;",
+ "f=1.0;",
+ "theta_rad=-math.atan((f/f_c))",
+ "theta=theta_rad*180/math.pi;",
+ "print('phase lag when f=1Hz = %f degrees'%theta)",
+ "",
+ "f=10.0;",
+ "theta_rad=-math.atan((f/f_c))",
+ "theta=theta_rad*180/math.pi;",
+ "print('phase lag when f=10Hz = %f degrees'%theta)",
+ "f=100.0;",
+ "theta_rad=-math.atan((f/f_c))",
+ "theta=theta_rad*180/math.pi; ",
+ "print('phase lag when f=100Hz = %f degrees'%theta)",
+ "f=1000.0;",
+ "theta_rad=-math.atan((f/f_c))",
+ "theta=theta_rad*180/math.pi;",
+ "print('phase lag when f=1000Hz = %f degrees'%theta)",
+ "f=10000.0;",
+ "theta_rad=-math.atan((f/f_c))",
+ "theta=theta_rad*180/math.pi;",
+ "print('phase lag when f=10000Hz = %f degrees'%theta)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "phase lag when f=1Hz = -0.572939 degrees",
+ "phase lag when f=10Hz = -5.710593 degrees",
+ "phase lag when f=100Hz = -45.000000 degrees",
+ "phase lag when f=1000Hz = -84.289407 degrees",
+ "phase lag when f=10000Hz = -89.427061 degrees"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 12.10, Page Number: 415<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import math",
+ "A_v1=40.0; #all gains are in decibels",
+ "A_v2=32.0;",
+ "A_v3=20.0;",
+ "f_c1=2*10**3;",
+ "f_c2=40*10**3;",
+ "f_c3=150*10**3;",
+ "f=f_c1;",
+ "A_ol_mid=A_v1+A_v2+A_v3;",
+ "#theta 1",
+ "theta_rad1=-math.atan((f/f_c1))",
+ "theta1=theta_rad1*180/math.pi;",
+ "",
+ "#theta 2",
+ "theta_rad2=-math.atan((f/f_c2))",
+ "theta2=theta_rad2*180/math.pi;",
+ "",
+ "#theta 3",
+ "theta_rad3=-math.atan((f/f_c3))",
+ "theta3=theta_rad3*180/math.pi;",
+ "",
+ "theta_tot=theta1+theta2+theta3;",
+ "print('open loop midrange gain in decibels is %d'%A_ol_mid)",
+ "print('total phase lag in degrees is %d'%theta_tot)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "open loop midrange gain in decibels is 92",
+ "total phase lag in degrees is -45"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 12.11, Page Number: 416<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "A_ol_mid=150000.0; #open loop midrange gain",
+ "B=0.002; #feedback attenuation",
+ "BW_ol=200; #open loop bandwidth",
+ "BW_cl=BW_ol*(1+B*A_ol_mid);",
+ "print('closed loop bandwidth = %d Hz'%BW_cl)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "closed loop bandwidth = 60200 Hz"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 12.12, Page Number: 417<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "BW=3*10**6; #unity gain bandwidth",
+ "A_ol=100.0; #open loop gain",
+ "print(\"non-inverting amplifier\")",
+ "R_f=220.0*10**3;",
+ "R_i=3.3*10**3;",
+ "A_cl=1+(R_f/R_i); #closed loop gain",
+ "BW_cl=BW/A_cl;",
+ "print('closed loop bandwidth = %f Hz'%BW_cl)",
+ "print(\"inverting amplifier\")",
+ "R_f=47.0*10**3;",
+ "R_i=1.0*10**3;",
+ "A_cl=-R_f/R_i;",
+ "BW_cl=BW/(abs(A_cl));",
+ "print('closed loop bandwidth = %f Hz'%BW_cl)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "non-inverting amplifier",
+ "closed loop bandwidth = 44334.975369 Hz",
+ "inverting amplifier",
+ "closed loop bandwidth = 63829.787234 Hz"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices/Chapter13.ipynb b/Electronic_Devices/Chapter13.ipynb
new file mode 100755
index 00000000..14a01b6b
--- /dev/null
+++ b/Electronic_Devices/Chapter13.ipynb
@@ -0,0 +1,580 @@
+{
+ "metadata": {
+ "name": "Chapter_13"
+ },
+ "nbformat": 2,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h1>Chapter 13: Basic Op-amp Circuits<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 13.1, Page Number: 433<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "%pylab inline"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "",
+ "Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline].",
+ "For more information, type 'help(pylab)'."
+ ]
+ }
+ ],
+ "prompt_number": 177
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import pylab",
+ "import numpy",
+ "",
+ "R2=1.0*10**3;",
+ "R1=8.2*10**3;",
+ "V=15.0;",
+ "V_REF=R2*V/(R1+R2);",
+ "print('V_REF = %f V'%V_REF)",
+ "############PLOT##################################",
+ "",
+ "t = arange(0.001, 2.0, 0.005)",
+ "k = arange(0.0001, 0.0529, 0.0005)",
+ "k1= arange(0.0529, 0.447, 0.0005)",
+ "k2= arange(0.447, 1.053, 0.0005)",
+ "k3= arange(1.053,1.447, 0.0005)",
+ "k4= arange(1.447,2.0, 0.0005)",
+ "m=arange(-12,12,0.0005)",
+ "",
+ "x5=(0.0529*m)/m",
+ "x10=(0.447*m)/m",
+ "x15=(1.053*m)/m",
+ "x25=(1.447*m)/m",
+ "subplot(211)",
+ "plot(t, 5*sin(2*pi*t))",
+ "plot(t,(1.63*t)/t,'--')",
+ "ylim( (-5,5) )",
+ "ylabel('Vin')",
+ "title('Input Waveform')",
+ "",
+ "subplot(212)",
+ "plot(k,-12*k/k,'b')",
+ "plot(k1,12*k1/k1,'b')",
+ "plot(k2,-12*k2/k2,'b')",
+ "plot(k3,12*k3/k3,'b')",
+ "plot(k4,-12*k4/k4,'b')",
+ "plot(x5,m,'b')",
+ "plot(x10,m,'b')",
+ "plot(x15,m,'b')",
+ "plot(x25,m,'b')",
+ "",
+ "ylim( (-13,13) )",
+ "ylabel('Vout')",
+ "xlabel('each time the input exceeds +1.63V,o/p switches to +12 and vice-versa')",
+ "title('Output Waveform')"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "V_REF = 1.630435 V"
+ ]
+ },
+ {
+ "output_type": "pyout",
+ "prompt_number": 178,
+ "text": [
+ "<matplotlib.text.Text at 0x2f58bd2c>"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "png": "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\n"
+ }
+ ],
+ "prompt_number": 178
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 13.2, Page Number: 436<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "R1=100.0*10**3;",
+ "R2=R1;",
+ "V_out_max=5.0;",
+ "V_UTP=R2*V_out_max/(R1+R2);",
+ "V_LTP=-V_out_max*R2/(R1+R2);",
+ "print('upper trigger point = %.1f Volts'%V_UTP)",
+ "print('lower trigger point = %.1f Volts'%V_LTP)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "upper trigger point = 2.5 Volts",
+ "lower trigger point = -2.5 Volts"
+ ]
+ }
+ ],
+ "prompt_number": 179
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 13.3, Page Number: 437<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import pylab",
+ "import numpy",
+ "",
+ "R1=100.0*10**3;",
+ "R2=47.0*10**3;",
+ "V_R1=4.7+0.7; #one zener is always forward biased with forward voltage 0.7V ",
+ "#V_R1 can be positive or negative",
+ "I_R1=V_R1/R1; ",
+ "I_R2=I_R1;",
+ "V_R2=R2*I_R2;",
+ "V_out=V_R1+V_R2; #positive or negative",
+ "",
+ "print ('I_R1 = \u00b1%d uA' %(I_R1*10**6))",
+ "print ('V_R2 = \u00b1%.2f V' %(V_R2))",
+ "print('max output voltage = \u00b1 %.2f V'%V_out)",
+ "print('\\nV_UTP = + %.2f V' %(V_R2))",
+ "print('V_LTP = - %.2f V' %(V_R2))",
+ "",
+ "################PLOT######################################",
+ "t = arange(0.0, 1.0, 0.0005)",
+ "t1=arange(0.0001,0.085,0.0005)",
+ "t2=arange(0.0001,0.585,0.0005)",
+ "t3=arange(0.585,1.0,0.0005)",
+ "t4=arange(0.085,0.585,0.0005)",
+ "",
+ "m=arange(-7.94,7.94,0.0005)",
+ "x1=(0.085*m)/m",
+ "x5=(0.585*m)/m",
+ "",
+ "subplot(211)",
+ "plot(t, 5*sin(2*pi*t))",
+ "plot(t1,2.54*t1/t1,'--')",
+ "plot(t2,-2.54*t2/t2,'--')",
+ "text(0.09,1.95,'(0.085,2.54)')",
+ "text(0.586,-2,'(0.585,-2.54)')",
+ "#annotate('(0.085,2.54)',(0.085,2.54),(0.3,2.5),arrowprops = dict(facecolor='black',shrink=0.09,xycoords='data',textcoords='axes fraction'))",
+ "ylim( (-6,6) )",
+ "ylabel('Vin')",
+ "title('Input Waveform')",
+ "",
+ "subplot(212)",
+ "plot(t1,7.94*t1/t1,'b')",
+ "plot(t3,7.94*t3/t3,'b')",
+ "plot(t4,-7.94*t4/t4,'b')",
+ "plot(x1,m,'b')",
+ "plot(x5,m,'b')",
+ "ylim( (-9,9) )",
+ "title('Source and output AC voltage')"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "I_R1 = \u00b154 uA",
+ "V_R2 = \u00b12.54 V",
+ "max output voltage = \u00b1 7.94 V",
+ "",
+ "V_UTP = + 2.54 V",
+ "V_LTP = - 2.54 V"
+ ]
+ },
+ {
+ "output_type": "pyout",
+ "prompt_number": 180,
+ "text": [
+ "<matplotlib.text.Text at 0x2f9fbf2c>"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "png": "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\nPhyxsbEwMjICAJw5cwZ5eXno1q0bfHx80KBBA5iYmKBbt26IiYkpsS8PDw/o6+vj2LFjqmXbt2/H\nqFGjAIiHPeVyOWJiYhATEwO5XI7FixeX2M/WrVvRokUL7N+/Hzk5Ofj4448BAP369cM///yD9PR0\nvPHGG6r9AsD7778PAwMDpKWlYfPmzdiyZYvq3yg3Nxfe3t4YPXo00tPTsWPHDrz33nuIj48vURYv\n+z9y+vRpDBs2DABga2sLGxsbXLlypYx/jdqr3OfNindfvLrCwkJq1aoVJSQkUH5+/ks7i8+cOVNr\nO0jVKYsbN26Qra0tnTlz5oX7io+Pp3HjxpGVlRXp6uqSn58fpaWlERHRW2+9Rd99951q2ytXrpCe\nnh4plcpSOwStra3p2LFjRCQ64rp3765al5KSQjo6OqoO7Ge988479NlnnxVb9vrrr1NUVJRaZaGj\no0OHDh2i/Px8MjMzo06dOqnWx8XFUYMGDYiIKCoqiho2bEh79uxRre/UqVOJYz9R0e8/evToYuu9\nvLxo7ty5qt8vX75MdevWpaKionLt73mRkZEkk8nozz//pPz8fKpfv76qM3Tbtm1kbm5O8fHx1LNn\nT1IoFJSbm0tOTk4UFxdX6v7mz59PEyZMICKi7Oxs0tfXp5s3bxIRka2tLR06dEi17eHDh8na2pqI\nSnYWP/s9SpOVlUUymYyys7NJoVCQnp4eXb16tVgcXbp0ISKiHTt2UNeuXYt9/j//+Q8tXLiw2DJ1\n/o/MmDGDgoKCiIjo9u3bZGlpSZmZmWXGWZMlJCSo1Vn8KudNjfSm6Orq4uuvv0bv3r2hVCoxceJE\nODg44IcffgAATJkyBX379sXBgwdhZ2cHfX19bNq0SROhVjl1ymLRokXIyspStYvr6elBLpeX2Feb\nNm1U5XTlyhWMHj0a06dPx/bt25GamoqWLVuqtm3RogUUCoXaHfDPXoElJSXB2NhY1YH9rBs3bmDL\nli1Yt26dallhYSFSU1NL3e/KlSuxceNGpKSkqK4UJ0+ejHr16sHJyQkWFhaqsujduzfy8vJQVFSE\nlJQUNGzYsNi+WrZsWWb7dUW/f2mebf5p0aIFCgsLkZGRUe79PWvbtm3w8PDAkCFDoFQq0bVrV4SH\nh8Pa2hpxcXHIyMhA69at0adPHzg7O0NHRweTJ0+Go6NjqfsbOXIkOnXqhO+++w579+5F+/btVfGn\n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\nB0HRkFnTYYNDAAAAAElFTkSuQmCC\n"
+ }
+ ],
+ "prompt_number": 180
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 13.4, Page Number: 440<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "V_IN1=3.0;",
+ "V_IN2=1.0;",
+ "V_IN3=8.0;",
+ "#all resistors are of equal value so weight of each input is 1",
+ "V_OUT=-(V_IN1+V_IN2+V_IN3);",
+ "print('output voltage = %d Volts'%V_OUT)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "output voltage = -12 Volts"
+ ]
+ }
+ ],
+ "prompt_number": 181
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 13.5, Page Number: 440<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "R_f=10.0*10**3;",
+ "R1=1.0*10**3;",
+ "R2=R1;",
+ "R=R1;",
+ "V_IN1=0.2;",
+ "V_IN2=0.5;",
+ "V_OUT=-(R_f/R)*(V_IN1+V_IN2);",
+ "print('output voltage of the summing amplifier = %d Volts'%V_OUT)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "output voltage of the summing amplifier = -7 Volts"
+ ]
+ }
+ ],
+ "prompt_number": 182
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 13.6, Page Number: 441<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "R_f=25.0*10**3;",
+ "R1=100.0*10**3;",
+ "R2=R1;",
+ "R3=R1;",
+ "R4=R1;",
+ "R=R1;",
+ "V_IN1=1.0;",
+ "V_IN2=2.0;",
+ "V_IN3=3.0;",
+ "V_IN4=4.0;",
+ "V_OUT=-(R_f/R)*(V_IN1+V_IN2+V_IN3+V_IN4);",
+ "print('output voltage = %.1f Volts'%V_OUT)",
+ "V_IN_avg=(V_IN1+V_IN2+V_IN3+V_IN4)/4;",
+ "if abs(V_OUT)==V_IN_avg:",
+ " print('The amplifier produces an output whose magnitude\\n is the mathematical average of the input voltages')"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "output voltage = -2.5 Volts",
+ "The amplifier produces an output whose magnitude",
+ " is the mathematical average of the input voltages"
+ ]
+ }
+ ],
+ "prompt_number": 183
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 13.7, Page Number: 442<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "V_IN1=3.0;",
+ "V_IN2=2.0;",
+ "V_IN3=8.0;",
+ "R_f=10.0*10**3;",
+ "R1=47.0*10**3;",
+ "R2=100.0*10**3;",
+ "R3=10.0*10**3;",
+ "weight_of_input1=R_f/R1;",
+ "weight_of_input2=R_f/R2;",
+ "weight_of_input3=R_f/R3;",
+ "V_OUT=-(weight_of_input1*V_IN1+weight_of_input2*V_IN2+weight_of_input3*V_IN3);",
+ "print('weight_of_input1 = %f'%weight_of_input1)",
+ "print('weight_of_input2 = %.1f'%weight_of_input2)",
+ "print('weight_of_input3 = %d'%weight_of_input3)",
+ "print('output voltage = %f Volts'%V_OUT)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "weight_of_input1 = 0.212766",
+ "weight_of_input2 = 0.1",
+ "weight_of_input3 = 1",
+ "output voltage = -8.838298 Volts"
+ ]
+ }
+ ],
+ "prompt_number": 184
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 13.8, Page Number: 444<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import pylab",
+ "import numpy",
+ "",
+ "",
+ "R_i=10.0*10**3;",
+ "C=0.01*10**-6;",
+ "V_in=2.5-(-2.5);",
+ "PW=100.0*10**-6; #pulse width",
+ "T=2*PW;",
+ "A=2.5;",
+ "op_change_cap_charge=-V_in/(R_i*C);",
+ "op_change_cap_discharge=V_in/(R_i*C);",
+ "print('rate of change of output voltage with respect to time when capacitor is charging = %.1f V/sec'%op_change_cap_charge)",
+ "print('rate of change of output voltage with respect to time when capacitor is discharging =%.1f V/sec'%op_change_cap_discharge)",
+ "del_V_OUT=op_change_cap_discharge*PW;",
+ "print('\\n\\nwhen input is positive, the slope is negative,\\nwhen input is negative, the slope is negative. \\nSo, the output is a triangular wave varying from zero to %.1f V'%(-del_V_OUT))",
+ "",
+ "##############PLOT#############################",
+ "t = arange(0.0, 10.0, 0.0005)",
+ "t1= arange(10.0, 20.0, 0.0005)",
+ "t2= arange(20.0, 30.0, 0.0005)",
+ "t3= arange(30.0, 40.0, 0.0005)",
+ "",
+ "k = arange(0.0001, 10.0, 0.0005)",
+ "k1= arange(10.0, 20.0, 0.0005)",
+ "k2= arange(20.0, 30.0, 0.0005)",
+ "k3= arange(30.0,40.0, 0.0005)",
+ "",
+ "m=arange(-2.5,2.5,0.0005)",
+ "x1=(0.001*m)/m",
+ "x5=(10*m)/m",
+ "x10=(20*m)/m",
+ "x15=(30*m)/m",
+ "x25=(39.99*m)/m",
+ "",
+ "",
+ "subplot(211)",
+ "plot(k,2.5*k/k,'b')",
+ "plot(k1,-2.5*k1/k1,'b')",
+ "plot(k2,2.5*k2/k2,'b')",
+ "plot(k3,-2.5*k3/k3,'b')",
+ "plot(x1,m,'b')",
+ "plot(x5,m,'b')",
+ "plot(x10,m,'b')",
+ "plot(x15,m,'b')",
+ "plot(x25,m,'b')",
+ "",
+ "ylim( (-3,3) )",
+ "ylabel('Vin')",
+ "xlabel('us')",
+ "title('Input to Opamp Integrator')",
+ "",
+ "subplot(212)",
+ "plot(t,(-0.5*t),'b')",
+ "plot(t1,(0.5*t-5),'b')",
+ "plot(t2,(-0.5*t),'b')",
+ "plot(t3,(0.5*t-5),'b')",
+ "",
+ "ylim( (-5,0) )",
+ "ylabel('Vout')",
+ "xlabel('us')",
+ "title('Output of an Integrator')"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rate of change of output voltage with respect to time when capacitor is charging = -50000.0 V/sec",
+ "rate of change of output voltage with respect to time when capacitor is discharging =50000.0 V/sec",
+ "",
+ "",
+ "when input is positive, the slope is negative,",
+ "when input is negative, the slope is negative. ",
+ "So, the output is a triangular wave varying from zero to -5.0 V"
+ ]
+ },
+ {
+ "output_type": "pyout",
+ "prompt_number": 185,
+ "text": [
+ "<matplotlib.text.Text at 0x303b512c>"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "png": "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\n/fRTeHl5YfLkyRXeulZ3ufBr167Bw8OjSu9JSUnB6dOn4evrW6XyVKlUlZ7XUhPzX4ri7NatG4B/\ny3PixIl6b1pRq9VPfI1Go4G3tzfs7e21zVbV+XzqS3lxApX7fEppxowZiIyMhJnZv9V4lctTfzcn\nVfP999/TlClTtI+jo6PpjTfekDGiit28eZOIiG7fvk1eXl506NAhmSP615UrV0o0rTRs2LDE921t\nbSt1nMzMTLKysqKtW7eWeD47O5uaNGlC69atIyKi4OBgevfdd7Xf379/Pzk7OxMRUWBgIJmZmVHd\nunXJysqKIiMj6cqVK6RSqWjJkiVkYWFBzZo1o+XLl9OtW7dIo9FQcHAw9erViyZNmlSp45Xnq6++\nIjc3N2rUqBENHTpU+/tq1aqV9v3W1taUn59f5r1Lliyh1q1bk7W1NXl4eNDmzZvpqaeeotjYWFq/\nfj2Zm5vTrFmzyNbWllq2bElWVlYVlqGrqyslJiYSEdH69eupZ8+eJd4bHx9PRETvvPMOmZubU506\ndcjKyoqmTZtGRETnz5+nAQMGUKNGjaht27b03XffaY+dnp5OgwcPpgYNGtDTTz9NoaGhZGVlRbGx\nsUREpFKpaOXKleTm5kYNGzakSZMmUUhICLm4uFCDBg2oc+fOdPjwYSIiio+Pp1q1apGlpSVZWVmR\nt7c3ERHduHGDhgwZQo0aNSI3NzdavXq19vzz58+nkSNHUmBgIDVo0IDWrl1bYTmUdv/+ffL19aV9\n+/bp/PmUQlGc+/fv134+NRoNzZ07V/v5lMuPP/5IU6dOJSLxNzJ48GAiqvrfu2ISwLFjx+jZZ5/V\nPg4PD6elS5fKGFHlLFiwgJYvXy53GFqlE0Dbtm0pLS2NiETiatu2baWOEx8fTxYWFqRWq8t8Lzg4\nmAICAoiI6OWXX6Z58+Zpv1e8wiYqWQkWxadSqejFF18kDw8POnv2LDVp0oT27t2rPd60adO0P8OT\njldaYmIi2dnZ0enTpykvL4+mTZtGvXv3rvT7t27dqi2vb7/9lszNzWnRokVEJCpxABQVFUUajYaW\nLl1KFhYWFR6rdAKwtLSkNWvWkEajoVWrVpGjo6P2tX369ClRiWZnZ5OzszNt2LCB1Go1nT59muzs\n7LT9YmPHjqWAgADKzc2lM2fOUJ06dahVq1ba96tUKho4cCDdu3ePLly4QB07dqRNmzZRRkYGqdVq\n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\ngg==\n"
+ }
+ ],
+ "prompt_number": 185
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 13.9, Page Number: 447<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import pylab",
+ "import numpy",
+ "",
+ "R_f=2.2*10**3;",
+ "C=0.001*10**-6;",
+ "Vc=5.0-(-5.0);",
+ "A=5.0;",
+ "time_const=R_f*C;",
+ "T=10.0*10**-6;",
+ "t=T/2;",
+ "slope=Vc/t;",
+ "V_out=slope*time_const; #V_out is negative when input is positive and V_out is positive when input is negative",
+ "print('output voltage = %.1f V'%V_out)",
+ "print('max output voltage = %.1f V'%V_out)",
+ "print('min output voltage = %.1f V'%(-V_out))",
+ "",
+ "##################PLOt############################",
+ "",
+ "t = arange(0.0, 5.0, 0.0005)",
+ "t1= arange(5.0, 10.0, 0.0005)",
+ "t2= arange(10.0, 15.0, 0.0005)",
+ "t3= arange(15.0, 20.0, 0.0005)",
+ "",
+ "",
+ "k = arange(0.0001, 5.0, 0.0005)",
+ "k1= arange(5.0, 10.0, 0.0005)",
+ "k2= arange(10.0, 15.0, 0.0005)",
+ "k3= arange(15.0, 20.0, 0.0005)",
+ "",
+ "m=arange(-4.4,4.4, 0.0005)",
+ "x1=(0.001*m)/m",
+ "x5=(5*m)/m",
+ "x10=(10*m)/m",
+ "x15=(15*m)/m",
+ "",
+ "",
+ "subplot(211)",
+ "plot(t,(2*t-5),'b')",
+ "plot(t1,(-2*t+5),'b')",
+ "plot(t2,(2*t-5),'b')",
+ "plot(t3,(-2*t+5),'b')",
+ "ylim( (-6,6) )",
+ "ylabel('Vin')",
+ "xlabel('us')",
+ "title('Triangular wave input')",
+ "",
+ "subplot(212)",
+ "plot(k,-4.4*k/k,'b')",
+ "plot(k1,4.4*k1/k1,'b')",
+ "plot(k2,-4.4*k2/k2,'b')",
+ "plot(k3,4.4*k3/k3,'b')",
+ "plot(x1,m,'b')",
+ "plot(x5,m,'b')",
+ "plot(x10,m,'b')",
+ "plot(x15,m,'b')",
+ "ylim( (-5,5) )",
+ "ylabel('Vout')",
+ "xlabel('us')",
+ "title('Output of Opamp Differentiator')"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "output voltage = 4.4 V",
+ "max output voltage = 4.4 V",
+ "min output voltage = -4.4 V"
+ ]
+ },
+ {
+ "output_type": "pyout",
+ "prompt_number": 186,
+ "text": [
+ "<matplotlib.text.Text at 0x30f01b4c>"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "png": "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\n"
+ }
+ ],
+ "prompt_number": 186
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices/Chapter14.ipynb b/Electronic_Devices/Chapter14.ipynb
new file mode 100755
index 00000000..453a369d
--- /dev/null
+++ b/Electronic_Devices/Chapter14.ipynb
@@ -0,0 +1,346 @@
+{
+ "metadata": {
+ "name": "Chapter_14"
+ },
+ "nbformat": 2,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h1>Chapter 14: Special-purpose Op-amp cicuits<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 14.1, Page Number: 458<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "%pylab inline"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "",
+ "Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline].",
+ "For more information, type 'help(pylab)'."
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "R1=25*10**3;",
+ "R2=R1;",
+ "A_cl=500; #closed loop voltage gain",
+ "R_G=2*R1/(A_cl-1);",
+ "print('value of the external gain setting resistor in ohms = %d'%R_G)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of the external gain setting resistor in ohms = 100"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 14.2, Page Number: 460<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "R1=25.25*10**3; #internal resistors",
+ "R2=R1;",
+ "R_G=510.0;",
+ "A_v=(2*R1/R_G)+1;",
+ "print('voltage gain = %f'%A_v)",
+ "BW=60.0*10**3;",
+ "print('bandwidth from graph = %d hertz'%BW)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage gain = 100.019608",
+ "bandwidth from graph = 60000 hertz"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 14.3, Page Number: 462<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "R_f1=22.0*10**3;",
+ "R_i1=2.2*10**3;",
+ "R_f2=47.0*10**3;",
+ "R_i2=10.0*10**3;",
+ "A_v1=(R_f1/R_i1)+1; #voltage gain of input stage",
+ "A_v2=(R_f2/R_i2)+1; #voltage gain of output stage",
+ "A_v=A_v1*A_v2;",
+ "print('total voltage gain of the isolation amplifier = %.1f'%A_v)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "total voltage gain of the isolation amplifier = 62.7"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 14.5, Page Number: 466<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "g_m=1000.0*10**-6;",
+ "V_in=25*10**-3;",
+ "I_out=g_m*V_in;",
+ "print('output current = %f A'%I_out)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "output current = 0.000025 A"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 14.6, Page Number: 468<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "V_BIAS=9.0;",
+ "V=V_BIAS;",
+ "R_BIAS=33.0*10**3;",
+ "R_L=10.0*10**3;",
+ "K=16.0; #in microSiemens per microAmpere",
+ "I_BIAS=(V_BIAS-(-V)-1.4)/R_BIAS;",
+ "g_m=K*I_BIAS;",
+ "A_v=g_m*R_L;",
+ "print('voltage gain = %f'%A_v)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage gain = 80.484848"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 14.7, Page Number: 469<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import pylab",
+ "import numpy ",
+ "",
+ "",
+ "V_MOD_max=10.0;",
+ "V_MOD_min=1.0;",
+ "V=9.0;",
+ "V_in=50.0*10**-3;",
+ "R_BIAS=56.0*10**3;",
+ "R_L=10.0*10**3;",
+ "K=16.0; #in microSiemens per microAmpere",
+ "I_BIAS_max=(V_MOD_max-(-V)-1.4)/R_BIAS;",
+ "",
+ "g_m_max=K*I_BIAS_max;",
+ "A_v_max=g_m_max*R_L;",
+ "V_out_max=A_v_max*V_in;",
+ "",
+ "I_BIAS_min=(V_MOD_min-(-V)-1.4)/R_BIAS;",
+ "",
+ "g_m_min=K*I_BIAS_min;",
+ "A_v_min=g_m_min*R_L;",
+ "V_out_min=A_v_min*V_in;",
+ "",
+ "###############PLOT#############################",
+ "f=1.0; #assume frequency 1 hertz",
+ "t = arange(0.0001, 4.0, 0.0005)",
+ "y=(((V_out_max/4)-(V_out_min/4))*sin(2*pi*f*t)+((V_out_min/2)+(V_out_max/2))/2)*sin(2*9*pi*f*t);",
+ "",
+ "plot(t,y)",
+ "plot(t,0.61*t/t,'r')",
+ "plot(t,-0.61*t/t,'r')",
+ "ylim( (-2,2) )",
+ "ylabel('Vout')",
+ "title('Modulated Output Voltage')"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "pyout",
+ "prompt_number": 7,
+ "text": [
+ "<matplotlib.text.Text at 0xa98084c>"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "png": "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\noMS/KVKkmvD3qkwAAAAASUVORK5CYII=\n"
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 14.8, Page Number: 473<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import math",
+ "V_in=2;",
+ "I_R=50.0*10**-9;",
+ "R1=100.0*10**3;",
+ "#voltage output for log amplifier",
+ "V_OUT=-0.025*math.log(V_in/(I_R*R1));",
+ "print('output voltage = %f volts'%V_OUT)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "output voltage = -0.149787 volts"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 14.9, Page Number: 474<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import math",
+ "V_in=3;",
+ "I_EBO=40*10**-9;",
+ "R1=68*10**3;",
+ "#voltage output for log amplifier",
+ "V_OUT=-0.025*math.log(V_in/(I_EBO*R1));",
+ "print('output voltage = %f Volts'%V_OUT)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "output voltage = -0.175143 Volts"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 14.10, Page Number: 475<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import math",
+ "I_EBO=40.0*10**-9;",
+ "V_in=175.1*10**-3;",
+ "R_f=68.0*10**3;",
+ "V_OUT=-I_EBO*R_f*math.exp(V_in/0.025);",
+ "print('output voltage = %f Volts'%V_OUT)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "output voltage = -2.994797 Volts"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices/Chapter15.ipynb b/Electronic_Devices/Chapter15.ipynb
new file mode 100755
index 00000000..51a03fc9
--- /dev/null
+++ b/Electronic_Devices/Chapter15.ipynb
@@ -0,0 +1,325 @@
+{
+ "metadata": {
+ "name": "Chapter_15"
+ },
+ "nbformat": 2,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h1>Chapter 15: Active Filters<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 15.1, Page Number: 491<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "%pylab inline"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "",
+ "Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline].",
+ "For more information, type 'help(pylab)'."
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "f0=15*10**3; #center frequency in hertz",
+ "BW=1*10**3;",
+ "Q=f0/BW;",
+ "if Q>10:",
+ " print('narrow band filter, Q = %d'%Q)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "narrow band filter, Q = 15"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 15.2, Page Number: 494<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "R2=10*10**3;",
+ "R1=0.586*R2; #FOR BUTTERWORTH RESPONSE",
+ "print('R1 in ohms =%d'%R1)",
+ "print('5.6kilo ohm will be ideally close to maximally flat butterworth response')"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R1 in ohms =5860",
+ "5.6kilo ohm will be ideally close to maximally flat butterworth response"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 15.3, Page Number: 496<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import math",
+ "R_A=1*10**3;",
+ "R2=1*10**3;",
+ "R_B=R_A;",
+ "R=R_A;",
+ "C_A=0.022*10**-6;",
+ "C_B=C_A;",
+ "C=C_A;",
+ "f_c=1/(2*math.pi*R*C); #critical frequency",
+ "R1=0.586*R2; #for butterworth response",
+ "print('critical frequency in hertz =%f'%f_c)",
+ "print('value of R1 in ohms = %d'%R1)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "critical frequency in hertz =7234.315595",
+ "value of R1 in ohms = 586"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 15.4, Page Number: 498<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import math",
+ "f_c=2860.0;",
+ "R=1.8*10**3;",
+ "C=1/(2*math.pi*f_c*R);",
+ "R2=R;",
+ "R1=0.152*R2; #BUTTERWORTH RESPONSE IN FIRST STAGE",
+ "R4=R;",
+ "R3=1.235*R4; #BUTTERWORTH RESPONSE IN SECOND STAGE",
+ "C=C*10**8",
+ "print('capacitance in farads = %f *10^-8'%C);",
+ "print('R1 in ohms for butterworth response in first stage = %.1f'%R1)",
+ "print('R3 in ohms for butterworth response in second stage = %d'%R3)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "capacitance in farads = 3.091588 *10^-8",
+ "R1 in ohms for butterworth response in first stage = 273.6",
+ "R3 in ohms for butterworth response in second stage = 2223"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 15.5, Page Number: 500<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import math",
+ "f_c=10*10**3; #critical frequency in hertz",
+ "R=33*10**3; #Assumption",
+ "R2=R;",
+ "C=1/(2*math.pi*f_c*R);",
+ "R1=0.586*R2; #for butterworth response",
+ "C=C*10**10",
+ "print('Capacitance in Farads = %f * 10^-10'%C)",
+ "print('R1 in ohms taking R2=33kilo-ohms = %d'%R1)",
+ "R1=3.3*10**3; #Assumption",
+ "R2=R1/0.586; #butterworth response",
+ "print('R2 in ohms taking R1=3.3kilo-ohms = %f'%R2)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Capacitance in Farads = 4.822877 * 10^-10",
+ "R1 in ohms taking R2=33kilo-ohms = 19338",
+ "R2 in ohms taking R1=3.3kilo-ohms = 5631.399317"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 15.6, Page Number:503<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import math",
+ "R1=68.0*10**3;",
+ "R2=180.0*10**3;",
+ "R3=2.7*10**3;",
+ "C=0.01*10**-6;",
+ "f0=(math.sqrt((R1+R3)/(R1*R2*R3)))/(2*math.pi*C);",
+ "A0=R2/(2*R1);",
+ "Q=math.pi*f0*C*R2;",
+ "BW=f0/Q;",
+ "print('center frequency in hertz = %f'%f0)",
+ "print('maximum gain = %f'%A0)",
+ "print('bandwidth in hertz = %f'%BW)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "center frequency in hertz = 736.134628",
+ "maximum gain = 1.323529",
+ "bandwidth in hertz = 176.838826"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 15.7, Page Number: 504<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import math",
+ "R4=1000.0;",
+ "C1=0.022*10**-6;",
+ "R7=R4;",
+ "C2=C1;",
+ "R6=R4;",
+ "R5=100.0*10**3;",
+ "f_c=1/(2*math.pi*R4*C1); #critical frequency in hertz for each integrator",
+ "f0=f_c #center frequency",
+ "Q=(1+(R5/R6))/3;",
+ "BW=f0/Q;",
+ "print('center frequency in hertz = %f'%f0)",
+ "print('value of Q = %f'%Q)",
+ "print('bandwidth in hertz = %f'%BW)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "center frequency in hertz = 7234.315595",
+ "value of Q = 33.666667",
+ "bandwidth in hertz = 214.880661"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 15.8, Page Number: 507<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import math",
+ "R4=12.0*10**3;",
+ "C1=0.22*10**-6;",
+ "R7=R4;",
+ "C2=C1;",
+ "R6=3.3*10**3;",
+ "Q=10;",
+ "f0=1/(2*math.pi*R7*C2);",
+ "R5=(3*Q-1)*R6;",
+ "print('center frequency in hertz = %f'%f0)",
+ "print('R5 in ohms = %d'%R5)",
+ "print('Nearest value is 100 kilo-ohms')"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "center frequency in hertz = 60.285963",
+ "R5 in ohms = 95700",
+ "Nearest value is 100 kilo-ohms"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices/Chapter16.ipynb b/Electronic_Devices/Chapter16.ipynb
new file mode 100755
index 00000000..b082e3ac
--- /dev/null
+++ b/Electronic_Devices/Chapter16.ipynb
@@ -0,0 +1,299 @@
+{
+ "metadata": {
+ "name": "Chapter_16"
+ },
+ "nbformat": 2,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h1>Chapter 16: Oscillators<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 16.1, Page Number: 524<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "%pylab inline"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "",
+ "Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline].",
+ "For more information, type 'help(pylab)'."
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import math",
+ "R1=10*10**3;",
+ "R2=R1;",
+ "R=R1;",
+ "C1=0.01*10**-6;",
+ "C2=C1;",
+ "C=C1;",
+ "R3=1*10**3;",
+ "r_ds=500;",
+ "f_r=1/(2*math.pi*R*C);",
+ "print('resonant frequency of the Wein-bridge oscillator in Hertz = %.4f'%f_r)",
+ "#closed loop gain A_v=3 to sustain oscillations",
+ "A_v=3;",
+ "#A_v=(R_f+R_i)+1 where R_i is composed of R3 and r_ds",
+ "R_f=(A_v-1)*(R3+r_ds);",
+ "print('value of R_f in ohms = %d'%R_f)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "resonant frequency of the Wein-bridge oscillator in Hertz = 1591.5494",
+ "value of R_f in ohms = 3000"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 16.2, Page Number: 525<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import math",
+ "A_cl=29; #A_cl=R_f/R_i;",
+ "R3=10*10**3;",
+ "R_f=A_cl*R3;",
+ "print('value of R_f in ohms = %d'%R_f)",
+ "#let R1=R2=R3=R and C1=C2=C3=C",
+ "R=R3;",
+ "C3=0.001*10**-6;",
+ "C=C3;",
+ "f_r=1/(2*math.pi*math.sqrt(6)*R*C);",
+ "print('frequency of oscillation in Hertz = %f'%f_r)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of R_f in ohms = 290000",
+ "frequency of oscillation in Hertz = 6497.473344"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 16.3, Page Number: 530<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import math",
+ "C1=0.1*10**-6;",
+ "C2=0.01*10**-6;",
+ "L=50.0*10**-3; #in Henry",
+ "C_T=C1*C2/(C1+C2); #total capacitance",
+ "f_r=1/(2*math.pi*math.sqrt((L*C_T)));",
+ "print('frequency of oscillation in Hertz when Q>10 is \\n\\t %f'%f_r)",
+ "Q=8.0; #when Q drops to 8",
+ "f_r1=(1/(2*math.pi*math.sqrt((L*C_T))))*math.sqrt((Q**2/(1+Q**2)));",
+ "print('frequency of oscillation in hertz when Q=8 is \\n \\t %f'%f_r1)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "frequency of oscillation in Hertz when Q>10 is ",
+ "\t 7465.028533",
+ "frequency of oscillation in hertz when Q=8 is ",
+ " \t 7407.382663"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 16.4, Page Number: 535<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "R1=10.0*10**3;",
+ "R2=33.0*10**3;",
+ "R3=10.0*10**3;",
+ "C=0.01*10**-6;",
+ "f_r=(1/(4*R1*C))*(R2/R3);",
+ "print('frequency of oscillation in hertz is \\n\\t%d'%f_r)",
+ "#the value of R1 when frequency of oscillation is 20 kHz",
+ "f=20.0*10**3;",
+ "R1=(1/(4*f*C))*(R2/R3);",
+ "print('value of R1 in ohms to make frequency 20 kiloHertz is \\n\\t%d'%R1)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "frequency of oscillation in hertz is ",
+ "\t8250",
+ "value of R1 in ohms to make frequency 20 kiloHertz is ",
+ "\t4125"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 16.5, Page Number: 537<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import pylab",
+ "import numpy",
+ "V=15.0;",
+ "C=0.0047*10**-6;",
+ "R3=10.0*10**3;",
+ "R4=R3;",
+ "R2=10.0*10**3;",
+ "R1=68.0*10**3;",
+ "R_i=100.0*10**3;",
+ "V_G=R4*V/(R3+R4); #gate voltage at which PUT turns on",
+ "V_p=V_G; #neglecting 0.7V, this the peak voltage of sawtooth wave",
+ "print('neglecting 0.7V, the peak voltage of sawtooth wave = %.1f V'%V_p)",
+ "V_F=1.0; #minimum peak value of sawtooth wave",
+ "V_pp=V_p-V_F;",
+ "print('peak to peak amplitude of the sawtooth wave = %.1f V'%V_pp)",
+ "V_IN=-V*R2/(R1+R2);",
+ "f=(abs(V_IN)/(R_i*C))*(1/(V_pp));",
+ "print('frequency of the sawtooth wave = %.1f Hz'%f)",
+ "",
+ "#############PLOT###############################",
+ "",
+ "t = arange(0.0, 2.0, 0.0005)",
+ "t1= arange(2.0, 4.0, 0.0005)",
+ "t2= arange(4.0, 6.0, 0.0005)",
+ "k=arange(0.1,7.5, 0.0005)",
+ "t3=(2*k)/k",
+ "t4=(4*k)/k",
+ "t6=(6*k)/k",
+ "",
+ "subplot(111)",
+ "plot(t, (6.5/2)*t+1)",
+ "plot(t1, (6.5/2)*t+1,'b')",
+ "plot(t2, (6.5/2)*t+1,'b')",
+ "plot(t3,k,'b')",
+ "plot(t4,k,'b')",
+ "plot(t6,k,'b')",
+ "",
+ "ylim( (1,8) )",
+ "ylabel('Vout')",
+ "xlabel('ms')",
+ "title('Output of the Circuit')"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "neglecting 0.7V, the peak voltage of sawtooth wave = 7.5 V",
+ "peak to peak amplitude of the sawtooth wave = 6.5 V",
+ "frequency of the sawtooth wave = 629.5 Hz"
+ ]
+ },
+ {
+ "output_type": "pyout",
+ "prompt_number": 6,
+ "text": [
+ "<matplotlib.text.Text at 0xa046eec>"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "png": "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\n"
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 16.6, Page Number: 542<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "R1=2.2*10**3;",
+ "R2=4.7*10**3;",
+ "C_ext=0.022*10**-6;",
+ "f_r=1.44/((R1+2*R2)*C_ext);",
+ "print('frequency of the 555 timer in hertz = %f'%f_r)",
+ "duty_cycle=((R1+R2)/(R1+2*R2))*100;",
+ "print('duty cycle in percentage = %f'%duty_cycle)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "frequency of the 555 timer in hertz = 5642.633229",
+ "duty cycle in percentage = 59.482759"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices/Chapter17.ipynb b/Electronic_Devices/Chapter17.ipynb
new file mode 100755
index 00000000..a95b29db
--- /dev/null
+++ b/Electronic_Devices/Chapter17.ipynb
@@ -0,0 +1,336 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:dca2eb0dc5462992ceade27e53e297f6073a62b5b813c53a51758356342ce482"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1>Chapter 17: Voltage Regulators<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 17.1, Page Number:552 <h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "%pylab inline"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline].\n",
+ "For more information, type 'help(pylab)'."
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#variable declaration\n",
+ "Del_V_out=0.25;\n",
+ "V_out=15;\n",
+ "Del_V_in=5; #All voltages in Volts\n",
+ "\n",
+ "#Calculations\n",
+ "line_regulation=((Del_V_out/V_out)/Del_V_in)*100;\n",
+ "\n",
+ "#Result\n",
+ "print('line regulation in %%V is %f' %line_regulation)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "line regulation in %V is 0.333333"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 17.2, Page Number: 553<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variable Declaration\n",
+ "V_NL=12.0; #No load output voltage in Volts\n",
+ "V_FL=11.9; #Full load output voltage in Volts\n",
+ "I_F=10.0; #Full load current in milli-Amperes\n",
+ "\n",
+ "#Calculations\n",
+ "load_regulation=((V_NL-V_FL)/V_FL)*100;\n",
+ "load_reg=load_regulation/I_F;\n",
+ "\n",
+ "#Result\n",
+ "print('load regulation as percentage change from no load to full load = %f'%load_regulation)\n",
+ "print('\\nload regulation as percentage change per milliampere = %f' %load_reg)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load regulation as percentage change from no load to full load = 0.840336\n",
+ "\n",
+ "load regulation as percentage change per milliampere = 0.084034"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 17.3, Page Number: 556<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "V_REF=5.1 #Zener voltage in volts\n",
+ "R2=10*10**3;\n",
+ "R3=10*10**3; #resistances in ohm\n",
+ "V_out=(1+(R2/R3))*V_REF;\n",
+ "print('output voltage in volts = %.1f'%V_out)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "output voltage in volts = 10.2"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 17.4, Page Number: 557<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "R4=1; #Resistance in Ohms\n",
+ "I_L_max=0.7/R4;\n",
+ "print('maximum current provided to load(in amperes) = %.1f'%I_L_max)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum current provided to load(in amperes) = 0.7"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 17.5, Page Number: 560<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "V_IN=12.5; #maximum input voltage in volts\n",
+ "R1=22; #In Ohms\n",
+ "\n",
+ "V_OUT=0;\n",
+ "V_R1=V_IN-V_OUT; #Voltage across R1\n",
+ "P_R1=(V_R1*V_R1)/R1; #maximum power dissipated by R1\n",
+ "print('maximum power dissipated by R1 in WATTS = %f'%P_R1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum power dissipated by R1 in WATTS = 7.102273"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 17.6, Page Number: 569<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "print('SAME AS EX-2.8 in CHAPTER-2')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "SAME AS EX-2.8 in CHAPTER-2"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 17.7, Page Number: 572<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "I_max=700*10**-3; #in Amperes\n",
+ "R_ext=0.7/I_max;\n",
+ "print('value of resistor in Ohms for which max current is 700mA = %f'%R_ext)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of resistor in Ohms for which max current is 700mA = 1.000000"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 17.8, Page Number: 572<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "V_OUT=24.0; #Output voltage in Volts\n",
+ "R_L=10.0; #Load resistance in Ohms\n",
+ "V_IN=30.0; #Input voltage in Volts\n",
+ "I_max=700.0*10**-3; #maximum interal current in Amperes\n",
+ "I_L=V_OUT/R_L; #load current in amperes\n",
+ "I_ext=I_L-I_max; #current through the external pass transistor in Amperes\n",
+ "P_ext_Qext=I_ext*(V_IN-V_OUT); #power dissipated\n",
+ "print('power dissiated(in WATTS) by the external pass transistor = %.1f'%P_ext_Qext)\n",
+ "print('\\nFor safety purpose, we choose a power transistor with rating more than this, say 15W')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power dissiated(in WATTS) by the external pass transistor = 10.2\n",
+ "\n",
+ "For safety purpose, we choose a power transistor with rating more than this, say 15W"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 17.9, Page Number: 574<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "V_out=5.0; #7805 gives output voltage of 5V\n",
+ "I_L=1.0; #constant current of 1A\n",
+ "R1=V_out/I_L;\n",
+ "print('The value of current-setting resistor in ohms = %d'%R1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of current-setting resistor in ohms = 5"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices/Chapter18.ipynb b/Electronic_Devices/Chapter18.ipynb
new file mode 100755
index 00000000..e195b9f9
--- /dev/null
+++ b/Electronic_Devices/Chapter18.ipynb
@@ -0,0 +1,56 @@
+{
+ "metadata": {
+ "name": "Chapter_18"
+ },
+ "nbformat": 2,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h1>Chapter 18: Programmable Analog Arrays<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 18.1, Page Number: 588<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import math",
+ "#Variable declaration",
+ "C=1000*10**-12; #Switche capacitor value in farads",
+ "R=1000; #resistance in ohms",
+ "",
+ "#calculation",
+ "T=R*C; #Time period",
+ "f=1/T; #Frequency at which switch should operate",
+ "f=math.ceil(f)",
+ "#Result",
+ "print('Frequency at which each switch should operate(in hertz) is \\n %d' %f)",
+ "print('Duty cycle should be 50%')"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Frequency at which each switch should operate(in hertz) is ",
+ " 1000000",
+ "Duty cycle should be 50%"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices/Chapter2.ipynb b/Electronic_Devices/Chapter2.ipynb
new file mode 100755
index 00000000..3934869f
--- /dev/null
+++ b/Electronic_Devices/Chapter2.ipynb
@@ -0,0 +1,629 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d0aa9e80db4a8882af89cf646425004e4e19d2bf8cf22acae2943bf211cb0ab1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1>Chapter 2: Diode Application<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 2.1, Page Number: 46<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "%pylab inline"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline].\n",
+ "For more information, type 'help(pylab)'."
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "V_p=50; #Peak value is 50V\n",
+ "\n",
+ "#calculation\n",
+ "V_avg=V_p/math.pi;\n",
+ "\n",
+ "#result\n",
+ "print \"average value of half wave rectifier = %.2f volts\" %V_avg"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "average value of half wave rectifier = 15.92 volts"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 2.2(a), Page Number: 46<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "f=1; #frequency\n",
+ "V_p_in=5; #peak input\n",
+ "\n",
+ "#calculation\n",
+ "V_pout=V_p_in-0.7; #output voltage\n",
+ "t_d=(math.asin(0.7/V_p_in))/(2*math.pi*f);\n",
+ "\n",
+ "#result\n",
+ "print \"half wave rectifier output = %.2f volts\" %V_pout;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "half wave rectifier output = 4.30 volts"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 2.2(b), Page Number: 46<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "f=1; #frequency\n",
+ "T=1/f; #time period\n",
+ "V_p_in=100; #peak input voltage\n",
+ "\n",
+ "#calculation\n",
+ "V_pout=(V_p_in-0.7); #peak output \n",
+ "t_d=(math.asin(0.7/V_p_in))/(2*math.pi*f) \n",
+ "\n",
+ "#result\n",
+ "print \"output of half wave rectifier = %.2f volts\" %V_pout"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "output of half wave rectifier = 99.30 volts"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 2.3, Page Number: 48<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "V_p_in=156; #Peak input voltage\n",
+ "V_p_pri=156; #Peak voltage of primary of transformer\n",
+ "n=0.5; #Turn ratio is 2:1\n",
+ "\n",
+ "#calculation\n",
+ "V_p_sec=n*V_p_pri;\n",
+ "V_p_out=(V_p_sec-0.7); #Peak output voltage\n",
+ "\n",
+ "#result\n",
+ "print \"peak output voltage of half wave rectifier = %.1f volts\" %V_p_out"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak output voltage of half wave rectifier = 77.3 volts"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 2.4, Page Number: 49<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "V_p=15; #Peak voltage in volt\n",
+ "\n",
+ "#calculation\n",
+ "V_avg=(2*V_p)/math.pi;\n",
+ "\n",
+ "#result\n",
+ "print \"Average value of output of full wave rectifier = %.2f volts\" %V_avg"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Average value of output of full wave rectifier = 9.55 volts"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 2.5, Page Number: 52<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "V_p_pri=100.0; #Peak voltage across primary winding\n",
+ "n=1.0/2; #tun ratio is 2:1\n",
+ "V_p_sec=n*V_p_pri;\n",
+ "V_sec=V_p_sec/2; #voltage across each secondary is half the total voltage\n",
+ "V_pout=V_sec-0.7;\n",
+ "\n",
+ "print('full wave rectifier output voltage = %f V'%V_pout)\n",
+ "PIV=2*V_pout+0.7;\n",
+ "print('PIV = %fV'%PIV)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "full wave rectifier output voltage = 24.300000 V\n",
+ "PIV = 49.300000V"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 2.6, Page Number: 54<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "V_rms=12.0; #rms secondary voltage\n",
+ "\n",
+ "#calculation\n",
+ "V_p_sec=math.sqrt(2)*V_rms; #peak secondary voltage\n",
+ "V_th=0.7; #knee voltage of diode\n",
+ "V_p_out=V_p_sec-2*V_th; #in one cycle, 2 diodes conduct\n",
+ "PIV=V_p_out+V_th; #applying KVL\n",
+ "\n",
+ "#result\n",
+ "print \"Peak output voltage = %.2f volt\" %V_p_out\n",
+ "print \"PIV across each diode = %.2f volt\" %PIV"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Peak output voltage = 15.57 volt\n",
+ "PIV across each diode = 16.27 volt"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 2.7, Page Number: 58<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "R_l=2200; #load resistance in Ohm\n",
+ "C=50*10**-6; #capacitance in Farad\n",
+ "V_rms=115; #rms of primary\n",
+ "\n",
+ "#calculation\n",
+ "V_p_pri=math.sqrt(2)*V_rms; #peak voltage across primary\n",
+ "n=0.1; #turn ratio is 10:1\n",
+ "V_p_sec=n*V_p_pri; #primary voltage across secondary\n",
+ "V_p_rect=V_p_sec-1.4 #unfiltered peak rectified voltage\n",
+ "#we subtract 1.4 because in each cycle 2 diodes conduct & 2 do not\n",
+ "f=120; #frequency of full wave rectified voltage\n",
+ "V_r_pp=(1/(f*R_l*C))*V_p_rect; #peak to peak ripple voltage\n",
+ "V_DC=(1-(1/(2*f*R_l*C)))*V_p_rect;\n",
+ "r=V_r_pp/V_DC;\n",
+ "\n",
+ "#result\n",
+ "print \"Ripple factor = %.3f \" %r"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ripple factor = 0.079 "
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 2.8, Page Number: 62<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "V_REF=1.25; #in volts\n",
+ "V_R1=V_REF; #voltage in volt\n",
+ "R1=220.0; #in ohms\n",
+ "I_ADJ=50*10**-6 #in amperes\n",
+ "\n",
+ "#calculation\n",
+ "# MAX VALUE OF R2=5000 Ohms\n",
+ "R2_min=0.0; #min resistance\n",
+ "V_out_min=V_REF*(1+(R2_min/R1))+I_ADJ*R2_min;\n",
+ "R2_max=5000.0; #max value of resistance\n",
+ "V_out_max=V_REF*(1+(R2_max/R1))+I_ADJ*R2_max;\n",
+ "\n",
+ "#result\n",
+ "print \"minimum output voltage = %.2f volt\" %V_out_min\n",
+ "print \"maximum output voltage = %.2f volt\" %V_out_max"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "minimum output voltage = 1.25 volt\n",
+ "maximum output voltage = 29.91 volt"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 2.9,Page Number: 64<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "V_NL=5.18 #No load output voltage\n",
+ "V_FL=5.15 #Full load output voltage\n",
+ "load_reg=((V_NL-V_FL)/V_FL)*100 #In percentage\n",
+ "print('load regulation percent = %.2f%% '%load_reg)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load regulation percent = 0.58% "
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 2.10, Page Number: 66<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import pylab as py\n",
+ "import numpy as np\n",
+ "\n",
+ "#let input wave be V_in=V_p_in*sin(2*%pi*f*t) \n",
+ "f=1.0; #Frequency is 1Hz\n",
+ "T=1/f;\n",
+ "R_1=100.0; #Resistances in ohms\n",
+ "R_L=1000.0; #Load\n",
+ "V_p_in=10.0; #Peak input voltage\n",
+ "V_th=0.7; #knee voltage of diode\n",
+ "\n",
+ "V_p_out=V_p_in*(R_L/(R_L+R_1)); #peak output voltage\n",
+ "print('peak output voltage = %.2f V'%V_p_out)\n",
+ "\n",
+ "t = np.arange(0, 3.5 , 0.0005)\n",
+ "z=V_p_in*np.sin(2*np.pi*f*t)*(R_L/(R_L+R_1))\n",
+ "\n",
+ "subplot(211)\n",
+ "plot(t,z)\n",
+ "ylim(-9.09,9.09)\n",
+ "title('Input Voltage Waveform')\n",
+ "\n",
+ "subplot(212)\n",
+ "plot(t,z)\n",
+ "ylim(-0.07,9.09)\n",
+ "title('Output Voltage Waveform')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak output voltage = 9.09 V"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "pyout",
+ "prompt_number": 12,
+ "text": [
+ "<matplotlib.text.Text at 0xa3bf44c>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n"
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 2.11, Page Number: 67<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#from pylab import figure, show\n",
+ "#from numpy import arange, sin, pi,bool\n",
+ "#import numpy as np\n",
+ "import pylab as py\n",
+ "import numpy as np\n",
+ "#let input wave be V_in=V_p_in*sin(2*%pi*f*t) \n",
+ "f=1.0; #Frequency is 1Hz\n",
+ "T=1/f;\n",
+ "V_p_in=10; #Peak input voltage\n",
+ "V_th=0.7; #knee voltage of diode\n",
+ "print('max output voltage is 5.7V')\n",
+ "print('min output voltage is -5.7V')\n",
+ "\n",
+ "###############GRAPH Plotting#################################\n",
+ "t = arange(0.0,4.5,0.0005)\n",
+ "V_in=V_p_in*sin(2*pi*f*t);\n",
+ "\n",
+ "Vout=V_in;\n",
+ "#fig = figure(2)\n",
+ "subplot(211)\n",
+ "plot(t,V_in)\n",
+ "#ax2.grid(True)\n",
+ "ylim( (-10,10) )\n",
+ "title('Input to the +ve and -ve diode limiter ')\n",
+ "subplot(212)\n",
+ "plot(t,V_in)\n",
+ "#ax1.grid(True)\n",
+ "ylim( (-5.7,5.7) )\n",
+ "title('Output of +ve and -ve diode limiter')\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "max output voltage is 5.7V\n",
+ "min output voltage is -5.7V"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "pyout",
+ "prompt_number": 13,
+ "text": [
+ "<matplotlib.text.Text at 0xa6c976c>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nx/PeAAAAAElFTkSuQmCC\n"
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 2.12, Page Number: 76<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#variable declaration\n",
+ "V_p_in=18.0; #peak input voltage is 18V\n",
+ "V_supply=12.0;\n",
+ "R2=100.0;\n",
+ "R3=220.0; #resistances in ohms\n",
+ "#calculation\n",
+ "V_bias=V_supply*(R3/(R2+R3));\n",
+ "\n",
+ "#result\n",
+ "print('diode limiting the voltage at this voltage =%fV'%V_bias)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "diode limiting the voltage at this voltage =8.250000V"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 2.13, Page Number: 78<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "V_p_in=24.0;\n",
+ "V_DC=-(V_p_in-0.7); #DC level added to output\n",
+ "print('V_DC = %.1fV'%V_DC)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "V_DC = -23.3V"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices/Chapter3.ipynb b/Electronic_Devices/Chapter3.ipynb
new file mode 100755
index 00000000..b0f770b6
--- /dev/null
+++ b/Electronic_Devices/Chapter3.ipynb
@@ -0,0 +1,369 @@
+{
+ "metadata": {
+ "name": "Chapter_3"
+ },
+ "nbformat": 2,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h1>Chapter 3: Special-purpose Diodes<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 3.1, Page Number:88<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "%pylab inline"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "",
+ "Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline].",
+ "For more information, type 'help(pylab)'."
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "delVZ=50*10**-3; #voltage in volts, from graph",
+ "delIZ=5*10**-3; #current in amperes, from rgraph",
+ "",
+ "#calculation",
+ "ZZ=delVZ/delIZ; #zener impedence",
+ "",
+ "# result",
+ "print \"zener impedance = %d ohm \" %ZZ"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "zener impedance = 10 ohm "
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 3.2, Page Number:89<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "I_ZT=37*10**-3; #IN AMPERES",
+ "V_ZT=6.80; #IN VOLTS",
+ "Z_ZT=3.50; #IN OHMS",
+ "I_Z=50*10**-3; #IN AMPERES",
+ "",
+ "#calculation",
+ "DEL_I_Z=I_Z-I_ZT; #change current",
+ "DEL_V_Z=DEL_I_Z*Z_ZT; #change voltage",
+ "V_Z=V_ZT+DEL_V_Z; #voltage across zener terminals",
+ "print \"voltage across zener terminals when current is 50 mA = %.3f volts\" %V_Z",
+ "I_Z=25*10**-3; #IN AMPERES",
+ "DEL_I_Z=I_Z-I_ZT; #change current",
+ "DEL_V_Z=DEL_I_Z*Z_ZT; #change voltage",
+ "V_Z=V_ZT+DEL_V_Z; #voltage across zener terminals",
+ "",
+ "#result",
+ "print \"voltage across zener terminals when current is 25 mA = %.3f volts\" %V_Z"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage across zener terminals when current is 50 mA = 6.845 volts",
+ "voltage across zener terminals when current is 25 mA = 6.758 volts"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 3.3, Page Number:90<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "V_Z=8.2; #8.2 volt zener diode",
+ "TC=0.0005; #Temperature coefficient (per degree celsius)",
+ "T1=60; #Temperature 1 in celsius",
+ "T2=25; #Temperature 2 in celsius",
+ "",
+ "#calculation",
+ "DEL_T=T1-T2; #change in temp",
+ "del_V_Z=V_Z*TC*DEL_T; #change in voltage",
+ "voltage=V_Z+del_V_Z; #zener voltage",
+ "",
+ "#result",
+ "print \"zener voltage at 60 degree celsius = %.3f volt\" %voltage"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "zener voltage at 60 degree celsius = 8.343 volt"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 3.4, Page Number:90<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "P_D_max=400*10**-3; #power in watts",
+ "df=3.2*10**-3 #derating factor in watts per celsius",
+ "del_T=(90-50); #in celsius, temperature difference",
+ "",
+ "#calculation",
+ "P_D_deru=P_D_max-df*del_T; #power dissipated",
+ "P_D_der=P_D_deru*1000;",
+ "",
+ "#result",
+ "print \"maximum power dissipated at 90 degree celsius = %d mW\" %P_D_der"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum power dissipated at 90 degree celsius = 272 mW"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 3.5, Page Number: 92<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "V_Z=5.1;",
+ "I_ZT=49*10**-3;",
+ "I_ZK=1*10**-3;",
+ "Z_Z=7;",
+ "R=100;",
+ "P_D_max=1;",
+ "",
+ "#calculation",
+ "V_out=V_Z-(I_ZT-I_ZK)*Z_Z; #output voltage at I_ZK",
+ "V_IN_min=I_ZK*R+V_out; #input voltage",
+ "I_ZM=P_D_max/V_Z; #current",
+ "V_out=V_Z+(I_ZM-I_ZT)*Z_Z; #output voltage at I_ZM",
+ "V_IN_max=I_ZM*R+V_out; #max input voltage",
+ "",
+ "#result",
+ "print \"maximum input voltage regulated by zener diode = %.3f volts\" %V_IN_max",
+ "print \"minimum input voltage regulated by zener diode = %.3f volts\" %V_IN_min"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum input voltage regulated by zener diode = 25.737 volts",
+ "minimum input voltage regulated by zener diode = 4.864 volts"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 3.6, Page Number: 93<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "V_Z=12.0; #voltage in volt",
+ "V_IN=24.0; #ip voltage in volt",
+ "I_ZK=0.001; #current in ampere",
+ "I_ZM=0.050; #current in ampere ",
+ "Z_Z=0; #impedence",
+ "R=470; #resistance in ohm",
+ "",
+ "#calculation",
+ "#when I_L=0, I_Z is max and is equal to the total circuit current I_T",
+ "I_T=(V_IN-V_Z)/R; #current",
+ "I_Z_max=I_T; #max current",
+ "if I_Z_max<I_ZM : # condition for min currert ",
+ " I_L_min=0;",
+ "",
+ "I_L_max=I_T-I_ZK; #max current",
+ "R_L_min=V_Z/I_L_max; #min resistance",
+ "",
+ "#result",
+ "print \"minimum value of load resistance = %.2f ohm\" %R_L_min",
+ "print \"minimum curent = %.3f ampere\" %I_L_min",
+ "print \"maximum curent = %.3f ampere\" %I_L_max"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "minimum value of load resistance = 489.16 ohm",
+ "minimum curent = 0.000 ampere",
+ "maximum curent = 0.025 ampere"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 3.7, Page Number: 94<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "V_IN=24.0; #voltage in volt",
+ "V_Z=15.0; #voltage in volt",
+ "I_ZK=0.25*10**-3; #current in ampere",
+ "I_ZT=17*10**-3; #current in ampere",
+ "Z_ZT=14.0; #impedence",
+ "P_D_max=1.0; #max power dissipation",
+ "",
+ "#calculation",
+ "V_out_1=V_Z-(I_ZT-I_ZK)*Z_ZT; #output voltage at I_ZK",
+ "print \"output voltage at I_ZK = %.2f volt\" %V_out_1",
+ "I_ZM=P_D_max/V_Z;",
+ "",
+ "V_out_2=V_Z+(I_ZM-I_ZT)*Z_ZT; #output voltage at I_ZM",
+ "print \"output voltage a I_ZM = %.2f volt\" %V_out_2",
+ "R=(V_IN-V_out_2)/I_ZM; #resistance",
+ "print \"value of R for maximum zener current, no load = %.2f ohm\" %R",
+ "print \"closest practical value is 130 ohms\"",
+ "R=130.0;",
+ "#for minimum load resistance(max load current) zener current is minimum (I_ZK)",
+ "I_T=(V_IN-V_out_1)/R; #current",
+ "I_L=I_T-I_ZK; #current",
+ "R_L_min=V_out_1/I_L; #minimum load resistance",
+ "",
+ "#result",
+ "print \"minimum load resistance = %.2f ohm\" %R_L_min"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "output voltage at I_ZK = 14.77 volt",
+ "output voltage a I_ZM = 15.70 volt",
+ "value of R for maximum zener current, no load = 124.57 ohm",
+ "closest practical value is 130 ohms",
+ "minimum load resistance = 208.60 ohm"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 3.8, Page Number: 96<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "#variable declaration",
+ "V_p_in=10.0; #Peak input voltage",
+ "V_th=0.7; #forward biased zener",
+ "V_Z1=5.1;",
+ "V_Z2=3.3;",
+ "",
+ "V_p_in=20.0;",
+ "V_Z1=6.2;",
+ "V_Z2=15.0;",
+ "",
+ "#result",
+ "print('max voltage = %.1f V'%(V_Z1+V_th))",
+ "print('min voltage = %.1f V'%(-(V_Z2+V_th)))"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "max voltage = 6.9 V",
+ "min voltage = -15.7 V"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices/Chapter4.ipynb b/Electronic_Devices/Chapter4.ipynb
new file mode 100755
index 00000000..8aaa9760
--- /dev/null
+++ b/Electronic_Devices/Chapter4.ipynb
@@ -0,0 +1,446 @@
+{
+ "metadata": {
+ "name": "Chapter_4"
+ },
+ "nbformat": 2,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h1>Chapter 4: Bipolar Junction Transistors (BJTs)<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 4.1, Page Number: 120 <h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "%pylab inline"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "",
+ "Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline].",
+ "For more information, type 'help(pylab)'."
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "I_C=3.65*10**-3; #collector current in amperes",
+ "I_B=50*10**-6; #base current in amperes",
+ "",
+ "#calculation",
+ "B_DC=I_C/I_B; #B_DC value",
+ "I_E=I_B+I_C; #current in ampere",
+ "",
+ "# result",
+ "print \"B_DC = %d \" %B_DC",
+ "print \"Emitter current = %.4f ampere\" %I_E"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "B_DC = 73 ",
+ "Emitter current = 0.0037 ampere"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 4.2, Page Number: 121<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "V_BE=0.7; # voltage in volt",
+ "B_DC=150; # voltage in volt",
+ "V_BB=5; # voltage in volt",
+ "V_CC=10; # voltage in volt",
+ "R_B=10*10**3; # resistance in ohm",
+ "R_C=100; # resistance in ohm",
+ "",
+ "#calculation",
+ "I_B=(V_BB-V_BE)/R_B; #base current in amperes",
+ "I_C=B_DC*I_B; #collector current in amperes",
+ "I_E=I_C+I_B; #emitter current in amperes",
+ "V_CE=V_CC-I_C*R_C; #collector to emitter voltage in volts",
+ "V_CB=V_CE-V_BE; #collector to base voltage in volts",
+ "",
+ "# result",
+ "print \"base current = %.5f amperes\" %I_B",
+ "print \"collector current = %.4f amperes\" %I_C",
+ "print \"emitter current = %.5f amperes\" %I_E",
+ "print \"collector to emitter voltage =%.2f volts\" %V_CE",
+ "print \"collector to base voltage =%.2f volts\" %V_CB"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "base current = 0.00043 amperes",
+ "collector current = 0.0645 amperes",
+ "emitter current = 0.06493 amperes",
+ "collector to emitter voltage =3.55 volts",
+ "collector to base voltage =2.85 volts"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 4.3, Page Number: 123<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "",
+ "import pylab as py",
+ "import numpy as np",
+ "",
+ "#variable declaration",
+ "beta=100 # current gain",
+ "print'Ideal family of collector curve'",
+ "",
+ "ic1 = arange(0.00001, 0.45, 0.0005)",
+ "ic2 = arange(0.00001, 0.5, 0.0005)",
+ "ic3 = arange(0.00001, 0.6, 0.0005)",
+ "ic4 = arange(0.00001, 0.7, 0.0005)",
+ "vcc1=ic1*0.5/0.7",
+ "vcc2=ic2*1.35/0.7",
+ "vcc3=ic3*2/0.7",
+ "vcc4=ic4*2.5/0.7",
+ "m1=arange(0.45,5.0,0.0005)",
+ "m2=arange(0.5,5.0,0.0005)",
+ "m3=arange(0.6,5.0,0.0005)",
+ "m4=arange(0.7,5.0,0.0005)",
+ "",
+ "plot(ic1,vcc1,'b')",
+ "plot(ic2,vcc2,'b')",
+ "plot(ic3,vcc3,'b')",
+ "plot(ic4,vcc4,'b')",
+ "plot(m1,0.32*m1/m1,'b')",
+ "plot(m2,0.96*m2/m2,'b')",
+ "plot(m3,1.712*m3/m3,'b')",
+ "plot(m4,2.5*m4/m4,'b')",
+ "",
+ "ylim( (0,3) )",
+ "ylabel('Ic(mA)')",
+ "xlabel('Vce(V)')",
+ "title('Ideal family of collector curve')"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ideal family of collector curve"
+ ]
+ },
+ {
+ "output_type": "pyout",
+ "prompt_number": 4,
+ "text": [
+ "<matplotlib.text.Text at 0xa11e74c>"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "png": "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\nYII=\n"
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 4.4, Page Number: 125<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "V_CE_sat=0.2; # voltage in volt",
+ "V_BE=0.7; # voltage in volt",
+ "V_BB=3; # voltage in volt",
+ "V_CC=10; # voltage in volt",
+ "B_DC=50; # voltage in volt",
+ "R_B=10*10**3; # resistance in ohm",
+ "R_C=1*10**3; # resistance in ohm",
+ "",
+ "#calculation",
+ "I_C_sat=(V_CC-V_CE_sat)/R_C; # saturation current",
+ "I_B=(V_BB-V_BE)/R_B; # base current",
+ "I_C=B_DC*I_B; # current in ampere",
+ "",
+ "# result",
+ "if I_C>I_C_sat:",
+ " print \"transistor in saturation\"",
+ "else:",
+ " print \"transistor not in saturation\""
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "transistor in saturation"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 4.5, Page Number: 127<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "#Variable declaration",
+ "P_D_max=250*10**-3; #max power rating of transistor in watts",
+ "V_CE=6; #voltage in volt",
+ "",
+ "#Calculation",
+ "I_Cu=P_D_max/V_CE; #Current (Amp)",
+ "I_C=I_Cu*1000;",
+ "",
+ "#Result",
+ "print \"collector current that can be handled by the transistor = %.1f mA\" %I_C",
+ "print \"\\nRemember that this is not necessarily the maximum IC. The transistor\"",
+ "print \"can handle more collectore current if Vce is reduced as long as PDmax\"",
+ "print \"is not exceeded.\""
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "collector current that can be handled by the transistor = 41.7 mA",
+ "",
+ "Remember that this is not necessarily the maximum IC. The transistor",
+ "can handle more collectore current if Vce is reduced as long as PDmax",
+ "is not exceeded."
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 4.6, Page Number: 127<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "#Variable declaration",
+ "P_D_max=800*10**-3; #max power rating of transistor in watts",
+ "V_BE=0.7; #voltage in volt",
+ "V_CE_max=15; #voltage in volt",
+ "I_C_max=100*10**-3; #Current (Amp)",
+ "V_BB=5; #voltage in volt",
+ "B_DC=100; #voltage in volt",
+ "R_B=22*10**3; # resistance in ohm",
+ "R_C=10**3; # resistance in ohm",
+ "",
+ "#Calculation",
+ "I_B=(V_BB-V_BE)/R_B; # base current",
+ "I_C=B_DC*I_B; #collector current ",
+ "V_R_C=I_C*R_C; #voltage drop across R_C",
+ "V_CC_max=V_CE_max+V_R_C; #Vcc max in volt",
+ "P_D=I_C*V_CE_max; #max power rating",
+ "",
+ "#Result",
+ "if P_D<P_D_max:",
+ " print \"V_CC = %.2f volt\" %V_CC_max",
+ " print \"V_CE_max will be exceeded first because entire supply voltage V_CC will be dropped across the transistor\"",
+ " "
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "V_CC = 34.55 volt",
+ "V_CE_max will be exceeded first because entire supply voltage V_CC will be dropped across the transistor"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 4.7, Page Number: 128<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "#Variable declaration",
+ "df=5*10**-3; #derating factor in watts per degree celsius",
+ "T1=70; #temperature 1",
+ "T2=25; #temperature 2",
+ "P_D_max=1; #in watts",
+ "",
+ "#Calculation",
+ "del_P_D=df*(T1-T2); #change due to temperature",
+ "P_D=P_D_max-del_P_D; # power dissipation",
+ "",
+ "#Result",
+ "print \"Power dissipated max at a temperature of 70 degree celsius = %.3f watts\" %P_D"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power dissipated max at a temperature of 70 degree celsius = 0.775 watts"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 4.8, Page Number: 130<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "#Variable declaration",
+ "R_C=1*10**3; #resistance in ohm",
+ "r_e=50; #resistance in ohm",
+ "V_b=100*10**-3; #voltage in volt",
+ "",
+ "#Calculation",
+ "A_v=R_C/r_e; #voltage gain",
+ "V_out=A_v*V_b; #voltage in volt",
+ "",
+ "#Result",
+ "print \"voltage gain = %d \" %A_v",
+ "print \"AC output voltage = %d volt\" %V_out"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage gain = 20 ",
+ "AC output voltage = 2 volt"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 4.9, Page Number: 132 <h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "#Variable declaration",
+ "V_CC=10.0; #voltage in volt",
+ "B_DC=200.0; #voltage in volt",
+ "R_C=1.0*10**3; #resistance in ohm",
+ "V_IN=0.0; #voltage in volt",
+ "",
+ "#Calculation",
+ "V_CE=V_CC; #equal voltage",
+ "print \"when V_IN=0, transistor acts as open switch(cut-off) and collector emitter voltage = %.2f volt\" %V_CE",
+ "#now when V_CE_sat is neglected",
+ "I_C_sat=V_CC/R_C; #saturation current",
+ "I_B_min=I_C_sat/B_DC; #minimum base current",
+ "print \"\\nminimum value of base current to saturate transistor = %.5f ampere\" %I_B_min",
+ "V_IN=5; #voltage in volt",
+ "V_BE=0.7; #voltage in volt",
+ "V_R_B=V_IN-V_BE; #voltage across base resiatance",
+ "R_B_max=V_R_B/I_B_min;",
+ "",
+ "",
+ "#Result",
+ "kw=round (R_B_max)",
+ "print \"\\nmaximum value of base resistance when input voltage is 5V = %d ohm\" %kw"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when V_IN=0, transistor acts as open switch(cut-off) and collector emitter voltage = 10.00 volt",
+ "",
+ "minimum value of base current to saturate transistor = 0.00005 ampere",
+ "",
+ "maximum value of base resistance when input voltage is 5V = 86000 ohm"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices/Chapter5.ipynb b/Electronic_Devices/Chapter5.ipynb
new file mode 100755
index 00000000..1bcf9f83
--- /dev/null
+++ b/Electronic_Devices/Chapter5.ipynb
@@ -0,0 +1,419 @@
+{
+ "metadata": {
+ "name": "Chapter_5"
+ },
+ "nbformat": 2,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h1>Chapter 5: Transistor Bias Circuits<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 5.1, Page Number: 146<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "%pylab inline"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "",
+ "Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline].",
+ "For more information, type 'help(pylab)'."
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "V_BB=10.0; #voltage in volt",
+ "V_CC=20.0; #voltage in volt",
+ "B_DC=200.0; #B_DC value",
+ "R_B=47.0*10**3; #resistance in ohm",
+ "R_C=330.0; #resistance in ohm",
+ "V_BE=0.7; #voltage in volt",
+ "",
+ "#current",
+ "I_B=(V_BB-V_BE)/R_B; #base current",
+ "I_C=B_DC*I_B; #Q POINT",
+ "V_CE=V_CC-I_C*R_C; #Q POINT",
+ "I_C_sat=V_CC/R_C; #saturation current",
+ "I_c_peak=I_C_sat-I_C; #peak current ",
+ "I_b_peak=I_c_peak/B_DC; #peak current in ampere",
+ "",
+ "#result",
+ "print \"Q point of I_C = %.3f amperes\" %I_C",
+ "print \"Q point of V_CE = %.2f volts\" %V_CE",
+ "print \"peak base current = %.4f amperes\" %I_b_peak"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Q point of I_C = 0.040 amperes",
+ "Q point of V_CE = 6.94 volts",
+ "peak base current = 0.0001 amperes"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 5.2, Page Number: 149<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "B_DC=125.0; #DC value",
+ "R_E=10.0**3; #resistance in ohm",
+ "",
+ "#calculation",
+ "R_IN_base=B_DC*R_E; #base resistance",
+ "",
+ "#Result",
+ "print \"DC input resistance, looking at base of transistor = %d ohm\" %R_IN_base"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "DC input resistance, looking at base of transistor = 125000 ohm"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 5.3, Page Number: 151<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "B_DC=100; #DC value",
+ "R1=10*10**3; #resistance in ohm",
+ "R2=5.6*10**3; #resistance in ohm",
+ "R_C=1*10**3; #resistance in ohm",
+ "R_E=560; #resistance in ohm",
+ "V_CC=10; #voltage in volt",
+ "V_BE=0.7 #voltage in volt",
+ "",
+ "#calculation",
+ "R_IN_base=B_DC*R_E; #calculate base resistance",
+ "#We can neglect R_IN_base as it is equal to 10*R2",
+ "print \"input resistance seen from base = %d ohm\" %R_IN_base",
+ "print \"which can be neglected as it is 10 times R2\"",
+ "",
+ "V_B=(R2/(R1+R2))*V_CC; #base voltage",
+ "V_E=V_B-V_BE; #emitter voltage",
+ "I_E=V_E/R_E; #emitter current",
+ "I_C=I_E; #currents are equal",
+ "V_CE=V_CC-I_C*(R_C+R_E); #voltage in volt",
+ "",
+ "#result",
+ "print \"V_CE = %.2f volts\" %V_CE",
+ "print \"I_C = %.3f amperes\" %I_C",
+ "print \"Since V_CE>0V, transistor is not in saturation\""
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "input resistance seen from base = 56000 ohm",
+ "which can be neglected as it is 10 times R2",
+ "V_CE = 1.95 volts",
+ "I_C = 0.005 amperes",
+ "Since V_CE>0V, transistor is not in saturation"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 5.4, Page Number: 154<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "V_EE=10.0; #voltage in volt",
+ "V_BE=0.7; #voltage in volt",
+ "B_DC=150.0; #DC value ",
+ "R1=22.0*10**3; #resistance in ohm",
+ "R2=10.0*10**3; #resistance in ohm",
+ "R_C=2.2*10**3; #resistance in ohm",
+ "R_E=1.0*10**3; #resistance in ohm",
+ "",
+ "#calculation",
+ "R_IN_base=B_DC*R_E; #R_IN_base>10*R2,so it can be neglected",
+ "print \"input resistance as seen from base = %d ohm\" %R_IN_base",
+ "print \"it can be neglected as it is greater than 10 times R2\"",
+ "V_B=(R1/(R1+R2))*V_EE; #base voltage",
+ "V_E=V_B+V_BE; #emitter voltage",
+ "I_E=(V_EE-V_E)/R_E; #emitter current",
+ "I_C=I_E; #currents are equal",
+ "V_C=I_C*R_C; #collector voltage",
+ "V_EC=V_E-V_C; #emitter-collector voltage",
+ "",
+ "#result",
+ "print \"I_C collector current = %.4f amperes\" %I_C",
+ "print \"V_EC emitter-collector voltage = %.2f Volts\" %V_EC"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "input resistance as seen from base = 150000 ohm",
+ "it can be neglected as it is greater than 10 times R2",
+ "I_C collector current = 0.0024 amperes",
+ "V_EC emitter-collector voltage = 2.24 Volts"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 5.5, PAge Number: 154<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "R1=68.0*10**3; #resistance in ohm",
+ "R2=47.0*10**3; #resistance in ohm",
+ "R_C=1.8*10**3; #resistance in ohm",
+ "R_E=2.2*10**3; #resistance in ohm",
+ "V_CC=-6.0; #voltage in volt",
+ "V_BE=0.7; #voltage in volt",
+ "B_DC=75.0; #DC value",
+ "",
+ "#calculation",
+ "R_IN_base=B_DC*R_E;",
+ "print \"input resistance as seen from base\"",
+ "print \"is not greater than 10 times R2 so it should be taken into account\"",
+ "#R_IN_base in parallel with R2",
+ "V_B=((R2*R_IN_base)/(R2+R_IN_base)/(R1+(R2*R_IN_base)/(R2+R_IN_base)))*V_CC;",
+ "V_E=V_B+V_BE; #emitter voltage",
+ "I_E=V_E/R_E; #emitter current",
+ "I_C=I_E; #currents are equal",
+ "V_C=V_CC-I_C*R_C; #collector voltage",
+ "V_CE=V_C-V_E; #collector-emitter voltage",
+ "",
+ "#result",
+ "print \"collector current = %.4f amperes\" %I_C",
+ "print \"collector emitter voltage = %.2f volts\" %V_CE"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "input resistance as seen from base",
+ "is not greater than 10 times R2 so it should be taken into account",
+ "collector current = -0.0006 amperes",
+ "collector emitter voltage = -3.46 volts"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 5.6, Page Number: 156<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "V_CC=12.0; #voltage in volt",
+ "R_B=100.0*10**3; #resistance in ohm",
+ "R_C=560.0; #resistance in ohm",
+ "#FOR B_DC=85 AND V_BE=0.7V",
+ "B_DC=85.0; #DC value",
+ "V_BE=0.7; #base-emitter voltage",
+ "",
+ "#calculation",
+ "I_C_1=B_DC*(V_CC-V_BE)/R_B; #collector current",
+ "V_CE_1=V_CC-I_C_1*R_C; #collector-emittor voltage",
+ "#FOR B_DC=100 AND V_BE=0.6V",
+ "B_DC=100.0; #DC value ",
+ "V_BE=0.6; #base emitter voltage",
+ "I_C_2=B_DC*(V_CC-V_BE)/R_B; #collector current",
+ "V_CE_2=V_CC-I_C_2*R_C; #voltage in volt",
+ "p_del_I_C=((I_C_2-I_C_1)/I_C_1)*100; #percent change in collector current ",
+ "p_del_V_CE=((V_CE_2-V_CE_1)/V_CE_1)*100; #percent change in C-E voltage",
+ "",
+ "#result",
+ "print \"percent change in collector current = %.2f\" %p_del_I_C",
+ "print \"percent change in collector emitter voltage = %.2f\" %p_del_V_CE"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "percent change in collector current = 18.69",
+ "percent change in collector emitter voltage = -15.18"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 5.7, Page Number: 159<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "V_CC=20.0; #voltage in volt",
+ "R_C=4.7*10**3; #resistance in ohm",
+ "R_E=10.0*10**3; #resistance in ohm",
+ "V_EE=-20.0; #voltage in volt",
+ "R_B=100*10**3; #resistance in ohm",
+ "#FOR B_DC=85 AND V_BE=0.7V",
+ "B_DC=85; #DC value",
+ "V_BE=0.7; #base-emitter voltage",
+ "I_C_1=(-V_EE-V_BE)/(R_E+(R_B/B_DC));",
+ "V_C=V_CC-I_C_1*R_C; #colector voltage",
+ "I_E=I_C_1; #emittor current",
+ "V_E=V_EE+I_E*R_E; #emittor voltage",
+ "V_CE_1=V_C-V_E; #CE voltage",
+ "print \"I_C_1 = %.3f\" %I_C_1",
+ "print \"V_CE_1 = %.2f\" %V_CE_1",
+ "#FOR B_DC=100 AND V_BE=0.6V",
+ "B_DC=100; #DC value ",
+ "V_BE=0.6; #base-emitter voltage",
+ "I_C_2=(-V_EE-V_BE)/(R_E+(R_B/B_DC));",
+ "V_C=V_CC-I_C_2*R_C;#colector voltage",
+ "I_E=I_C_2; #emittor current",
+ "V_E=V_EE+I_E*R_E; #emittor voltage",
+ "V_CE_2=V_C-V_E; #CE voltage",
+ "print \"I_C_2 = %.3f\" %I_C_2",
+ "print \"V_CE_2 = %.2f\" %V_CE_2",
+ "",
+ "p_del_I_C=((I_C_2-I_C_1)/I_C_1)*100;",
+ "p_del_V_CE=((V_CE_2-V_CE_1)/V_CE_1)*100;",
+ "print \"percent change in collector currrent = %.2f\" %p_del_I_C",
+ "print \"percent change in collector emitter voltage = %.2f\" %p_del_V_CE",
+ "print \"answers in book are approximated\""
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "I_C_1 = 0.002",
+ "V_CE_1 = 14.61",
+ "I_C_2 = 0.002",
+ "V_CE_2 = 14.07",
+ "percent change in collector currrent = 2.13",
+ "percent change in collector emitter voltage = -3.69",
+ "answers in book are approximated"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 5.8, Page Number: 161<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaratio",
+ "V_CC=10.0; #voltage in volt",
+ "B_DC=100.0; #Dc value",
+ "R_C=10.0*10**3; #resistance in ohm",
+ "R_B=100.0*10**3; #resistance in ohm",
+ "V_BE=0.7; #base-emittor voltage",
+ "",
+ "#calculation",
+ "I_C=(V_CC-V_BE)/(R_C+(R_B/B_DC)); #collector current",
+ "V_CE=V_CC-I_C*R_C; #CE voltage",
+ "",
+ "#result",
+ "print \"Q point of collector current %.4f amperes\" %I_C",
+ "print \"Q point of collector-emitter voltage %.3f volts\" %V_CE"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Q point of collector current 0.0008 amperes",
+ "Q point of collector-emitter voltage 1.545 volts"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices/Chapter6.ipynb b/Electronic_Devices/Chapter6.ipynb
new file mode 100755
index 00000000..22b56e17
--- /dev/null
+++ b/Electronic_Devices/Chapter6.ipynb
@@ -0,0 +1,591 @@
+{
+ "metadata": {
+ "name": "Chapter_6"
+ },
+ "nbformat": 2,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h1>Chapter 6: BJT Amplifiers<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 6.1, Page Number: 171<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "%pylab inline"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "",
+ "Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline].",
+ "For more information, type 'help(pylab)'."
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# result",
+ "",
+ "print \"theoretical example\""
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "theoretical example"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 6.2, Page Number: 174<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "I_E=2.0*10**-3; #emittor current",
+ "",
+ "#calculation",
+ "r_e=25.0*10**-3/I_E; #ac emitter resistance",
+ "",
+ "#result",
+ "print \"ac emitter resistance = %.2f ohms\" %r_e "
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ac emitter resistance = 12.50 ohms"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 6.3, Page Number: 178<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "I_E=3.8*10**-3; #emittor current",
+ "B_ac=160.0; #AC value",
+ "R1=22*10**3; #resistance in ohm",
+ "R2=6.8*10**3; #resistance in ohm",
+ "R_s=300.0; #resistance in ohm",
+ "V_s=10.0*10**-3; #voltage in volt",
+ "r_e=25.0*10**-3/I_E; ",
+ "",
+ "#calculation",
+ "R_in_base=B_ac*r_e; #base resistance",
+ "R_in_tot=(R1*R2*R_in_base)/(R_in_base*R1+R_in_base*R2+R1*R2);",
+ "V_b=(R_in_tot/(R_in_tot+R_s))*V_s; #base voltage",
+ "",
+ "#result",
+ "print \"voltage at the base of the transistor = %.3f volts\" %V_b"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage at the base of the transistor = 0.007 volts"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 6.4, Page Number: 180<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import math",
+ "# variable declaration",
+ "R_E=560.0; #resistance in ohm",
+ "f=2*10**3; #minimum value of frequency in hertz",
+ "X_C=R_E/10.0; #minimum value of capacitive reactance",
+ "",
+ "#calculation",
+ "C2=1.0/(2.0*math.pi*X_C*f); #capacitor ",
+ "",
+ "#result",
+ "print \"value of bypass capacitor = %.7f farads\" %C2"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of bypass capacitor = 0.0000014 farads"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 6.5, Page Number: 181<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import math",
+ "# variable declaration",
+ "r_e=6.58; #from ex6.3",
+ "R_C=1.0*10**3; #collector resistance",
+ "R_E=560; #emittor resistance",
+ "",
+ "#calculation",
+ "A_v=R_C/(R_E+r_e); #gain without bypass capacitor",
+ "A_v1=R_C/r_e; #gain with bypass capacitor",
+ "print \"gain without bypass capacitor = %.2f\" %A_v",
+ "print \"gain in the presence of bypass capacitor = %.2f\" %A_v1"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "gain without bypass capacitor = 1.76",
+ "gain in the presence of bypass capacitor = 151.98"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 6.6, Page Number: 182<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "R_C=10.0**3; #resistance in ohm",
+ "R_L=5.0*10**3; #inductor resistance",
+ "r_e=6.58; #r_e value",
+ "",
+ "#calculation",
+ "R_c=(R_C*R_L)/(R_C+R_L); #collector resistor",
+ "A_v=R_c/r_e; #gain with load",
+ "",
+ "#result",
+ "print \"ac collector resistor = %.2f ohms\" %R_c",
+ "print \"gain with load = %.2f\" %A_v"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ac collector resistor = 833.33 ohms",
+ "gain with load = 126.65"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 6.7, Page Number: 184<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "R_C=3.3*10**3; #resistance in ohm",
+ "R_E1=330.0; #emitter resistance",
+ "",
+ "#calculation",
+ "A_v=R_C/R_E1; #voltage gain",
+ "",
+ "#result",
+ "print \"approximate voltage gain as R_E2 is bypassed by C2 = %.2f\" %A_v"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "approximate voltage gain as R_E2 is bypassed by C2 = 10.00"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 6.8, Page Number: 184<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import math",
+ "B_DC=150.0;",
+ "B_ac=175.0;",
+ "V_CC=10.0;",
+ "V_s=10.0*10**-3;",
+ "R_s=600.0;",
+ "R1=47.0*10**3;",
+ "R2=10.0*10**3;",
+ "R_E1=470.0;",
+ "R_E2=470.0;",
+ "R_C=4.7*10**3;",
+ "R_L=47.00*10**3;",
+ "R_IN_base=B_DC*(R_E1+R_E2);",
+ "#since R_IN_base is ten times more than R2,it can be neglected in DC voltage calculation",
+ "V_B=(R2/(R2+R1))*V_CC;",
+ "V_E=V_B-0.7;",
+ "I_E=V_E/(R_E1+R_E2);",
+ "I_C=I_E;",
+ "V_C=V_CC-I_C*R_C;",
+ "print('dc collector voltage = %.3f volts'%V_C)",
+ "r_e=25.0*10**-3/I_E;",
+ "#base resistance",
+ "R_in_base=B_ac*(r_e+R_E1);",
+ "#total input resistance",
+ "R_in_tot=(R1*R2*R_in_base)/(R1*R2+R_in_base*R1+R_in_base*R2);",
+ "attenuation=R_in_tot/(R_s+R_in_tot);",
+ "#ac collector resistance",
+ "R_c=R_C*R_L/(R_C+R_L);",
+ "#voltage gain from base to collector",
+ "A_v=R_c/R_E1;",
+ "#overall voltage gain A_V",
+ "A_V=A_v*attenuation;",
+ "#rms voltage at collector V_c",
+ "V_c=A_V*V_s;",
+ "V_out_p=math.sqrt(2)*V_c;",
+ "print('V_out peak = %d mV'%(V_out_p*1000))",
+ "",
+ "################Waveform plotting##############################",
+ "",
+ "import pylab",
+ "import numpy ",
+ "",
+ "t = arange(0.0, 4.0, 0.0005)",
+ "",
+ "",
+ "subplot(121)",
+ "plot(t, V_C+V_c*sin(2*pi*t))",
+ "ylim( (4.63,4.82) )",
+ "title('Collector Voltage')",
+ "",
+ "subplot(122)",
+ "plot(t, -V_s*sin(2*pi*t))",
+ "plot(t, V_out_p*sin(2*pi*t))",
+ "ylim( (-0.15,0.15) )",
+ "title('Source and output AC voltage')"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "dc collector voltage = 4.728 volts",
+ "V_out peak = 119 mV"
+ ]
+ },
+ {
+ "output_type": "pyout",
+ "prompt_number": 9,
+ "text": [
+ "<matplotlib.text.Text at 0xad2caac>"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAEICAYAAABfz4NwAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXl8VNX5/z+TzCSZrDPZdxJ2AgipuOBXJahIUcGtKtiy\n1GrBpS4t35/W6he01g33Ulv61SqogEstm4CKGKUuIF8RFSigJJCNrJNlkklme35/HGayTWbunbud\nhPt+vXhp7tx75zPnzjzPOc95znMMRETQ0dHR0TntidBagI6Ojo4OH+gOQUdHR0cHgO4QdHR0dHRO\noTsEHR0dHR0AukPQ0dHR0TmF7hB0dHR0dADoDkEQpaWlyMvL8/9dUFCAjz76SENF8lJeXo6IiAh4\nvV6tpehwyqJFi/Dggw9qLWNI0deu8MBp5RDWrl2LKVOmICEhAdnZ2bjsssvw2Wefib6PwWCAwWCQ\npEXuH9iSJUuwcOHCfsf379+PmJgYNDc3C75XSUkJXn75Zdm0DQX+/e9/47zzzoPFYkFKSgrOP/98\n7N27V2tZqiHHdz4Qy5cvx/z58zW5X0lJCZKTk+F0Ovu9JpetEENBQQF27typ6HuE4rRxCM888wzu\nuecePPDAA6irq0NFRQVuv/12bNq0SWtpYdG3N79o0SK8++676Ojo6HX8tddew+zZs2GxWATfW4kf\n/mCmtbUVV1xxBe666y7YbDZUVVVh2bJliI6Olv29PB6P7PeUi6G0hrW8vBx79uxBenp6Pxugla0w\nGAzatzGdBjQ3N1N8fDy98847A57T2dlJd911F2VnZ1N2djbdfffd1NXVRUREH3/8MeXm5vrPLSgo\noI8++oiIiLxeLz322GM0YsQISklJoeuvv56ampr85+7atYumTp1KFouF8vLy6NVXX6W///3vZDKZ\nKCoqiuLj42nOnDlERHTw4EGaNm0aWSwWGj9+PG3atMl/n4ULF9KSJUto1qxZFBcX53//nowZM4bW\nrFnj/9vtdlN2djZt2rSJvF4v/fGPf6Rhw4ZReno6LViwgFpaWoiIqKysjAwGA7ndbrr//vspMjKS\nYmJiKD4+nn7zm98QEdGdd95JeXl5lJiYSGeeeSbt2rXL/z4dHR20YMECslqtNG7cOHriiSd6tVdV\nVRVdc801lJaWRoWFhfTCCy8IeGr88NVXX5HFYhnw9WBt2/e7Q0Q0bNgw//NbtmwZXXvttfSLX/yC\nEhMT6eWXX6bGxkZatGgRZWdnk9Vqpauuusp/7ebNm2nSpElksVjovPPOo2+//XZAXcGe2bJly+i6\n666jBQsWUEJCAo0fP5727t3rf/3rr7+m4uJiSkhIoBtuuIHmzp1LDzzwgGyff8eOHbRt2zaKiooi\nk8lE8fHxNHnyZCIimjZtGt1333109tlnU2JiIl155ZX+31Q49wvEQw89RLNnz6ZHHnmErrjiCv9x\nIbaiJ19++SVlZmaS1+v1H3v33XfpjDPOICLhduUXv/gFRUREkNlspvj4eFqxYgUREf3sZz+jzMxM\nSkpKogsvvJAOHDjgf5+Ghga64oorKDExkc466yz6wx/+QOeff77/9UOHDtEll1xCycnJNGbMGHrr\nrbdCfp7TwiFs27aNjEYjeTyeAc958MEHaerUqVRfX0/19fV03nnn0YMPPkhEwR3Cc889R1OnTqWq\nqipyOp20ePFimjdvHhERlZeXU0JCAq1fv57cbjc1NjbSN998Q0REixYt8t+fiMjpdNKIESPoscce\nI5fLRTt37qSEhAQ6fPgwETGHkJSURJ9//jkRsS9aX/70pz/RJZdc4v97+/btlJaWRm63m15++WUa\nOXIklZWVkd1up2uuuYbmz59PRN0Owdc+JSUl9PLLL/e69+uvv05NTU3k8Xjo6aefpszMTP8X+957\n76WSkhJqbm6myspKmjhxIuXl5RERkcfjoZ/85Cf0xz/+kVwuFx07doyGDx9O77//fvCHxhGtra2U\nkpJCCxcupG3btvVy+EQUtG0DGbCe359ly5aRyWSijRs3EhGRw+Ggyy67jObOnUvNzc3kcrno008/\nJSJmpNPT02nPnj3k9Xpp9erVVFBQ4H8OfQn2zJYtW0YxMTG0bds28nq99Pvf/57OPfdcIiLq6uqi\n/Px8eu6558jtdtM777xDJpOp1/dVrs+/fPly/7k+pk2bRjk5OXTgwAFqb2/3O8xw7xeIESNG0Ouv\nv05Hjhwhk8lEdXV1RCTMVgS614cffuj/+2c/+xk98cQTRBS+XfHxyiuvkN1uJ6fTSXfffXcvJ3fD\nDTfQvHnzyOFw0MGDBykvL48uuOACIiKy2+2Um5tLr776Knk8Htq3bx+lpqbSwYMHg36W08IhvP76\n65SZmRn0nBEjRtC2bdv8f7///vtUUFBARMEf3Lhx43o9xOrqajKZTOR2u+nRRx+la665JuD7LVq0\n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\nAAAAAElFTkSuQmCC\n"
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 6.9,Page Number: 190<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "R_E=10.0**3; #emitter resistance",
+ "R_L=10.0**3; #resistance in ohm",
+ "R1=18.0*10**3; #R1 in ohm",
+ "R2=18.0*10**3; #R2 in ohm",
+ "B_ac=175.0; #AC value",
+ "V_CC=10.0; #voltage in volt",
+ "V_BE=0.7; #base-emitter voltage",
+ "V_in=1.0; #input voltage in volt",
+ "",
+ "#calculation",
+ "",
+ "R_e=(R_E*R_L)/(R_E+R_L); #ac emitter resistance R_e",
+ "R_in_base=B_ac*R_e; #resistance from base R_in_base",
+ "",
+ "#total input resiatance R_in_tot",
+ "R_in_tot=(R1*R2*R_in_base)/(R1*R2+R1*R_in_base+R2*R_in_base);",
+ "print \"total input resistance = %.2f ohms\" %R_in_tot",
+ "V_E=((R2/(R1+R2))*V_CC)-V_BE; #emitter voltage",
+ "I_E=V_E/R_E; #emitter current",
+ "r_e=25.0*10**-3/I_E; #emitter resistance",
+ "A_v=R_e/(r_e+R_e);",
+ "print \"voltage gain = %.2f\" %A_v",
+ "#ac emitter current I_e",
+ "#V_e=A_v*V_b=1V",
+ "V_e=1.0; #V_evoltage",
+ "I_e=V_e/R_e; #emitter current",
+ "I_in=V_in/R_in_tot; #input current in ampere",
+ "A_i=I_e/I_in; #current gain",
+ "print \"current gain = %.2f\" %A_i",
+ "A_p=A_i; #power gain",
+ "#since R_L=R_E, one half of the total power is disspated to R_L",
+ "A_p_load=A_p/2.0; #power load",
+ "print \"power gain delivered to load = %.2f\" %A_p_load"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "total input resistance = 8160.62 ohms",
+ "voltage gain = 0.99",
+ "current gain = 16.32",
+ "power gain delivered to load = 8.16"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 6.10, Page Number: 193<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "V_CC=12.0; #source voltage in volt",
+ "V_BE=0.7; #base-emitter volatge",
+ "R_C=1.0*10**3; #resistance in ohm",
+ "r_e_ce=5.0; #for common emitter amplifier",
+ "R1=10.0*10**3; #resistance in ohm",
+ "R2=22.0*10**3; #resistance in ohm ",
+ "R_E=22.0; #emitter resistance in ohm",
+ "R_L=8.0; #load resistance in ohm",
+ "B_DC=100.0; #dc value",
+ "B_ac=100.0; #ac value",
+ "",
+ "#calculation",
+ "pt=R2+B_DC**2*R_E #temp variable",
+ "V_B=((R2*B_DC**2*R_E/(pt))/(R1+(R2*B_DC**2*R_E/(pt))))*V_CC;",
+ "V_E=V_B-2.0*V_BE; #emitter voltage",
+ "I_E=V_E/R_E; #emitter current",
+ "r_e=25.0*10**-3/I_E; #for darlington emitter-follower",
+ "P_R_E=I_E**2*R_E; #power dissipated by R_E",
+ "P_Q2=(V_CC-V_E)*I_E #power dissipated by transistor Q2",
+ "R_e=R_E*R_L/(R_E+R_L); #ac emitter resi. of darlington emitter follower",
+ "#total input resistance of darlington",
+ "kt=R_e+r_e #temp varaible",
+ "R_in_tot=R1*R2*B_ac**2*(kt)/(R1*R2+R1*B_ac**2*(kt)+R2*B_ac**2*(kt)); ",
+ "R_c=R_C*R_in_tot/(R_C+R_in_tot); #effective ac resistance",
+ "A_v_CE=R_c/r_e_ce; #voltage gain of common emitter",
+ "A_v_EF=R_e/(r_e+R_e); #voltage gain of common emitter amplifier",
+ "A_v=A_v_CE*A_v_EF; #overall voltage gain",
+ "",
+ "#result",
+ "print \"voltage gain of common emitter amplifier= %.2f\" %A_v_CE",
+ "print \"voltage gain of common emitter amplifier= %.2f\" %A_v_EF",
+ "print \"overall voltage gain = %.2f\" %A_v"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage gain of common emitter amplifier= 172.08",
+ "voltage gain of common emitter amplifier= 0.99",
+ "overall voltage gain = 169.67"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 6.11, Page Number: 196<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "B_DC=250.0; #dc value",
+ "R_C=2.2*10**3; #resistance in ohm",
+ "R_E=1.0*10**3; #emitter resistance",
+ "R_L=10.0*10**3;#load resistance",
+ "R1=56.0*10**3; #resistance in ohm",
+ "R2=12.0*10**3; #resistance in ohm",
+ "V_BE=0.7; #base-emitter voltage in volt",
+ "V_CC=10.0; #source voltage in volt",
+ "",
+ "#calculation",
+ "#since B_DC*R_E>>R2",
+ "V_B=(R2/(R1+R2))*V_CC;",
+ "V_E=V_B-V_BE; #emiiter voltage",
+ "I_E=V_E/R_E; #emitter current",
+ "r_e=25.0*10**-3/I_E; #r_e value",
+ "R_in=r_e; #input resistance",
+ "R_c=R_C*R_L/(R_C+R_L); #ac collector resistance",
+ "A_v=R_c/r_e; #current gain",
+ "#current gain is almost 1",
+ "#power gain is approximately equal to voltage gain",
+ "A_p=A_v; #power gain",
+ "A_i=1; #current gain",
+ "",
+ "#result",
+ "print \"input resistance = %.2f ohms\" %R_in",
+ "print \"voltage gain = %.2f\" %A_v",
+ "print \"current gain = %.2f\" %A_i",
+ "print \"power gain = %.2f\" %A_p"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "input resistance = 23.48 ohms",
+ "voltage gain = 76.80",
+ "current gain = 1.00",
+ "power gain = 76.80"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 6.12, Page Number: 197<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import math",
+ "# variable declaration",
+ "A_v1=10.0;",
+ "A_v2=15.0;",
+ "A_v3=20.0;",
+ "",
+ "#calcultion",
+ "A_v=A_v1*A_v2*A_v3; #overall voltage gain",
+ "A_v1_dB=20.0*math.log10(A_v1); #gain in decibel",
+ "A_v2_dB=20.0*math.log10(A_v2); #gain in decibel",
+ "A_v3_dB=20.0*math.log10(A_v3); #gain in decibel",
+ "A_v_dB=A_v1_dB+A_v2_dB+A_v3_dB; #total gain in decibel",
+ "",
+ "#result",
+ "print \"overall voltage gain = %.1f\" %A_v",
+ "print \"Av1 = %.1f dB\" %A_v1_dB",
+ "print \"Av2 = %.1f dB\" %A_v2_dB",
+ "print \"Av3 = %.1f dB\" %A_v3_dB",
+ "print \"total voltage gain =%.1f dB\" %A_v_dB"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "overall voltage gain = 3000.0",
+ "Av1 = 20.0 dB",
+ "Av2 = 23.5 dB",
+ "Av3 = 26.0 dB",
+ "total voltage gain =69.5 dB"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices/Chapter7.ipynb b/Electronic_Devices/Chapter7.ipynb
new file mode 100755
index 00000000..ac08bd97
--- /dev/null
+++ b/Electronic_Devices/Chapter7.ipynb
@@ -0,0 +1,710 @@
+{
+ "metadata": {
+ "name": "Chapter_7"
+ },
+ "nbformat": 2,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h1>Chapter 7: Field-effect Transistors (FETs)<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 7.1, Page Number: 217<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "%pylab inline"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "",
+ "Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline].",
+ "For more information, type 'help(pylab)'."
+ ]
+ }
+ ],
+ "prompt_number": 318
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "V_GS_off=-4; # voltage in volt",
+ "I_DSS=12*10**-3; # current in ampere",
+ "R_D=560; # resistance in ohm",
+ "",
+ "#calculation",
+ "V_P=-1*V_GS_off; # volt ",
+ "V_DS=V_P; # Vds in volt",
+ "I_D=I_DSS; # current accross resistor",
+ "V_R_D=I_D*R_D; #voltage across resistor",
+ "V_DD=V_DS+V_R_D; # Vdd in volt",
+ "",
+ "# result",
+ "print \"The value of V_DD required to put the device in the constant\"",
+ "print \" current area of operation of JFET = %.2f volt\" %V_DD"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of V_DD required to put the device in the constant",
+ " current area of operation of JFET = 10.72 volt"
+ ]
+ }
+ ],
+ "prompt_number": 319
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 7.2, Page Number: 218<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "print('The p-channel JFET requires a positive gate to source voltage.')",
+ "print('The more positive the voltage, the lesser the drain current.')",
+ "print('Any further increase in V_GS keeps the JFET cut off, so I_D remains 0')"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The p-channel JFET requires a positive gate to source voltage.",
+ "The more positive the voltage, the lesser the drain current.",
+ "Any further increase in V_GS keeps the JFET cut off, so I_D remains 0"
+ ]
+ }
+ ],
+ "prompt_number": 320
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 7.3, Page number: 219<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "I_DSS=9.0*10**-3;",
+ "V_GS_off=-8.0;",
+ "V_GS=0.0;",
+ "I_D=9.0*10**-3",
+ "I_D=I_DSS*(1-(V_GS/V_GS_off))**2;",
+ "print('Value of I_D for V_GS=0V is %f A '%I_D)",
+ "V_GS=-1.0",
+ "I_D=I_DSS*(1-(V_GS/V_GS_off))**2;",
+ "print('Value of I_D for V_GS=-1V is %f A'%I_D)",
+ "V_GS= -4.0",
+ "I_D=I_DSS*(1-(V_GS/V_GS_off))**2;",
+ "print('Value of I_D for V_GS=-4V is %f A'%I_D)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of I_D for V_GS=0V is 0.009000 A ",
+ "Value of I_D for V_GS=-1V is 0.006891 A",
+ "Value of I_D for V_GS=-4V is 0.002250 A"
+ ]
+ }
+ ],
+ "prompt_number": 321
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 7.4, Page Number: 220<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "#Variable Declaration",
+ "I_DSS=3.0*10**-3;",
+ "V_GS_off=-6.0;",
+ "y_fs_max=5000.0*10**-6;",
+ "V_GS=-4.0;",
+ "g_m0=y_fs_max;",
+ "",
+ "#Calculation",
+ "g_m=g_m0*(1-(V_GS/V_GS_off));",
+ "I_D=I_DSS*(1-(V_GS/V_GS_off))",
+ "",
+ "#Result",
+ "print('forward transconductance = %f Siemens'%g_m)",
+ "print('value of I D = %f A'%I_D)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "forward transconductance = 0.001667 Siemens",
+ "value of I D = 0.001000 A"
+ ]
+ }
+ ],
+ "prompt_number": 322
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 7.5, Page Number: 221<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "V_GS=-20.0; # voltage in volt",
+ "I_GSS=-2*10**-9; # current in ampere",
+ "",
+ "#calculation",
+ "R_IN1=abs((-20/(2*10**-9))) # resistance in ohm",
+ "R_IN=R_IN1/(10**9)",
+ "",
+ "# result",
+ "print \"Input resistance = %d Giga ohm\" %R_IN"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Input resistance = 10 Giga ohm"
+ ]
+ }
+ ],
+ "prompt_number": 323
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 7.6, Page Number: 223<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "V_DD=15; # voltage in volt",
+ "V_G=0; # voltage in volt",
+ "I_D=5*10**-3; # current in ampere",
+ "R_D=1*10**3; # resistance in ohm",
+ "R_G=10*10**6; # resistance in ohm",
+ "R_S=220; # resistance in ohm",
+ "",
+ "# calculation",
+ "V_S=I_D*R_S; # source voltage in volt",
+ "V_D=V_DD-I_D*R_D; # drain voltage in volt",
+ "V_DS=V_D-V_S; # drain to source voltage in volt",
+ "V_GS=V_G-V_S; # gate to source voltage in volt",
+ "",
+ "# result",
+ "print \"Drain to source voltage = %.2f volts\" %V_DS",
+ "print \"Gate to source voltage = %.2f volts\" %V_GS"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Drain to source voltage = 8.90 volts",
+ "Gate to source voltage = -1.10 volts"
+ ]
+ }
+ ],
+ "prompt_number": 324
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 7.7, Page Number: 224<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "V_GS=-5.0; # voltage in volt",
+ "I_D=6.25*10**-3; # current in ampere",
+ "",
+ "#calculation",
+ "R_G=abs((V_GS/I_D)) # resistance in ohm",
+ "",
+ "# result",
+ "print \"Gate resistance = %d ohm\" %R_G"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gate resistance = 800 ohm"
+ ]
+ }
+ ],
+ "prompt_number": 325
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 7.8, Page Number: 224<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "I_DSS=25.0*10**-3;",
+ "V_GS_off=15.0;",
+ "V_GS=5.0;",
+ "I_D=I_DSS*(1-(V_GS/V_GS_off))**2",
+ "R_S=abs((V_GS/I_D))",
+ "print('Drain current = %f Amperes'%I_D)",
+ "print('Source resistance = %.0f Ohms'%R_S)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Drain current = 0.011111 Amperes",
+ "Source resistance = 450 Ohms"
+ ]
+ }
+ ],
+ "prompt_number": 326
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 7.9, Page Number: 225<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "V_D=6; # drain voltage in volt",
+ "V_GS_off=-3; # off voltage in volt",
+ "V_DD=12; # voltage in volt",
+ "I_DSS=12*10**-3; # current in ampere",
+ "",
+ "#calculation",
+ "I_D=I_DSS/2; #MIDPOINT BIAS",
+ "V_GS=V_GS_off/3.4; #MIDPOINT BIAS",
+ "R_S=abs((V_GS/I_D)) #resistance i voltage",
+ "R_D=(V_DD-V_D)/I_D #resistance in voltage ",
+ "",
+ "# result",
+ "print \"Source resistance = %.2f ohm\" %R_S",
+ "print \"Drain resistance = %d ohm\" %R_D"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Source resistance = 147.06 ohm",
+ "Drain resistance = 1000 ohm"
+ ]
+ }
+ ],
+ "prompt_number": 327
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 7.10, Page Number: 227<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import pylab",
+ "import numpy",
+ "",
+ "# variable declaration",
+ "R_S=680.0; # resistance in ohm",
+ "I_D=0; # current in ampere",
+ "",
+ "#calculation",
+ "V_GS=I_D*R_S; #FOR I_D=0A",
+ "",
+ "I_DSS=4*10**-3; # current in ampere",
+ "I_D=I_DSS; # currents are equal",
+ "V_GS1=-1*I_D*R_S; #FOR I_D=4mA",
+ "",
+ "# result",
+ "print \"V_GS at I_D=0amp is %d volt\" %V_GS",
+ "print \"V_GS at I_D=4mA is %.2f volt\" %V_GS1",
+ "print \"Plotting load line using the values of V_GS at I_D=0 and 4mA,\"",
+ "print \" we find the intersection of load line with transfer characteristic\"",
+ "print \" to get Q-point values of V_GS=-1.5V and I_D=2.25mA\"",
+ "",
+ "#########PLOT######################",
+ "idss=4",
+ "vgsoff=-6",
+ "vgs=arange(-6.0,0.0,0.0005)",
+ "idk=arange(0.0,4.0,0.0005)",
+ "ids=arange(0.0,2.25,0.0005)",
+ "vgsk=-idk*0.68",
+ "i_d=idss*(1-(vgs/vgsoff))**2",
+ "text(-3.00,2.25,'Q Point',size=13)",
+ "text(-3.25,2,'(-1.5V, 2.25mA)')",
+ "plot(vgs,i_d)",
+ "plot(vgsk,idk,'b')",
+ "plot(-1.5,2.25,'o')",
+ "ylim( (0,5) )",
+ "title('Transfer characteristic curve')",
+ "xlabel('Vgs')",
+ "ylabel('Idss')"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "V_GS at I_D=0amp is 0 volt",
+ "V_GS at I_D=4mA is -2.72 volt",
+ "Plotting load line using the values of V_GS at I_D=0 and 4mA,",
+ " we find the intersection of load line with transfer characteristic",
+ " to get Q-point values of V_GS=-1.5V and I_D=2.25mA"
+ ]
+ },
+ {
+ "output_type": "pyout",
+ "prompt_number": 328,
+ "text": [
+ "<matplotlib.text.Text at 0xd95b60c>"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "png": "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\ngIAAVKhQAZMmTcpz/6I413X69OmIjo6Gi4sLQkJC9F0p+V3zXKVKlUKvXr2wY8cODBw4UP982bJl\nERERgbCwMFSrVg1VqlTBpEmT8v2gIeOwEcX5/k1ERBbBKLMIPDw8UK5cOdjZ2cHBwSFPS42IiIzH\nKEndxsYGkZGRcHV1NcbuiYioAEbrU2evDhGR6RmlT93LywvOzs6ws7PDmDFj8qxGZ25rWRARWYpi\npWtjTFO9du2aEEKImzdvCj8/P7Fnzx79a0Y6pNmYNm2a0iEYFc/Psqn5/NR8bkIUP3capfsld6LJ\nc889h549e/JGKRGRiRg8qaenp+vX27h//z4iIiLg6+tr6MMQEVE+DD76JTExET179gQg114eNGgQ\n2rVrZ+jDmC2NRqN0CEbF87Nsaj4/NZ9bSZh88pGNjQ1HxhARlVBxcyeXCSAiUhEmdSIiFWFSJyJS\nESZ1IiIVYVInIlIRJnUiIhVhUiciUhEmdSIiFWFSJyJSESZ1IiIVYVInIlIRJnUiIhVhUiciUhEm\ndSIiFWFSJyJSESZ1IiIVYVInIlIRJnUiIhVhUiciUhEmdSIiFWFSJyJSESZ1IiIVYVInIlIRJnUi\nIhVhUiciUhEmdSIiFWFSJyJSESZ1IiIVYVInIlIRJnUiIhVhUiciUhEmdSIiFWFSJyJSESZ1IiIV\nYVInIlIRoyV1rVYLf39/dO3a1ViHICKiRxgtqX///feoV68ebGxsjHUIIiJ6hFGS+pUrV7B582aM\nGjUKQghjHIKIiPJhb4ydjh8/HrNmzUJKSkq+r4eEhOh/1mg00Gg0xgiDyOSOHgUaN1Y6ClKDyMhI\nREZGlvh9NsLATenw8HBs2bIF8+bNQ2RkJGbPno2NGzf+d0AbG7beSZUePABeeAF4/33gtdeUjobU\nRKcD7OyKlzsN3lLfv38/NmzYgM2bNyMzMxMpKSkYOnQolixZYuhDEZmV0qWB8HCgZUvAywto00bp\niEgNhADefrv42xu8pf6w3bt34+uvv2ZLnazKnj1Anz7A7t1A3bpKR0OWbvJkICICOHq0eLnT6OPU\nOfqFrM0rrwCzZgFdugC3bikdDVmyr74C1q8Htm4t/nuM2lLP94BsqZOV+PhjIDIS2LEDcHRUOhqy\nNPPmAd9+K7/5Va1a/NzJpE5kJDodMGAAYG8PLFsG8EsrFVdoKPDZZ7ILz8NDPlfc3MllAoiMxNYW\n+PVXICZG/oISFceyZcC0acD27f8l9JIwyjh1IpLKlJF9ok2bArVrAwMHKh0RmbM1a4APPpBddrVr\nP9k+mNSJjMzNDdi4EQgMBGrWBFq0UDoiMkfh4cAbbwDbtgH16j35ftj9QmQCvr7AkiVyqGNMjNLR\nkLn5809g5Ej54d+w4dPti0mdyEQ6dACmTAE6dwbu3lU6GjIXe/bIbrm1a4EmTZ5+fxz9QmRi774L\nnDsHbN4MODgoHQ0p6eBBoFs3YMUK2T1XGA5pJDJTWq38Ra5eHfjxRw51tFbHjgEdOwKLF8s/i8Ih\njURmys4OCAsDDhyQk0vI+pw5A3TqJD/Ui5PQS4KjX4gU4OQkRzs0awZ4ewPduysdEZnKhQtA+/by\nA71nT8Pvny11IoXUqAH88QcwapT8Kk7qd+GC7DufMQMICjLOMZjUiRQUECC/gnfvDly9qnQ0ZEwX\nL8qEPn06MHy48Y7D7hcihfXuDVy6BHTtKoe3lS2rdERkaJcuyYT+2WfAiBHGPRZHvxCZASGA4GAg\nKUmOV7azUzoiMpR//gFat5bruYwa9eT74egXIgtiYyO7YVJSgAkTlI6GDCU6Gnj1VWDq1KdL6CXB\npE5kJkqVkgs6bdgA/Pyz0tHQ04qJkQl9yhRg9GjTHZd96kRmxNUV2LSJdU4tXUyM7HKZNMn0RcjZ\nUicyM7VrAytXyvVA/v5b6WiopGJjZQt94kTg9ddNf3wmdSIzxDqnlikuTib0Dz8Exo5VJgaOfiEy\nY6xzajni4mSXy/vvA2+9Zfj9c0EvIhVgnVPLEB0tx6G//z7w9tvGOQaHNBKpAOucmr8LFwCNRt4U\nNVZCLwmOfiEyc6xzar7OnQPatgU+/9z4M0WLi0mdyAKwzqn5OXVKrrY4axYweLDS0fyH3S9EFoJ1\nTs3HsWNAu3bA99+bV0IHmNSJLEpundMuXVjnVCmHDsl/hwULgH79lI7mcRz9QmSBWOdUGfv2ycIW\nCxfKD1ZT4pBGIhVjnVPTi4yULfOlS2XXi6lxSCORirHOqWlt3w707SuvuRIJvSQ4+oXIQrHOqWmE\nh8vhimvXyoXWzB1b6kQWjHVOjSssTBYvyV050xIwqRNZONY5NY6ff5bT/rdvB5o0UTqa4mP3C5EK\nsM6pYc2eDcydK2+O1q6tdDQlw9EvRCrBOqdPTwggJER2u2zfDri7Kx3Rfzj6hcjKsM7p09HpgPHj\n5To7e/eaV0IvCSZ1IhXJrXO6cSPrnJaEVivriEZFAbt2AZUqKR3RkzN4n3pmZiZatWqFBw8eICsr\nC927d8eXX35p6MMQUQFcXeUwPNY5LZ6sLLl+S3IyEBFh+fcjjNKnnp6ejmeeeQY5OTl4+eWX8fXX\nX+Pll1+WB2SfOpFJ7NkjF//avRuoW1fpaMxTerq8RqVKyX50c64upWif+jPPPAMAyMrKglarhaur\nqzEOQ0SFYJ3Twt27B3TsKL/ZrFpl3gm9JIwypFGn06FRo0aIjo7G2LFjUa9evTyvh4SE6H/WaDTQ\naDTGCIPI6g0bJoc69ujBOqcPu35dJvSWLeXyubZmeHcxMjISkZGRJX6fUYc03rt3D+3bt8dXX32l\nT9zsfiEyrdw6pw4OcjEqa1/8Kzpart8yYoQs7G0p18MshjQ6Ozujc+fOOHLkiDEPQ0SFyK1zGh3N\nOqfHj8vW+UcfyXXpLSWhl4TBk/rt27dx99/V+zMyMvDnn3/C39/f0IchohLIrXO6aBGwfLnS0Shj\n1y5Zfu6HH4AxY5SOxngM3qd+/fp1DBs2DDqdDjqdDkOGDEFgYKChD0NEJWTNdU7XrAHGjgV+/x1o\n3VrpaIyLywQQWZmtW2V/8r59chy72v30E/Dpp3KlRUvuNGDlIyIq0Lx58rF/P1C+vNLRGIcQwOef\nA4sXA9u2AbVqKR3R02FSJ6JCqbnOqU4HvPMO8NdfwJYtQJUqSkf09JjUiahQaq1zmpkpx+ffuAFs\n2AA4OysdkWGYxZBGIjJfaqxzmpwsx6ALIbtc1JLQS4JJnciK5dY5nT1bDnm0ZPHxwMsvy0pQ5r6O\nizExqRNZOTXUOT1+XA7RfO01+QFljtP+TcWKT52IcllyndNt22SXy/ffA+PGKR2N8lijlIgAWGad\n00WLgEmT5DcNa5pMVZgSjX5JTk7GlStX8MILLzz5ATn6hchsWUqdUyGA6dPlGPTNmwEfH6UjMj6D\njX5p1aoVUlJSkJycjMaNG2PUqFEYP368QYIkIvNiCXVOs7Nl6bkNG+TkKWtI6CVRZFK/d+8eypUr\nh7Vr12Lo0KGIiorC9u3bTREbESnAnOucpqbKfv9r14DISKByZaUjMj9FJnWtVovr169j5cqV6Ny5\nMwD5NYCI1Cu3zunUqYC5tOESEuSQxerVZSvdEvr8lVBkUp86dSrat28Pb29vNGnSBNHR0ahdu7Yp\nYiMiBdWuDaxcCQwcCPz9t7KxHDkCNGsGDB0qF+iy5xCPAnGZACIq1K+/yuIaBw8Czz1n+uOvXSvX\nP//lF1mWz1oZ7EbpRx99hJSUFGRnZyMwMBAVK1bEb7/9ZpAgicj8DRsGBAXJhJqZabrjCgHMnCkX\nHtu2zboTekkUmdS3bduGcuXKITw8HB4eHoiOjsasWbNMERsRmYnPPgOqVZPDHU3xRTsrS45wWbFC\nrk3TqJHxj6kWRSb1nJwcAEB4eDj69OkDZ2dn3iglsjKmrHN65w7QoQNw8yawd6+8MUrFV2RS79q1\nK3x8fHD06FEEBgbi5s2bcLTWlXKIrJgp6pxGR8sbog0bAuvWcYTLkyjWjdKkpCSUL18ednZ2uH//\nPlJTU1H5CQeI8kYpkWU7fVrWOV23zrBT8//6C+jbF5g2DXj9dcPtVy2eukjGmjVrCu1m6dWrl1ED\nI7I2Tk5O2L59O5o2bap0KEUydJ3T0FBg8mTgt9/k4lz0uKce/bJx40Zs3LgRoaGhCA4OxrJly7Bs\n2TKMGjUKCxcuNGiwRObmwIED6NChA8qXL4+yZcvixRdfxJIlSwp9z+LFi2FrawsnJyc4OTmhZs2a\nGD9+PLKysop1zNTU1BIldFtbW+zfv7/Y2xtShw7AlClAly7A3btPvp+cHDm6ZeZMuYgYE/rTK3AI\n/+LFiwEAbdu2xblz51Dl3yJ/169fx7Bhw0wSHJESIiIi0L17d0yePBkrVqxAmTJlsHHjRowZMwYx\nMTEICQkp8L3e3t64dOkSAODkyZNo164dypUrh08//dQosSr5rffNN4GLF2WXyZPUOU1OBvr3l4uG\nHTwIuLgYJ05rU+SN0oSEhDz9525ubrh8+bJRgyJS0ptvvomBAwfik08+gYuLCxwdHdG3b198++23\nmDFjRrH///v5+aFly5Y4ceIEAODUqVN49dVX4erqCm9vb8yYMQM6nU6//cMt78WLF6N27dqYO3cu\n3N3d4erqitdff12/vZ+fHwCgXbt2cHJywmuvvWbIS1Bs33wj14p5662SDXU8dw5o2hR44QW5HAET\nuuEUmdTbtGmD9u3bY/HixVi0aBE6deqEtm3bmiI2IpO7ePEioqOjMXjw4MdeCwoKghACf/75Z5H7\nEULg+PHj2LNnDwICAnDv3j20bdsWgYGBSExMxKZNm7Bw4UJ88803Be4jPj4eN2/eRExMDA4fPoxV\nq1YhLCwMgPwWAAB//vknUlNT8bNCK289SZ3T8HBAowE+/lhWKeKUf8Mq8nLOnTsX69atw549e2Bj\nY4MxY8agZ8+epoiNyORu3boFAKhWrdpjr5UqVQoVK1bE7du3C3x/bGwsXFxcYGNjg4oVKyI4OBgT\nJkzAqlWrULp0aXz88ccAAB8fH0yYMAHffPMNPvjgg3z3VaZMGXz22WewsbGBt7c3AgMDceTIEQwc\nONAAZ2o4uXVOmzUDvL3lKoqb/tyEOcvn4IF4gNI2pfHOwHfQqU1nzJwJzJkjh0Y2a6Z05OpUZFK3\nsbFBr169nni0C5Elee7fxU2uXr2KOnXq5HktKysLt2/fLnQ4r6enp75P/WEJCQmoWbNmnue8vLyQ\nkJBQ4L4qVaqUZwTas88+i9TU1GKdh6nl1jnt1AmIu7YJc7e9i2j/aP3r/8yNxqxZQFpyZxw6xAlF\nxlRgUi9btmyBQxptbGyQkpJitKCIlFKnTh14eXlh2bJlaN26dZ7XwsLCYGtri/bt25d4vzVq1EB8\nfHye52JiYlCjRo0njtXcZnbn1jkd9OEcPBgWnee1mMbRSN8wF9F7O+OZZxQK0EoU2KeelpaG1NTU\nfB9M6KRmP/zwA5YuXYoZM2YgOTkZGRkZWL16NcaPH4+QkJAnmnjXuXNnPHjwAF988QWys7Nx4cIF\nzJw5E8HBwcXex6MjXSpXroyLFy+WOBZj6t0bqOrxIN/XnvfNZEI3gSJvlBJZmw4dOmDHjh3Ys2cP\nPD094eTkhP79+2POnDmYPHlyge+zsbEpsPVcrlw5REREYPv27XBzc0OHDh0wbNiwAktD5revR5+b\nMWMGpk6dCldXV4wdO/YJztQ4atcsne/zjnZcXsQUuJ46URHu3buHVq1aoX79+li6dKnZdXuYmzXh\nmzD883eR1vG/LhjvY974/q3v0bltZwUjs2xPvUyAsTCpkyVKTEzETz/9hJ49e8LX11fpcMxWTAzQ\nsydQocom6CrMRdTxTHhWd8TMD99mQn9KTOpEZFJbtgDDhwOffCJnm9rYAJcuAS1bAkuXAm3aKB2h\nZTNY5SMiS/XgwQO0atUq31+EPXv2oFGjRnBwcMCaNWsK3IdGo4GPjw/8/f3h7++PW7duYffu3Wje\nvHme7XJycuDm5oYbN24UuK9ly5bBz88PL7zwAlq0aIFTp07lu92gQYPg4+MDX19fBAcH62saREZG\nwtnZWR/L559/XpzL8JgePXqg2SODxOfMmfPEFc10OuDzz4FRo4A1a+Ts0tweKnOqc2o1hIkpcEiy\nUqGhoWLmzJn5vhYXFydOnTolhg4dKlavXl3gPjQajTh69Gie57RarXB3dxfx8fH657Zs2SICAwML\njWf//v3i7t27+u2bNm2a73abN2/W/xwUFCQWLFgghBBi165domvXroUeoyh37twR3t7eolGjRiIm\nJkb/fEpKiggICCjx/u7eFaJ7dyGaNxfi6tWCt1u8WAgvLyFu3nySqEmI4udOttRJtVasWIHu3bvn\n+1rNmjXh6+sLW9uifwXEIy19W1tb9OvXTz9lH5Bj2IOCggrdT7NmzeDs7AwAaNq0Ka5cuZLvdh07\ndtT/HBAQkGe7R2MBgLi4OPj4+GDEiBF4/vnnMWjQIERERKBFixaoU6cODh8+rN927dq16Nq1K/r2\n7ZsnficnJ1SoUAFnz54t9BwedvKkHJtetSqwa5f8syBK1Tm1Skb9aMmHAockK5STkyMqV65c5HbD\nhw8vsqVev3590bBhQzF9+nT980eOHBH+/v5CCCEyMzNFpUqVxJ07d4od36xZs8To0aML3SYrK0s0\natRI/PXXX0II2VJ3dXUVL7zwgujYsaM4e/asEEKI2NhYYW9vL86cOSN0Op1o3LixGDlypBBCiPXr\n14sePXro99m2bVtx4MABER0dLXx9ffMcb+rUqWL+/PnFij80VIiKFYVYurTYpyy0WiH69hVi4EAh\ndLriv4+k4uZOg7fUExIS0Lp1a9SvXx8NGjTAnDlzDH0IoiLdvn0bTk5OT72fZcuW4cyZM9i7dy/2\n7t2r73du3Lgx0tLScPHiRWzZsgUvvfQSypcvX6x97tq1CwsXLsT//ve/Qrd744030KpVK7T4t7xQ\n48aNkZCQgJMnT+Ltt99Gjx499Nt6enqifv36sLGxQf369dHm37uSDRo0QFxcHAA5gueff/7BSy+9\nBC8vL5QqVSpPy7xq1ar6bQuSni6LY8yeLdc/HzSoWKcMwLR1Tq2ZwZO6g4MDvv32W5w9exYHDx7E\nvHnz8DfvkJACxENdFVOmTIG/vz8a5VOWvrBx51X/7VMoW7YsBg4ciKioKP1rQUFBCAsLw++//15k\n10uuU6dOYfTo0diwYQNcCllv9tNPP0VSUlKeVRydnJzwzL9TMjt27Ijs7GwkJycDAEqX/m/Cj62t\nLUqVKqX/OfdG68qVK5GcnAxPT094enoiLi4OK1as0L9PCFHotbhwQS6Xm5MDREUBdesW65TzMEWd\nU2tn8KSfdneyAAAVo0lEQVReuXJlNGzYEID8Rahbty6uXbtm6MMQFapixYpIS0vT//3zzz/H8ePH\ncezYsTzbCSEKHCam1Wr1KzJmZ2dj48aNecaoBwUF4bfffsOuXbvy9N3/8MMPmDdv3mP7u3z5Mnr1\n6oWlS5eiVq1aBcb+f//3f4iIiMDyR7JeYmKiPtaoqCgIIeDq6lrgfh61YsUKbNu2DbGxsYiNjcWR\nI0fy9Ktfv34dHh4e+b7399+Bl18G3nkHWLIEePbZYh/2MW5uwMaNwLhxshweGZZRVzKOi4vD8ePH\nHyvR9XDlGI1GA41GY8wwyArZ2dmhQYMGuHDhAp5//vnHXj98+DB69eqFO3fuIDw8HCEhITh9+jQA\nwN/fH8ePH0dmZiY6dOiA7OxsaLVatG3bFqNHj9bvw8fHB2XLlkVAQADKlCmjf/78+fNo2bLlY8ec\nPn067ty5o5/S7+DgoG/5d+7cGaGhoahcuTLGjh0LDw8P/bDD3r17Y8qUKVi1ahV+/PFH2Nvb45ln\nnsmTkPNbUuDhn+Pj45GQkJDnd9HDwwPOzs44fPgwAgICEBUVha+//jrPfh48AN57D9i2DYiIAPz9\ni7jwxeTrKz8c+vQxXJ1TtYmMjERkZGSJ32e0yUdpaWnQaDSYMmVKnr4/Tj4iU1m8eDESExMxYcIE\nkx63a9euWLduHewtqPpDSkoKAgMD84yUiY0F+vUD3N1ld8m/A3cMat48+di/HyjmLQmrpeiM0uzs\nbHTp0gUdO3bEuHHjnigwoqeVlZWFNm3aYPfu3VyvpQhz5syBq6urvuLTmjXA2LHApEmym8SYl+/d\nd2V5uyepc2pNFEvqQggMGzYMFSpUwLf51LdiUicyXxkZwPjxwJ9/AitWAE2aGP+YWi3QrZssnPHj\nj8b9ALFkii0TsG/fPixduhS7du3ST2feunWroQ9DRAZ29qxM4ikpwPHjpknowJPVOaWCcUEvIisn\nBPDLL7IQ9MyZclEuJVrLly/LuqXz58s6p5RXcXOn5dzJISKDu3sXeO01OQZ9717Ax0e5WB6uc+ru\nDuQzpYCKgWu/EFmpAwfkEEU3N+DQIWUTeq7cOqfduwNXryodjWViS53Iymi1spvlu++An382v66O\n3r3lOuxdu8qlCMqWVToiy8I+dSIrEh8vV0wUQhaucHdXOqL8CQEEBwNJScDatfJmqrVjkQwi0hMC\nWLYMePFFoGNHYOdO803ogLxR++OPciSOieeOWTx2vxCp3J07ciLRqVOGnepvbKVKyUlQzZoBderI\nG7pUNLbUiVRs507Azw+oVAk4etRyEnouV1cgPByYOhXYvl3paCwD+9SJVCgzU447DwsDFi4E2rdX\nOqKns2ePXPxr9+4nW/JXDdinTmSlTp+Ws0Hj4mSXi6UndAB45RVg1iygSxfg1i2lozFvTOpEKqHV\nysT36qtyudzVq4EKFZSOynBY57R42P1CpAIXL8rp/aVLy+4WT0+lIzIOnQ4YMECu5rh0qXUt/sXu\nFyIroNPJSUTNmwMDBwI7dqg3oQOsc1ocHNJIZKGio2URaJ0OOHgQKKRCnqrk1jlt2hSoXVt+mNF/\n2FInsjA6nawW1LQp0LOnHBFiLQk9F+ucFox96kQWJC4OGDlSFrNYvBjIp/yqVdm6VX5bsYY6p+xT\nJ1IRnQ5YsEBO8+/QAfjrLyZ0QF6LKVPkUMe7d5WOxjywpU5k5i5cAEaPBrKzgdBQoF49pSMyP9ZQ\n55QtdSILl50NfPEF0KIF0LevbJ0zoefvm2/kWjFvvSUXL7NmTOpEZujIEdnVsnevXLPl7be5/Gxh\nWOf0PxzSSGRG0tPl4lW//QbMng0MGmRdE2yehpOTXPyrWTPA29v8in+YClvqRGZixw7A1xe4fh04\ncwYYPJgJvaRy65yOGgUcO6Z0NMrgjVIihd26BXz0kUzqCxYAnTsrHZHlW7NGjmE/eBCoVk3paAyD\nN0qJzJxOB/zf/wENGgDlywNnzzKhG0rv3sCbb8o6p2lpSkdjWmypEyng1ClZjUirlWXbGjZUOiL1\nUVudU7bUicxQWhrwwQdAmzZyKdn9+5nQjcVa65wyqROZgBDAunVynPmtW/JG6GuvyVUHyXhy65xu\n3Aj8/LPS0ZgGhzQSGVlsrBxnHhMDLFkCaDRKR2Rdcuuctmwp14dp00bpiIyL7QQiI0lPB6ZNAwIC\n5KzQEyeY0JVSuzawcqVcpvfvv5WOxriY1IkMTAhg1SpZIPniReD4cWDSJNkVQMqxljqn7H4hMqDT\np4F33gGSk+Ws0FdeUToietiwYcClS7LO6Y4dgKOj0hEZHlvqRAaQnCz7zdu0Afr1k+u1MKGbp88+\nkxOSgoPVufgXkzrRU9BqgZ9+kl0tOp1c/nXsWMCe34HNltrrnPK/HtET2r5djjl3dgYiIgA/P6Uj\nouJSc51TJnWiEjp7FvjwQ3kTdOZMWSeUC29Zntw6p4GBQM2acoSSGrD7haiYEhOB118HWrcG2rWT\nXS29ejGhWzJfXzl3oE8fOY9ADYyS1EeOHAk3Nzf4+voaY/dEJpWeDsyYAdSvDzzzDHD+vFwBkEMU\n1UFtdU6NktRHjBiBrVu3GmPXRCaj08lhiT4+cuLQoUOybJqrq9KRkaG9+SbQtq0sG5idrXQ0T8co\nSb1ly5ZwcXExxq6JjE4IYMsWoHFjYN48YMUKOZnI21vpyMiY1FLnVJEbpSEhIfqfNRoNNJw7TWZi\n3z45+/P2bdnl0qMH+8ytRW6d0xYtZJ3T995TNp7IyEhERkaW+H1GW089Li4OXbt2xenTp/MekOup\nkxk6dQr4+GP556efAkOGWP762/RkLl+WdU7nzzevOqdcT52oGGJiZC3Qdu3kbNCLF4Hhw5nQrZml\n1zllUierdO2avDkWEADUqSPXA3n3XaB0aaUjI3MQECALbHTvDly9qnQ0JWOUpB4UFITmzZvj4sWL\ncHd3x6JFi4xxGKISu3ZNJu8GDeRiThcuAFOnAk5OSkdG5sZS65yyRilZhevXgf/9T040GT4c+Ogj\noHJlpaMic2dOdU7Zp04EmczHj5cTh2xs5BT/b75hQqfiscQ6p0zqpEoPJ3MhZDL/9lugShWlIyNL\nY2l1TpnUSVXi4+W65vXryxmhZ84A333HZE5PJ7fO6dSpcnVOc8akTqpw7pysatOokVyf5exZ4Pvv\ngapVlY6M1MJS6pwyqZNFi4qSS9+2bi2HJv7zj7whypY5GYMl1Dnl6BeyOELI+pJffinHl3/wgZwo\n8swzSkdG1mLKFGDXLtPWOS1u7mRSJ4uRkyNvWM2eDaSmytEIAwdyCVwyPZ0OGDAAcHAAli41zfpA\nTOqkGvfuAf/3f8CcOYCHhxzV0q2brDVJpJSMDNnt17EjMG2a8Y9X3NzJcnZktmJjZSL/9Vf5i7Nm\nDfDii0pHRSSZa51TtnXI7Bw4IIsVBATIrpWTJ4Fly5jQyfzk1jkdN04u22wO2P1CZiEzUw4XmzdP\nrmU+bhwwYgRQtqzSkREVbetW+f913z7Ay8s4x2CfOlmEuDg5DXvhQjnG/M03gU6duPQtWZ558+Rj\n/36gfHnD759rv5DZ0umAbdvkzc4XXwSysmQLZ+tWuSIeEzpZInOpc8qWOplMcrK86Tl/vuxWefNN\neXOJ48tJLbRa2VhxdwcWLDDsUEe21Mks6HTAzp0yeXt5AUePysR+7BgnDJH65NY53b9fLiCnBA5p\nJKO4ehVYvBgIDZUFKEaPlv2NLi5KR0ZkXE5OcvGvZs0Ab2/T1zllUieDyc4GNm+WE4X27QP69ZMj\nWho3Ns2MOyJzkVvntFMn2RXTqJHpjs0+dXoqQgAnTgC//QasWAHUqiW7Vfr0AZ59VunoiJS1Zo0c\nnnvwIFCt2tPtizNKyagSEuSEoN9+k9OlBw8Gdu+WKyUSkdS7t1x0rmtXYM8e08y7YEudii0lRbY8\nfvtNzvLs0wcYMgRo0YLdK0QFMVSdU04+IoNIT5f95CtXAhERcgGjwYOBzp1Nt+QokaXLygLat5f3\nl77++sn2waROTyw9HdiyBVi1Sk4IatJE3vTs2ROoUEHp6IgsU3KyHBHz/vvAa6+V/P1M6lQiGRky\nga9cKRN6QICcGdezJ/Dcc0pHR6QOly4BLVvKNdjbtCnZe5nUqUjJycCmTXL50O3b5VfD3BZ5pUpK\nR0ekTnv2yPtRu3cDdesW/31M6pSv2FiZxNevl7M7X31VTo7o3JmJnMhUfv0V+OwzOdSxuN+EmdQJ\ngFyL4uhRuebz+vVAYqIsmtu9u/z6x2n6RMooaZ1TJnUrduOGHKmydav8s3Jl2RLv3l1WaeEqiETK\nK2mdUyZ1K5KdLRcQ2rZNJvLYWNkK79BBDqOqXl3pCIkoPyWpc8qkrmJarZyav2uXfOzbJ2skdugg\nH02bAvacK0xkERIT5e/sF18UXueUSV1FdDrgzBm5hO2uXfLueZUq8hO+dWugVSsOOySyZKdPA4GB\nwLp1coZ2fpjULVhmplxvfP9++di7V5bHat1ajlbRaGQ/ORGpR1F1TpnULciNG/8l8P375boqdesC\nzZvLx8svs1+cyBoUVueUSd1M3bkjhxjmPg4fBu7d+y+BN28uZ3Ny2Voi6/Tuu8C5c3LNJQeH/55n\nUjcDt2/LG5oPJ/Fbt4CGDWXB5caN5aNOHcCWhQWJCAXXOWVSN6G0NPnJeuaMvOFx5ox8pKcDfn7/\nJe8XX5SjVDhOnIgKk5oqb5gOHw689558jkndwIQArl0DLl6Uj0uX5J9nzwLXrwM+PkCDBkCZMpHo\n0UODBg1kP7ja1hmPjIyERqNROgyj4flZLrWd2+XLclXH+fPlxMHi5k6jfOnfunUrfHx8ULt2bfzv\nf/8zxiGMIj0duHBBzsL85Rfg44/lSoUNG8qKJY0bywkCUVFyCOHw4bLfKyVFjlZZsgSoUiUSHTvK\nr05qS+iA/MVRM56f5VLbueXWOR01SuaX4jL4FBWtVou33noL27dvR7Vq1RAQEIBu3bqhbkmWIzMw\nIeSKhImJcqRJ7uPKFSA+Xn4ixsfL5OzuDtSsKR8eHrIcVZ06svZmuXKKnQIRWaGAAODHH2VLvbgM\nntSjoqJQq1YteHh4AAAGDBiA9evXP3VS1+nk+O3792WLOjVVjiQp7JGbxBMT5WiSypXlw81NPqpX\nB1566b8kXqkSb1gSkXnp3Rv45x9g4sTibW/wPvXVq1dj27Zt+OWXXwAAS5cuxaFDhzB37lx5QDX2\nSRARmUBx0rXBW+pFJW1LvElKRGQpDN7ZUK1aNSQkJOj/npCQgOqcDklEZBIGT+ovvvgiLl26hLi4\nOGRlZeH3339Ht27dDH0YIiLKh8G7X+zt7fHDDz+gffv20Gq1CA4OVnTkCxGRNTHKWI+OHTviwoUL\n+OeffzBp0qR8t5k7dy7q1q2LBg0aYMKECcYIQzEhISGoXr06/P394e/vj61btyodklHMnj0btra2\nSE5OVjoUg/rkk0/g5+eHhg0bIjAwME93ohp8+OGHqFu3Lvz8/NCrVy/cu3dP6ZAMatWqVahfvz7s\n7OxwrCQDvM1Yieb+CAXs3LlTtGnTRmRlZQkhhLh586YSYRhNSEiImD17ttJhGNXly5dF+/bthYeH\nh0hKSlI6HINKSUnR/zxnzhwRHBysYDSGFxERIbRarRBCiAkTJogJEyYoHJFh/f333+LChQtCo9GI\no0ePKh3OU8vJyRHe3t4iNjZWZGVlCT8/P3Hu3LkCt1dkVPaCBQswadIkOPy7BNlzKqzwIFQ+yue9\n997DzJkzlQ7DKJycnPQ/p6WloWLFigpGY3ht27aF7b8TMpo2bYorV64oHJFh+fj4oE6dOkqHYTAP\nz/1xcHDQz/0piCJJ/dKlS9izZw9eeuklaDQaHDlyRIkwjGru3Lnw8/NDcHAw7t69q3Q4BrV+/XpU\nr14dL7zwgtKhGM3HH3+MGjVq4Ndff8XE4s76sEALFy5Ep06dlA6DCnH16lW4u7vr/169enVcvXq1\nwO2NVsmybdu2uHHjxmPPz5gxAzk5Obhz5w4OHjyIw4cPo1+/foiJiTFWKEZR2PmNHTsWU6dOBSD7\nZ99//32EhoaaOsSnUtj5ffnll4iIiNA/Z4nfSgo6vy+++AJdu3bFjBkzMGPGDHz11VcYP348Fi1a\npECUT66o8wPkv2WpUqUwsLDCmGaqOOenFiWesGmyjqGHdOjQQURGRur/7u3tLW7fvq1EKEYXGxsr\nGjRooHQYBnP69GlRqVIl4eHhITw8PIS9vb2oWbOmSExMVDo0o4iPjxf169dXOgyDW7RokWjevLnI\nyMhQOhSjUUuf+oEDB0T79u31f//iiy/EV199VeD2inS/9OjRAzt37gQAXLx4EVlZWahQoYISoRjF\n9evX9T+vW7cOvr6+CkZjWA0aNEBiYiJiY2MRGxuL6tWr49ixY6hUqZLSoRnMpUuX9D+vX78e/v7+\nCkZjeFu3bsWsWbOwfv16ODo6Kh2OUQkL/Bb5qJLO/TH5euoAkJ2djZEjR+LEiRMoVaoUZs+erap1\nkIcOHYoTJ07AxsYGnp6e+Omnn+Dm5qZ0WEbh5eWFI0eOwNXVVelQDKZPnz64cOEC7Ozs4O3tjQUL\nFqjqQ6t27drIysrS/5s1a9YM8+fPVzgqw1m3bh3eeecd3L59G87OzvD398eWLVuUDuupbNmyBePG\njdPP/SloqDigUFInIiLj4EKzREQqwqRORKQiTOpERCrCpE5EpCJM6mQ1Xn311TyTpgDgu+++wxtv\nvKFQRESGx6ROViMoKAhhYWF5nvv9998tckYlUUGY1Mlq9O7dG5s2bUJOTg4AIC4uDteuXUPz5s3x\nxhtvoG7dumjXrh06d+6MNWvWAAAmTpyI+vXrw8/PDx9++KGS4RMVi9HWfiEyN66urmjSpAk2b96M\nbt26ISwsDP3798fatWsRHx+Pv//+G4mJiahbty6Cg4ORlJSEP/74A+fPnwcApKSkKHwGREVjS52s\nysNdML///juCgoKwb98+9OvXDwDg5uaG1q1bAwDKly8PR0dHBAcHY926dShTpoxicRMVF5M6WZVu\n3bphx44dOH78ONLT0/XruuQ3sdrOzg5RUVHo06cPwsPD0aFDB1OHS1RiTOpkVcqWLYvWrVtjxIgR\n+hukLVq0wJo1ayCEQGJiIiIjIwEA9+/fx927d9GxY0d88803OHnypIKRExUP+9TJ6gQFBaFXr15Y\nuXIlAHkDdceOHahXrx7c3d3RqFEjODs7IzU1Fd27d0dmZiaEEPj2228VjpyoaFzQiwiyVf7ss88i\nKSkJTZs2xf79+1W1MiNZD7bUiQB06dIFd+/eRVZWFqZOncqEThaLLXUiIhXhjVIiIhVhUiciUhEm\ndSIiFWFSJyJSESZ1IiIVYVInIlKR/wdjx32hRVMVVQAAAABJRU5ErkJggg==\n"
+ }
+ ],
+ "prompt_number": 328
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 7.11, Page Number: 228<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "V_DD=12; # voltage in volt",
+ "V_D=7; # voltage in volt",
+ "R_D=3.3*10**3; # resistance in ohm",
+ "R_S=2.2*10**3; # resistance in ohm",
+ "R_1=6.8*10**6; # resistance in ohm",
+ "R_2=1*10**6; # resistance in ohm",
+ "",
+ "#calculation",
+ "I_D=(V_DD-V_D)/R_D; # drain current in ampere",
+ "V_S=I_D*R_S; # source voltage in volt",
+ "V_G=(R_2/(R_1+R_2))*V_DD; # gate voltage in volt",
+ "V_GS=V_G-V_S; # gate to source voltage in volt",
+ "",
+ "# result",
+ "print \"Drain Current = %.4f Ampere\" %I_D",
+ "print \"Gate to source voltage = %.4f volts\" %V_GS"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Drain Current = 0.0015 Ampere",
+ "Gate to source voltage = -1.7949 volts"
+ ]
+ }
+ ],
+ "prompt_number": 329
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 7.12, Page Number: 229<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "R_1=2.2*10**6; # resistance in ohm ",
+ "R_2=R_1; # resistance in ohm",
+ "V_DD=8; # voltage in volt",
+ "R_S=3.3*10**3; # resistance in ohm",
+ "",
+ "#calculation",
+ "V_GS=(R_2/(R_1+R_2))*V_DD; #FOR I_D=0A",
+ "V_G=V_GS; # voltage in volt",
+ "I_D=(V_G-0)/R_S; #FOR V_GS=0V",
+ "",
+ "# result",
+ "print \"V_GS = %d volt\" %V_GS",
+ "print \"at V_GS=0V. I_D = %.4f ampere\" %I_D",
+ "print \"Plotting load line using the value of V_GS=4V at I_D=0\"",
+ "print \" and I_D=1.2mA at V_GS=0V, we find the intersection of\"",
+ "print \" load line with transfer characteristic to get Q-point\"",
+ "print \" values of V_GS=-1.8V and I_D=1.8mA\""
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "V_GS = 4 volt",
+ "at V_GS=0V. I_D = 0.0012 ampere",
+ "Plotting load line using the value of V_GS=4V at I_D=0",
+ " and I_D=1.2mA at V_GS=0V, we find the intersection of",
+ " load line with transfer characteristic to get Q-point",
+ " values of V_GS=-1.8V and I_D=1.8mA"
+ ]
+ }
+ ],
+ "prompt_number": 330
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 7.13, Page Number: 235<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "I_DSS=10.0*10**-3;",
+ "V_GS_off=-8.0;",
+ "V_GS=-3.0;",
+ "I_D=I_DSS*(1-(V_GS/V_GS_off))**2;",
+ "print('Drain current when V_GS=-3V is %f Amperes'%I_D)",
+ "V_GS=3;",
+ "I_D=I_DSS*(1-(V_GS/V_GS_off))**2;",
+ "print('Drain current when V_GS=3V is %f Amperes'%I_D)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Drain current when V_GS=-3V is 0.003906 Amperes",
+ "Drain current when V_GS=3V is 0.018906 Amperes"
+ ]
+ }
+ ],
+ "prompt_number": 331
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 7.14, Page Number: 236<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "#variable Declaration",
+ "I_D_on=500.0*10**-3;",
+ "V_GS=10.0;",
+ "V_GS_th=1.0;",
+ "K=I_D_on/((V_GS-V_GS_th)**2)",
+ "V_GS=5.0;",
+ "I_D=K*(V_GS-V_GS_th)**2;",
+ "print('Drain current = %f A'%I_D)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Drain current = 0.098765 A"
+ ]
+ }
+ ],
+ "prompt_number": 332
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 7.15, Page Number: 237<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "I_DSS=12*10**-3; # currenin ampere",
+ "V_DD=18; # voltage in volt",
+ "R_D=620; # resistance in oh",
+ "",
+ "#calculation",
+ "I_D=I_DSS; # currents are equal",
+ "V_DS=V_DD-I_D*R_D; # drain to source voltage",
+ "",
+ "# result",
+ "print \"Drain to sorce voltage = %.2f volt\" %V_DS"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Drain to sorce voltage = 10.56 volt"
+ ]
+ }
+ ],
+ "prompt_number": 333
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 7.16, Page Number: 238<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "#variable Declaration",
+ "I_D_on=200.0*10**-3;",
+ "V_DD=24.0;",
+ "R_D=200.0;",
+ "V_GS=4.0;",
+ "V_GS_th=2.0;",
+ "R_1=100.0*10**3;",
+ "R_2=15.0*10**3;",
+ "",
+ "#Calculation ",
+ "K=I_D_on/((V_GS-V_GS_th)**2)",
+ "V_GS=(R_2/(R_1+R_2))*V_DD;",
+ "I_D=K*(V_GS-V_GS_th)**2;",
+ "V_DS=V_DD-I_D*R_D;",
+ "",
+ "#Result",
+ "print('Drain to Source voltage = %f V'%V_DS)",
+ "print('Gate to Source voltage = %f V'%V_GS)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Drain to Source voltage = 11.221172 V",
+ "Gate to Source voltage = 3.130435 V"
+ ]
+ }
+ ],
+ "prompt_number": 334
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 7.17, Page Number: 239<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "V_GS_on=3; # voltage in volt",
+ "V_GS=8.5 #voltage displayed on meter",
+ "V_DS=V_GS; # voltages are equal ",
+ "V_DD=15; # voltage in volt",
+ "R_D=4.7*10**3; # resistance in ohm",
+ "",
+ "#calculation",
+ "I_D=(V_DD-V_DS)/R_D; # drain current",
+ "",
+ "# result",
+ "print \"Drain current = %.4f ampere\" %I_D"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Drain current = 0.0014 ampere"
+ ]
+ }
+ ],
+ "prompt_number": 335
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices/Chapter8.ipynb b/Electronic_Devices/Chapter8.ipynb
new file mode 100755
index 00000000..8cb0d972
--- /dev/null
+++ b/Electronic_Devices/Chapter8.ipynb
@@ -0,0 +1,422 @@
+{
+ "metadata": {
+ "name": "Chapter_8"
+ },
+ "nbformat": 2,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h1>Chapter 8: FET Amplifiers<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 8.1, Page Number: 253<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "g_m=4.0*10**-3; #gm value",
+ "R_d=1.5*10**3; #resistance",
+ "",
+ "#calculation",
+ "A_v=g_m*R_d; #voltage gain",
+ "",
+ "#result",
+ "print \"Voltage gain = %.2f\" %A_v"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage gain = 6.00"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 8.2, Page Number: 253<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "r_ds=10.0*10**3;",
+ "R_d=1.5*10**3; #from previous question",
+ "g_m=4.0*10**-3; #from previous question",
+ "",
+ "#calculation",
+ "A_v=g_m*((R_d*r_ds)/(R_d+r_ds)); #voltage gain",
+ "",
+ "#result",
+ "print \"Voltage gain = %.2f\" %A_v"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage gain = 5.22"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 8.3, Page Number:254<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "R_s=560; #resistance in ohm",
+ "R_d=1.5*10**3; #resistance in ohm",
+ "g_m=4*10**-3; #g_m value",
+ "",
+ "#calculation",
+ "A_v=(g_m*R_d)/(1+(g_m*R_s)) #voltage gain",
+ "",
+ "#result",
+ "print \"Voltage gain = %.2f\" %A_v"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage gain = 1.85"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 8.4, Page Number: 257<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "#Variable declaration",
+ "vdd=12.0 #volts",
+ "Id=1.96*10**-3 #Amp",
+ "Rd=3.3*10**3 #ohm",
+ "Idss=12.0*10**-3 #Amp",
+ "Rs=910 # Ohm",
+ "vgsoff= 3 #v",
+ "vin=0.1 #V",
+ "",
+ "#calculation",
+ "vd=vdd-(Id*Rd)",
+ "vgs=-Id*Rs",
+ "gm0=2*Idss/(abs(vgsoff))",
+ "gm=0.00325 #mS",
+ "vout=gm*Rd*vin",
+ "vout=vout*2*1.414",
+ "#Result",
+ "print\"Total output ac voltage(peak-to-peak) = %f V \\nridig on DC value of %fV \"%(vout,vd)"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total output ac voltage(peak-to-peak) = 3.033030 V ",
+ "ridig on DC value of 5.532000V "
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 8.5, Page Number: 258<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "R_D=3.3*10**3; #resistance in ohm",
+ "R_L=4.7*10**3; #load resistance in ohm",
+ "g_m=3.25*10**-3; #from previous question",
+ "V_in=100.0*10**-3; #previous question",
+ "",
+ "#calculation",
+ "R_d=(R_D*R_L)/(R_D+R_L); #Equivalent drain resistance",
+ "V_out=g_m*R_d*V_in; #output RMS voltage in volt",
+ "",
+ "#result",
+ "print \"Output voltage rms value = %.2f Volts\" %V_out"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Output voltage rms value = 0.63 Volts"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 8.6, Page Number: 259<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "I_GSS=30.0*10**-9; #current in ampere",
+ "V_GS=10.0; #ground-source voltage",
+ "R_G=10.0*10**6; #resistance in ohm",
+ "",
+ "#calculation",
+ "R_IN_gate=V_GS/I_GSS; #gate input resistance",
+ "R_in=(R_IN_gate*R_G)/(R_IN_gate+R_G); #parallel combination",
+ "",
+ "#result",
+ "print \"Input resistance as seen by signal source = %.2f ohm\" %R_in"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Input resistance as seen by signal source = 9708737.86 ohm"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 8.7, Page Number: 260<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "I_DSS=200.0*10**-3;",
+ "g_m=200.0*10**-3;",
+ "V_in=500.0*10**-3;",
+ "V_DD=15.0;",
+ "R_D=33.0;",
+ "R_L=8.2*10**3;",
+ "",
+ "#calculation",
+ "I_D=I_DSS; #Amplifier is zero biased",
+ "V_D=V_DD-I_D*R_D;",
+ "R_d=(R_D*R_L)/(R_D+R_L);",
+ "V_out=g_m*R_d*V_in;",
+ "",
+ "#result",
+ "print \"DC output voltage = %.2f Volts\" %V_D",
+ "print \"AC output voltage = %.2f volts\" %V_out"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "DC output voltage = 8.40 Volts",
+ "AC output voltage = 3.29 volts"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 8.8, Page Number: 262<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# Theoretical example",
+ "# result",
+ "",
+ "print \"Part A:\\nQ point: V_GS=-2V I_D=2.5mA. At V_GS=-1V, I_D=3.4mA,\"",
+ "print \"At V_GS=-3V, I_D=1.8mA. So peak to peak drain current is\" ",
+ "print \"the difference of the two drain currents=1.6mA\"",
+ "print \"\\nPart B:\\nQ point: V_GS=0V I_D=4mA. At V_GS=1V, I_D=5.3mA,\"",
+ "print \"At V_GS=-1V, I_D=2.5mA. So peak to peak drain current is\"",
+ "print\" the difference of the two drain currents=2.8mA\"",
+ "print \"\\nPart C:\\nQ point: V_GS=8V I_D=2.5mA. At V_GS=9V, I_D=3.9mA,\"",
+ "print \" At V_GS=7V, I_D=1.7mA. So peak to peak drain current is\"",
+ "print \" the difference of the two drain currents=2.2mA\""
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part A:",
+ "Q point: V_GS=-2V I_D=2.5mA. At V_GS=-1V, I_D=3.4mA,",
+ "At V_GS=-3V, I_D=1.8mA. So peak to peak drain current is",
+ "the difference of the two drain currents=1.6mA",
+ "",
+ "Part B:",
+ "Q point: V_GS=0V I_D=4mA. At V_GS=1V, I_D=5.3mA,",
+ "At V_GS=-1V, I_D=2.5mA. So peak to peak drain current is",
+ " the difference of the two drain currents=2.8mA",
+ "",
+ "Part C:",
+ "Q point: V_GS=8V I_D=2.5mA. At V_GS=9V, I_D=3.9mA,",
+ " At V_GS=7V, I_D=1.7mA. So peak to peak drain current is",
+ " the difference of the two drain currents=2.2mA"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 8.9, Page Number:263 <h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "R_1=47.0*10**3;",
+ "R_2=8.2*10**3;",
+ "R_D=3.3*10**3;",
+ "R_L=33.0*10**3;",
+ "I_D_on=200.0*10**-3;",
+ "V_GS=4.0;",
+ "V_GS_th=2.0;",
+ "g_m=23*10**-3;",
+ "V_in=25*10**-3;",
+ "V_DD=15.0;",
+ "",
+ "#calculation",
+ "V_GSnew=(R_2/(R_1+R_2))*V_DD;",
+ "K=I_D_on/((V_GS-V_GS_th)**2)",
+ "#K=value_of_K(200*10**-3,4,2);",
+ "K=K*1000;",
+ "I_D=K*((V_GSnew-V_GS_th)**2);",
+ "V_DS=V_DD-I_D*R_D/1000;",
+ "R_d=(R_D*R_L)/(R_D+R_L);",
+ "V_out=g_m*V_in*R_d;",
+ "",
+ "#result",
+ "print \"Drain to source voltage = %.2f volts\" %V_GSnew",
+ "print \"Drain current = %.2f mA\" %I_D",
+ "print \"Gate to source voltage = %.2f volts\" %V_DS",
+ "print \"AC output voltage = %.2f volts\" %V_out",
+ "print \"Answer in textbook are approximated\""
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Drain to source voltage = 2.23 volts",
+ "Drain current = 2.61 mA",
+ "Gate to source voltage = 6.40 volts",
+ "AC output voltage = 1.72 volts",
+ "Answer in textbook are approximated"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 8.10, Page Number: 266<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "V_DD=-15.0; #p=channel MOSFET",
+ "g_m=2000.0*10**-6; #minimum value from datasheets",
+ "R_D=10.0*10**3;",
+ "R_L=10.0*10**3;",
+ "R_S=4.7*10**3;",
+ "",
+ "#calculation",
+ "R_d=(R_D*R_L)/(R_D+R_L); #effective drain resistance",
+ "A_v=g_m*R_d;",
+ "R_in_source=1.0/g_m;",
+ "#signal souce sees R_S in parallel with ip rest at source terminal(R_in_source)",
+ "R_in=(R_in_source*R_S)/(R_in_source+R_S); ",
+ "",
+ "#result ",
+ "print \"minimum voltage gain = %.2f\" %A_v",
+ "print \"Input resistance seen from signal source = %.2f ohms\" %R_in"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "minimum voltage gain = 10.00",
+ "Input resistance seen from signal source = 451.92 ohms"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices/Chapter9.ipynb b/Electronic_Devices/Chapter9.ipynb
new file mode 100755
index 00000000..3bd19f57
--- /dev/null
+++ b/Electronic_Devices/Chapter9.ipynb
@@ -0,0 +1,371 @@
+{
+ "metadata": {
+ "name": "Chapter_9"
+ },
+ "nbformat": 2,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h1>Chapter 9: Power Amplifiers<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 9.1, Page Number: 280<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "V_CC=15.0; #supply voltage",
+ "R_C=1.0*10**3; #resistance in ohm",
+ "R_1=20.0*10**3; #resistance in ohm",
+ "R_2=5.1*10**3; #resistance in ohm",
+ "R_3=5.1*10**3; #resistance in ohm",
+ "R_4=15.0*10**3; #resistance in ohm",
+ "R_E_1=47.0; #resistance in ohm",
+ "R_E_2=330.0; #resistance in ohm",
+ "R_E_3=16.0; #resistance in ohm",
+ "R_L=16.0; #SPEAKER IS THE LOAD;",
+ "B_ac_Q1=200.0; #B_ac value",
+ "B_ac_Q2=B_ac_Q1; #B_ac value",
+ "B_ac_Q3=50.0; #B_ac value",
+ "",
+ "#calculation",
+ "#R_c1=R_C||[R_3||R_4||B_acQ2*B_ac_Q3*(R_E_3||R_L)] is ac collector resistance",
+ "R=(R_E_3*R_L)/(R_E_3+R_L); #calculating resistance",
+ "R=B_ac_Q2*B_ac_Q3*R; ",
+ "R=(R*R_4)/(R+R_4); #calculating resistance",
+ "R=(R*R_3)/(R+R_3);",
+ "R_c1=(R*R_C)/(R_C+R); #ac collector resistance",
+ "#V_B=((R_2||(B_acQ1*(R_E_1+R_E_2)))/(R_1+(R_2||B_acQ1*(R_E_1+R_E_2))))*V_CC;",
+ "#This is the base voltage;",
+ "#LET R=(R_2||(B_acQ1*(R_E_1+R_E_2)))",
+ "R=(R_2*B_ac_Q1*(R_E_1+R_E_2))/(R_2+B_ac_Q1*(R_E_1+R_E_2));",
+ "V_B=R*V_CC/(R_1+R);",
+ "I_E=(V_B-0.7)/(R_E_1+R_E_2);",
+ "r_e_Q1=25.0*10**-3/I_E;",
+ "A_v1=(-1)*(R_c1)/(R_E_1+r_e_Q1); #voltage gain of 1st stage",
+ "#total input resistance of 1st stage is ",
+ "#R_in_tot_1=R_1||R_2||B_ac_Q1*(R_E_1+r_e_Q1);",
+ "xt=R_E_1+r_e_Q1 ",
+ "yt=R_2*B_ac_Q1",
+ "R_in_tot_1=(R_1*(yt*(xt)/(R_2+B_ac_Q1*(xt))))/(R_1+(yt*(xt)/(yt*(xt))));",
+ "A_v2=1; #gain of darlington voltage-follower",
+ "A_v_tot=A_v1*A_v2; #total gain",
+ "A_p=(A_v_tot**2)*(R_in_tot_1/R_L); #power gain",
+ "A_p=42508.68",
+ "",
+ "#result",
+ "print \"Voltage gain= %.2f\" %A_v_tot",
+ "print \"Power gain= %.2f\" %A_p"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage gain= -15.29",
+ "Power gain= 42508.68"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 9.2, Page Number: 281<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "V_in=176.0*10**-3;",
+ "R_in=2.9*10**3; #total input resistance from previous question",
+ "A_p=42429.0; #power gain from previous question",
+ "V_CC=15.0;",
+ "I_CC=0.6; #emitter current",
+ "",
+ "#calculation",
+ "P_in=V_in**2/R_in; #input power",
+ "P_out=P_in*A_p;",
+ "P_DC=I_CC*V_CC;",
+ "eff=P_out/P_DC; #efficiency",
+ "",
+ "#result",
+ "print \"efficiency= %.2f\" %eff"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "efficiency= 0.05"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 9.3, Page Number: 287<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "V_CC=20.00; #supply voltage",
+ "R_L=16.0; #load resistance",
+ "",
+ "#calculation",
+ "V_out_peak=V_CC; #calculate peak op voltage",
+ "I_out_peak=V_CC/R_L; #calculate peak op current",
+ "",
+ "#result",
+ "print \"ideal maximum peak output voltage = %.2f volts\" %V_out_peak",
+ "print \"ideal maximum current =%.2f amperes\" %I_out_peak"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ideal maximum peak output voltage = 20.00 volts",
+ "ideal maximum current =1.25 amperes"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 9.4, Page Number: 288<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "# variable declaration",
+ "V_CC=20.0; #supply volatge",
+ "R_L=16.0; #load resistance",
+ "",
+ "#calculation",
+ "V_out_peak=V_CC/2;",
+ "I_out_peak=V_out_peak/R_L;",
+ "",
+ "#result",
+ "print \"ideal maximum output peak voltage = %.2f volts\" %V_out_peak",
+ "print \"ideal maximum current = %.2f amperes\" %I_out_peak"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ideal maximum output peak voltage = 10.00 volts",
+ "ideal maximum current = 0.62 amperes"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 9.5, Page Number: 290<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import math",
+ "# variable declaration",
+ "V_CC=20.0; #supply voltage",
+ "R_L=8.0; #load resistance",
+ "B_ac=50.0; #B_ac value",
+ "r_e=6.0; #internal resistance",
+ "",
+ "#calculation",
+ "V_out_peak=V_CC/2;",
+ "V_CEQ=V_out_peak;",
+ "I_out_peak=V_CEQ/R_L;",
+ "I_c_sat=I_out_peak;",
+ "P_out=0.25*I_c_sat*V_CC;",
+ "P_DC=(I_c_sat*V_CC)/math.pi;",
+ "R_in=B_ac*(r_e+R_L);",
+ "",
+ "#result",
+ "print \"maximum ac output power = %.2f Watts\" %P_out",
+ "print \"maximum DC output power = %.2f Watts\" %P_DC",
+ "print \"input resistance = %.2f ohms\" %R_in"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum ac output power = 6.25 Watts",
+ "maximum DC output power = 7.96 Watts",
+ "input resistance = 700.00 ohms"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 9.6, Page Number: 292<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import math",
+ "# variable declaration",
+ "V_DD=24.0;",
+ "V_in=100*10**-3; #ip volatge",
+ "R1=440.0; #resistance in ohm",
+ "R2=5.1*10**3; #resistance in ohm",
+ "R3=100*10**3; #resistance in ohm",
+ "R4=10**3; #resistance in ohm",
+ "R5=100.0; #resistance in ohm",
+ "R7=15*10**3; #resistance in ohm",
+ "R_L=33.0; #load resistance in ohm",
+ "V_TH_Q1=2.0; # V-TH value",
+ "V_TH_Q2=-2.0; ",
+ "",
+ "#calculation",
+ "I_R1=(V_DD-(-V_DD))/(R1+R2+R3);",
+ "V_B=V_DD-I_R1*(R1+R2); #BASE VOLTAGE",
+ "V_E=V_B+0.7; #EMITTER VOLTAGE",
+ "I_E=(V_DD-V_E)/(R4+R5); #EMITTER CURRENT",
+ "V_R6=V_TH_Q1-V_TH_Q2; #VOLTAGE DROP ACROSS R6",
+ "I_R6=I_E; ",
+ "R6=V_R6/I_R6;",
+ "r_e=25*10**-3/I_E; #UNBYPASSED EMITTER RESISTANCE",
+ "A_v=R7/(R5+r_e); #VOLTAGE GAIN",
+ "V_out=A_v*V_in;",
+ "P_L=V_out**2/R_L;",
+ "",
+ "#result",
+ "print \"value of resistance R6 = %.2d ohms for AB operation\" %R6",
+ "print \"power across load = %.2f watts\"%P_L "
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of resistance R6 = 2418 ohms for AB operation",
+ "power across load = 5.15 watts"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 9.7, Page Number:295<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import math",
+ "# variable declaration",
+ "f=200.0*10**3; #frequency in hertz",
+ "I_c_sat=100.0*10**-3; #saturation current",
+ "V_ce_sat=0.2; #sat voltage",
+ "t_on=1.0*10**-6; #on time",
+ "",
+ "#calculation",
+ "T=1/f; #time period of signal",
+ "P_D_avg=(t_on/T)*I_c_sat*V_ce_sat; #power dissipation",
+ "",
+ "#result",
+ "print \"average power dissipation =%.3f Watts\" %P_D_avg"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "average power dissipation =0.004 Watts"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "<h3>Example 9.8, Page Number: 298<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "",
+ "import math",
+ "# variable declaration",
+ "P_D_avg=4.0*10**-3; #power dissipation",
+ "V_CC=24.0; #supply voltage",
+ "R_c=100.0; #resistance in ohm",
+ "",
+ "#calculation",
+ "P_out=(0.5*V_CC**2)/R_c; #output power",
+ "n=(P_out)/(P_out+P_D_avg); #n is efficiency",
+ "",
+ "#result",
+ "print \"efficiency=%.4f\" %n"
+ ],
+ "language": "python",
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "efficiency=0.9986"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices/README.txt b/Electronic_Devices/README.txt
new file mode 100755
index 00000000..7ae64652
--- /dev/null
+++ b/Electronic_Devices/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Laxman Sole
+Course: btech
+College/Institute/Organization: Vishwakarma Institute of Technology, Pune
+Department/Designation: Electronics Engineering
+Book Title: Electronic Devices
+Author: Thomas L. Floyd
+Publisher: Dorling Kindersley Pvt. Ltd.
+Year of publication: 2009
+Isbn: 9788177586435
+Edition: 7th \ No newline at end of file
diff --git a/Electronic_Devices/screenshots/ipwaveform.png b/Electronic_Devices/screenshots/ipwaveform.png
new file mode 100755
index 00000000..72b97ef9
--- /dev/null
+++ b/Electronic_Devices/screenshots/ipwaveform.png
Binary files differ
diff --git a/Electronic_Devices/screenshots/modulatedopvoltage.png b/Electronic_Devices/screenshots/modulatedopvoltage.png
new file mode 100755
index 00000000..bcb4e66a
--- /dev/null
+++ b/Electronic_Devices/screenshots/modulatedopvoltage.png
Binary files differ
diff --git a/Electronic_Devices/screenshots/transfercharectercurve.png b/Electronic_Devices/screenshots/transfercharectercurve.png
new file mode 100755
index 00000000..eda2589e
--- /dev/null
+++ b/Electronic_Devices/screenshots/transfercharectercurve.png
Binary files differ