summaryrefslogtreecommitdiff
path: root/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad
diff options
context:
space:
mode:
authorTrupti Kini2016-09-08 23:30:23 +0600
committerTrupti Kini2016-09-08 23:30:23 +0600
commit28bb57cacd0c8bd76a5c86d7e99e3583f02f0b6c (patch)
treedd9b37ba32f2132675139f6d968e042f07e745e6 /OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad
parentf62f4df01e615088cfabe1576df1105aecafe132 (diff)
downloadPython-Textbook-Companions-28bb57cacd0c8bd76a5c86d7e99e3583f02f0b6c.tar.gz
Python-Textbook-Companions-28bb57cacd0c8bd76a5c86d7e99e3583f02f0b6c.tar.bz2
Python-Textbook-Companions-28bb57cacd0c8bd76a5c86d7e99e3583f02f0b6c.zip
Added(A)/Deleted(D) following books
A Fundamentals_Of_Electronic_Devices_by_J._B._Gupta/Ch1.ipynb A Fundamentals_Of_Electronic_Devices_by_J._B._Gupta/Ch2.ipynb A Fundamentals_Of_Electronic_Devices_by_J._B._Gupta/Ch3.ipynb A Fundamentals_Of_Electronic_Devices_by_J._B._Gupta/Ch4.ipynb A Fundamentals_Of_Electronic_Devices_by_J._B._Gupta/Ch5.ipynb A Fundamentals_Of_Electronic_Devices_by_J._B._Gupta/Ch6.ipynb A Fundamentals_Of_Electronic_Devices_by_J._B._Gupta/Ch7.ipynb A Fundamentals_Of_Electronic_Devices_by_J._B._Gupta/Ch8.ipynb A Fundamentals_Of_Electronic_Devices_by_J._B._Gupta/README.txt A Fundamentals_Of_Electronic_Devices_by_J._B._Gupta/screenshots/6.1.png A Fundamentals_Of_Electronic_Devices_by_J._B._Gupta/screenshots/6.png A Fundamentals_Of_Electronic_Devices_by_J._B._Gupta/screenshots/7.png A OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter1.ipynb A OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter2.ipynb A OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter3.ipynb A OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter4.ipynb A OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter5.ipynb A OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter6.ipynb A OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter7.ipynb A OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter8.ipynb A OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter9.ipynb A OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/README.txt A OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/screenshots/1.png A OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/screenshots/2.png A OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/screenshots/8.png A Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter10_6.ipynb A Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter11_6.ipynb A Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter12_6.ipynb A Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter13_6.ipynb A Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter14_6.ipynb A Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter15_6.ipynb A Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter16_6.ipynb A Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter17_6.ipynb A Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter18_6.ipynb A Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter19_6.ipynb A Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter1_6.ipynb A Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter20_6.ipynb A Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter21_6.ipynb A Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter22_6.ipynb A Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter23_6.ipynb A Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter24_6.ipynb A Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter25_6.ipynb A Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter26_6.ipynb A Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter2_6.ipynb A Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter6_6.ipynb A Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter7_6.ipynb A Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter8_6.ipynb A Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter9_6.ipynb A Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/screenshots/chapter10_ac_load_line_5.png A Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/screenshots/chapter18_clipping_ckt_output_6.png A Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/screenshots/chapter8_dc_load_line_6.png
Diffstat (limited to 'OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad')
-rw-r--r--OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter1.ipynb220
-rw-r--r--OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter2.ipynb196
-rw-r--r--OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter3.ipynb415
-rw-r--r--OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter4.ipynb1036
-rw-r--r--OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter5.ipynb267
-rw-r--r--OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter6.ipynb876
-rw-r--r--OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter7.ipynb1543
-rw-r--r--OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter8.ipynb399
-rw-r--r--OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter9.ipynb813
-rw-r--r--OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/README.txt10
-rw-r--r--OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/screenshots/1.pngbin0 -> 14872 bytes
-rw-r--r--OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/screenshots/2.pngbin0 -> 21712 bytes
-rw-r--r--OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/screenshots/8.pngbin0 -> 21144 bytes
13 files changed, 5775 insertions, 0 deletions
diff --git a/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter1.ipynb b/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter1.ipynb
new file mode 100644
index 00000000..e4a0b038
--- /dev/null
+++ b/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter1.ipynb
@@ -0,0 +1,220 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "# Chapter 1: Introduction to Operational Amplifiers"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 1.1_a"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Collector current Ic1 is 0.39 mA\n",
+ "Voltage Vc1 is 3.38 V\n",
+ "Voltage Ve4 is 2.68 V\n",
+ "Current Ie4 is 0.297 mA\n",
+ "Current Ic5 is 0.297 mA\n",
+ "Voltage Vc5 is 4.87 V\n",
+ "Voltage Ve6 is 4.17 V\n",
+ "Current Ie6 is 0.678 mA\n",
+ "Voltage Ve7 is 4.87 V\n",
+ "Current I1 is 2.82 mA\n",
+ "Current Ie8 is 2.82 mA\n",
+ "Voltage Ve8 at the output terminal is -0.35 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "\n",
+ "#Example 1.1_a\n",
+ "#The equivalent circuit of the Motorola op-amp MC 1435 is shown in Figure.No-1.2\n",
+ "#Determine the collector current in each transistor and the dc voltage at the\n",
+ "#output terminal\n",
+ "\n",
+ "#Variable declaration\n",
+ "Vcc=6 #Voltage in volts\n",
+ "Vbe5=0.7 #Voltage in volts\n",
+ "Vee=6 #Voltage in volts\n",
+ "Vbe3=6.7 #Voltage in volts\n",
+ "Vbe6=0.7 #Voltage in volts\n",
+ "Vbe7=0.7 #Voltage in volts\n",
+ "Rc1=6.7*10**3 #Resistance in ohms\n",
+ "Ic1=0 #initialization\n",
+ "\n",
+ "#Calculation\n",
+ "Vc1=Vcc-Rc1*Ic1\n",
+ "Ve4=Vc1-Vbe5\n",
+ "I4=(Ve4+Vee)/(9.1*10**3+5.5*10**3)\n",
+ "Vb3=5.5*10**3*I4-Vee\n",
+ "Ve3=Vb3-Vbe3\n",
+ "Ie3=(Ve3+Vbe3)/3.3*10**3\n",
+ "Ic1=1.08*10**-3/2.765 #Since Ie3=2*Ic1\n",
+ "Vc1=Vcc-Rc1*Ic1\n",
+ "Ve4=Vc1-Vbe5\n",
+ "Ie4=(Ve4+Vee)/(29.2*10**3)\n",
+ "Ic5=Ie4\n",
+ "Vc5=Vcc-3.8*10**3*Ic5\n",
+ "Ve6=Vc5-Vbe6\n",
+ "Ie6=(Ve6+Vee)/(15*10**3)\n",
+ "Ve7=Ve6+Vbe7\n",
+ "I1=(Vcc-Ve7)/400\n",
+ "Ie8=I1\n",
+ "Ve8=-Vee+2*10**3*Ie8\n",
+ "\n",
+ "#Result\n",
+ "print \"Collector current Ic1 is\",round(Ic1*10**3,2),\"mA\"\n",
+ "print \"Voltage Vc1 is\",round(Vc1,2),\"V\" \n",
+ "print \"Voltage Ve4 is\",round(Ve4,2),\"V\"\n",
+ "print \"Current Ie4 is\",round(Ie4*10**3,3),\"mA\"\n",
+ "print \"Current Ic5 is\",round(Ic5*10**3,3),\"mA\"\n",
+ "print \"Voltage Vc5 is\",round(Vc5,2),\"V\"\n",
+ "print \"Voltage Ve6 is\",round(Ve6,2),\"V\"\n",
+ "print \"Current Ie6 is\",round(Ie6*10**3,3),\"mA\"\n",
+ "print \"Voltage Ve7 is\",round(Ve7,2),\"V\"\n",
+ "print \"Current I1 is\",round(I1*10**3,2),\"mA\"\n",
+ "print \"Current Ie8 is\",round(Ie8*10**3,2),\"mA\"\n",
+ "print \"Voltage Ve8 at the output terminal is\",round(Ve8,2),\"V\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 1.1_b"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Voltage gain of the dual-input,balanced output-differential amplifier is 82.55\n",
+ "Voltage gain of the dual-input,unbalanced output-differential amplifier is 22.6\n",
+ "Overall gain of the op-amp is 1866.34\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "\n",
+ "#Example 1.1_b, Figure.No-1.2\n",
+ "#Calculate the Voltage gain of the opamp\n",
+ "\n",
+ "#Variable decclaration\n",
+ "Ie1=0.39*10**-3 #Current in amps\n",
+ "Ie4=0.298*10**-3 #Current in amps\n",
+ "Ie6=0.678*10**-3 #Current in amps\n",
+ "Rc1=6.7*10**3 #Resistance in ohms\n",
+ "Rc5=3.8*10**3 #Resistance in ohms\n",
+ "beta_ac=150\n",
+ "\n",
+ "#Calculation\n",
+ "re1=(25*10**-3)/Ie1\n",
+ "re2=re1\n",
+ "re4=(25*10**-3)/Ie4\n",
+ "re5=re4\n",
+ "re6=(25*10**-3)/Ie6\n",
+ "k=(Rc1*2*beta_ac*re4)/(Rc1+2*beta_ac*re4)\n",
+ "Ad1=k/re1\n",
+ "k1=(Rc5*beta_ac*(re6+15*10**3))/(Rc5+beta_ac*(re6+15*10**3))\n",
+ "Ad2=k1/(2*re5)\n",
+ "Ad=Ad1*Ad2\n",
+ "\n",
+ "#Result\n",
+ "print \"Voltage gain of the dual-input,balanced output-differential amplifier is\",round(Ad1,2)\n",
+ "print \"Voltage gain of the dual-input,unbalanced output-differential amplifier is\",round(Ad2,1)\n",
+ "print \"Overall gain of the op-amp is\",round(Ad,2)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 1.1_c"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Input resistance Ri is 19.23 kilo ohms\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 1.1_c, Figure.No-1.2\n",
+ "#Determine the Input resistance of the opamp\n",
+ "\n",
+ "#Variable declaration\n",
+ "beta_ac=150\n",
+ "re1=64.1 #Resistance in ohms\n",
+ "\n",
+ "#calculation\n",
+ "Ri=2*beta_ac*re1\n",
+ "\n",
+ "#result\n",
+ "print \"Input resistance Ri is\",round(Ri/10**3,2),\"kilo ohms\"\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.6"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter2.ipynb b/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter2.ipynb
new file mode 100644
index 00000000..129cd7d8
--- /dev/null
+++ b/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter2.ipynb
@@ -0,0 +1,196 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "# Chapter 2: Interpretation of Data Sheets and Characteristics of an Op-Amp"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 2.1_a"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Output voltage is vo 2.4 Volts\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "\n",
+ "#Example 2.1_a\n",
+ "#Determine the Output voltage for open-loop differential amplifier for figure 2_9\n",
+ "\n",
+ "#Variable declaration\n",
+ "vin1=5*10**-6 #input voltage in volts\n",
+ "vin2=-7*10**-6 #input voltage in volts\n",
+ "A=200000 #Voltage gain\n",
+ "\n",
+ "#Calculation\n",
+ "vo=A*(vin1-vin2) #Output voltage in volts\n",
+ "\n",
+ "#Result\n",
+ "print \"Output voltage is vo\",vo,\"Volts\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 2.1_b"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Output voltage is vo -2000.0 Volts\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "\n",
+ "#Example 2.1_b\n",
+ "#Determine the Output voltage for open-loop differential amplifier for figure 2_9\n",
+ "\n",
+ "#Variable declaration\n",
+ "vin1=10*10**-3 #input voltage in volts\n",
+ "vin2=20*10**-3 #input voltage in volts\n",
+ "A=200000 #Voltage gain\n",
+ "\n",
+ "#Calculation\n",
+ "vo=A*(vin1-vin2) #Output voltage in volts\n",
+ "\n",
+ "#Result\n",
+ "print \"Output voltage is vo\",vo,\"Volts\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.2_a"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Output voltage is vo -4000.0 Volts\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 2.2_a\n",
+ "#Determine the Output voltage for an inverting amplifier for figure 2_10\n",
+ "\n",
+ "#Variable declaration\n",
+ "vin1=20*10**-3 #input voltage in volts\n",
+ "A=200000 #Voltage gain\n",
+ "\n",
+ "#Calculation\n",
+ "vo=-A*(vin1) #Output voltage in volts\n",
+ "\n",
+ "#Result\n",
+ "print \"Output voltage is vo\",vo,\"Volts\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 2.2_b"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Output voltage is vo 10.0 Volts\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 2.2_b\n",
+ "#Determine the Output voltage for an inverting amplifier for figure 2_10\n",
+ "\n",
+ "#Variable declaration\n",
+ "vin1=-50*10**-6 #input voltage in volts\n",
+ "A=200000 #Voltage gain\n",
+ "\n",
+ "#Calculation\n",
+ "vo=-A*(vin1) #Output voltage in volts\n",
+ "\n",
+ "#Result\n",
+ "print \"Output voltage is vo\",vo,\"Volts\"\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.6"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter3.ipynb b/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter3.ipynb
new file mode 100644
index 00000000..1d73a725
--- /dev/null
+++ b/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter3.ipynb
@@ -0,0 +1,415 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "# Chapter 3: An Op-Amp with Negative Feedback"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 3.1"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Closed-loop voltage gain is 11.0\n",
+ "Input resistance with feedback is 36.37 Giga Ohm\n",
+ "Output resistance with feedback is 4.12 mOhm\n",
+ "Bandwidth with feedback is 90.91 KHz\n",
+ "Total output offset voltage with feedback is 0.715 mV\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Example 3.1\n",
+ "#Compute the following parameters of voltage-series feedback amplifier\n",
+ "#Af,Ri,Ro,fF,VooT\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "\n",
+ "#Variable declaration\n",
+ "R1=1000 #Resistance in ohms\n",
+ "Rf=10000 #Feedback Resistance in Ohms \n",
+ "A=200000 #Open-loop voltage gain\n",
+ "Ri=2*10**6 #Input resistance without feedback\n",
+ "Ro=75 #Output resistance without feedback\n",
+ "fo=5 #Break frequency of an Op-amp\n",
+ "Vsat=13 #Saturation voltage\n",
+ "\n",
+ "#calculation\n",
+ "B=R1/(R1+Rf) #Gain of the feedback circuit\n",
+ "Af=A/(1+A*B) #Closed-loop voltage gain\n",
+ "RiF=Ri*(1+A*B) #Input resistance with feedback\n",
+ "RoF=Ro/(1+A*B) #Output resistance with feedback\n",
+ "fF=fo*(1+A*B) #Bandwidth with feedback\n",
+ "VooT=Vsat/(1+A*B) #Total output offset voltage with feedback\n",
+ "\n",
+ "#Result\n",
+ "print \"Closed-loop voltage gain is\",round(Af,2)\n",
+ "print \"Input resistance with feedback is\",round(RiF/10**9,2),\"Giga Ohm\"\n",
+ "print \"Output resistance with feedback is\",round(RoF*10**3,2),\"mOhm\"\n",
+ "print \"Bandwidth with feedback is\",round(fF/10**3,2),\"KHz\"\n",
+ "print \"Total output offset voltage with feedback is \",round(VooT*10**3,3),\"mV\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 3.2"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Closed-loop voltage gain is 1.0\n",
+ "Input resistance with feedback is 400.0 Giga Ohm\n",
+ "Output resistance with feedback is 0.375 mOhm\n",
+ "Bandwidth with feedback is 1.0 MHz\n",
+ "Total output offset voltage with feedback is 65.0 uV\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Example 3.2\n",
+ "#Compute the following parameters of voltage follower circuit of figure 3-7\n",
+ "#Af,Ri,Ro,fF,VooT\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "\n",
+ "#Variable declaration\n",
+ "R1=1000 #Resistance in ohms\n",
+ "Rf=10000 #Feedback Resistance in Ohms \n",
+ "A=200000 #Open-loop voltage gain\n",
+ "Ri=2*10**6 #Input resistance without feedback\n",
+ "Ro=75 #Output resistance without feedback\n",
+ "fo=5 #Break frequency of an Op-amp\n",
+ "Vsat=13 #Saturation voltage\n",
+ "B=1 #Gain of the feedback circuit of voltage follower\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "Af=A/(1+A*B) #Closed-loop voltage gain\n",
+ "RiF=Ri*(1+A*B) #Input resistance with feedback\n",
+ "RoF=Ro/(1+A*B) #Output resistance with feedback\n",
+ "fF=fo*(1+A*B) #Bandwidth with feedback\n",
+ "VooT=Vsat/(1+A*B) #Total output offset voltage with feedback\n",
+ "\n",
+ "#Result\n",
+ "print \"Closed-loop voltage gain is\",round(Af)\n",
+ "print \"Input resistance with feedback is\",round(RiF/10**9),\"Giga Ohm\"\n",
+ "print \"Output resistance with feedback is\",round(RoF*10**3,3),\"mOhm\"\n",
+ "print \"Bandwidth with feedback is\",round(fF/10**6,2),\"MHz\"\n",
+ "print \"Total output offset voltage with feedback is \",round(VooT*10**6,3),\"uV\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 3.3"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Closed-loop voltage gain is -10.0\n",
+ "Input resistance with feedback is 470.0 Ohm\n",
+ "Output resistance with feedback is 4.12 mOhm\n",
+ "Bandwidth with feedback is 100.0 kHz\n",
+ "Total output offset voltage with feedback is 0.715 mV\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Example 3.3\n",
+ "#Compute the following parameters of inverting amplifierof figure 3-8\n",
+ "#Af,Ri,Ro,fF,VooT\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "\n",
+ "#Variable declaration\n",
+ "R1=470 #Resistance in ohms\n",
+ "Rf=4.7*10**3 #Feedback Resistance in Ohms \n",
+ "A=200000 #Open-loop voltage gain\n",
+ "Ri=2*10**6 #Input resistance without feedback\n",
+ "Ro=75 #Output resistance without feedback\n",
+ "fo=5 #Break frequency of an Op-amp\n",
+ "Vsat=13 #Saturation voltage\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "K=Rf/(R1+Rf) #Voltage attenuation factor\n",
+ "B=R1/(R1+Rf) #Gain of the feedback circuit\n",
+ "Af=-A*K/(1+A*B) #Closed-loop voltage gain\n",
+ "X=Rf/(1+A)\n",
+ "RiF=R1+(X*Ri)/(X+Ri) #Input resistance with feedback\n",
+ "RoF=Ro/(1+A*B) #Output resistance with feedback\n",
+ "fF=fo*(1+A*B)/K #Bandwidth with feedback\n",
+ "VooT=Vsat/(1+A*B) #Total output offset voltage with feedback\n",
+ "\n",
+ "#Result\n",
+ "print \"Closed-loop voltage gain is\",round(Af)\n",
+ "print \"Input resistance with feedback is\",round(RiF),\"Ohm\"\n",
+ "print \"Output resistance with feedback is\",round(RoF*10**3,2),\"mOhm\"\n",
+ "print \"Bandwidth with feedback is\",round(fF/10**3),\"kHz\"\n",
+ "print \"Total output offset voltage with feedback is \",round(VooT*10**3,3),\"mV\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 3.4"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nRK5CYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f41141b6f90>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Output voltage is -10.0 V peak to peak\n"
+ ]
+ }
+ ],
+ "source": [
+ "%matplotlib inline\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "from matplotlib.pyplot import ylabel, xlabel, title, plot, show\n",
+ "import matplotlib.pyplot as plt\n",
+ "import math\n",
+ "import numpy as np\n",
+ "#Variable declaration\n",
+ "R1=470 #Resistance in ohms\n",
+ "Rf=4.7*10**3 #Feedback Resistance in Ohms \n",
+ "A=200000 #Open-loop voltage gain\n",
+ "vin=1 #input voltage in Volts\n",
+ "\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "K=Rf/(R1+Rf) #Voltage attenuation factor\n",
+ "B=R1/(R1+Rf) #Gain of the feedback circuit\n",
+ "Af=-A*K/(1+A*B) #Closed-loop voltage gain\n",
+ "vo=Af*vin #output voltage\n",
+ "\n",
+ "x=np.arange(0,4*math.pi,0.1)\n",
+ "y=-5*np.sin(x)\n",
+ "plt.plot(x,y)\n",
+ "plt.ylabel('vo')\n",
+ "plt.xlabel('t')\n",
+ "plt.title(r'$output voltage$')\n",
+ "plt.show()\n",
+ "#Result\n",
+ "print \"Output voltage is\",round(vo),\"V peak to peak\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 3.5_a & 3.5_b"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Voltage gain is -10.0\n",
+ "Input resistance of inverting amplifier is 1.0 kilo ohms\n",
+ "Input resistance of noninverting amplifier is 11.0 kilo ohms\n",
+ "Output voktage is 3.0 V peak to peak at 100 Hz\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Example 3.5_a & 3.5_b\n",
+ "#For the circuit of figure 3_14,R1=R2=1 kilo ohm and the opamp is 741 IC.\n",
+ "#a) What are the gain and input resistance of the amplifier?\n",
+ "#b) Calculate output voltage vo if vx=2.7 V pp and vy=3 V pp sine waves at 100 Hz\n",
+ "\n",
+ "\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "\n",
+ "#Variable declaration\n",
+ "R1=1000 #Resistance in ohms\n",
+ "R2=1000 #Resistance in ohms\n",
+ "Rf=10*10**3 #Feedback Resistance in Ohms\n",
+ "R3=10*10**3\n",
+ "vx=2.7 #input voltage in Volts\n",
+ "vy=3 #input voltage in Volts\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "#part a\n",
+ "AD=-Rf/R1 #voltage gain\n",
+ "RiFx=R1 #Input resistance of inverting amplifier\n",
+ "RiFy=R2+R3 #Input resistance of noninverting amplifier\n",
+ "#part b\n",
+ "vxy=vx-vy\n",
+ "vo=AD*vxy #output volatage\n",
+ "\n",
+ "#Result\n",
+ "print \"Voltage gain is\",AD\n",
+ "print \"Input resistance of inverting amplifier is\",RiFx/10**3,\"kilo ohms\"\n",
+ "print \"Input resistance of noninverting amplifier is\",round(RiFy/10**3),\"kilo ohms\"\n",
+ "print \"Output voktage is\",vo,\"V peak to peak at 100 Hz\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 3.6_a & 3.6_b"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Voltage gain is 11.0\n",
+ "Input resistance of first stage amplifier is 364.0 Giga ohms\n",
+ "Input resistance of second stage amplifier is 36.4 Giga ohms\n",
+ "Output voLtage is 5.5 V peak to peak at 1 KHz\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Example 3.6_a & 3.6_b\n",
+ "#For the differential amplifier of figure 3_16, R1=R3=680 ohm, Rf=R2=6.8 Kilo ohm\n",
+ "#vx=-1.5 V pp, vy=-2 V pp sine waves at 1 KHz and the opamp is 741 IC.\n",
+ "#a) What are the gain and input resistance of the amplifier?\n",
+ "#b) Calculate output voltage of the amplifier.(Assume vooT=0V)\n",
+ "\n",
+ "\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "\n",
+ "#Variable declaration\n",
+ "R1=680 #Resistance in ohms\n",
+ "R2=6800 #Resistance in ohms\n",
+ "Rf=6800 #Feedback Resistance in Ohms\n",
+ "R3=680\n",
+ "Ri=2*10**6 #Open loop input resistance of the opamp\n",
+ "vx=-1.5 #input voltage in Volts\n",
+ "vy=-2 #input voltage in Volts\n",
+ "A=200000 #openloop gain\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "#part a\n",
+ "AD=1+Rf/R1 #voltage gain\n",
+ "B=R2/(R2+R3)\n",
+ "RiFy=Ri*(1+A*B) #Input resistance of first stage amplifier\n",
+ "B=R1/(R1+Rf)\n",
+ "RiFx=Ri*(1+A*B) #Input resistance of second stage amplifier\n",
+ "#part b\n",
+ "vxy=vx-vy\n",
+ "vo=AD*vxy #output volatage\n",
+ "\n",
+ "#Result\n",
+ "print \"Voltage gain is\",AD\n",
+ "print \"Input resistance of first stage amplifier is\",round(RiFy/10**9),\"Giga ohms\"\n",
+ "print \"Input resistance of second stage amplifier is\",round(RiFx/10**9,1),\"Giga ohms\"\n",
+ "print \"Output voLtage is\",vo,\"V peak to peak at 1 KHz\"\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.6"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter4.ipynb b/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter4.ipynb
new file mode 100644
index 00000000..d79d5385
--- /dev/null
+++ b/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter4.ipynb
@@ -0,0 +1,1036 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "# Chapter 4: The Practical Op-Amp"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 4.1"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resistance Rb is 10.0 kilo ohms\n",
+ "Resistance Ra is 4.0 kilo ohms\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 4.1\n",
+ "#Design a Compensating Network for the opamp LM307.\n",
+ "#The opamp uses +10 V and -10 V supply voltages.\n",
+ "\n",
+ "#Variable declaration\n",
+ "V=10 #Supply voltage\n",
+ "Vio=10*10**-3 #Input offset voltage\n",
+ "Rc=10 #Assumption\n",
+ "\n",
+ "#calculation\n",
+ "Rb=(V/Vio)*Rc\n",
+ "Ra=Rb/2.5 #Since Rb>Rmax,let us choose Rb=10*Rmax where Rmax=Ra/4\n",
+ "\n",
+ "#Result\n",
+ "print \"Resistance Rb is\",Rb/10**3,\"kilo ohms\"\n",
+ "print \"Resistance Ra is \",Ra/10**3,\"kilo ohms\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 4.2"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Max output offset voltage is 110.0 milli Volts\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 4.2\n",
+ "#The opamp in the circuit of figure 4-13 is the LM307 with Vio=10 mV dc maximum.\n",
+ "#What is the maximum possible output offset voltage, Voo, caused by\n",
+ "#the input offset voltage Vio?\n",
+ "\n",
+ "#Variable declaration\n",
+ "R1=1*10**3\n",
+ "Rf=10*10**3\n",
+ "Vio=10*10**-3 #Input offset voltage\n",
+ "\n",
+ "#calculation\n",
+ "Aoo=1+Rf/R1 #To find max value of Voo,we reduce input voltage vin to zero.\n",
+ "Voo=Aoo*Vio #Max output offset voltage\n",
+ "\n",
+ "#Result\n",
+ "print \"Max output offset voltage is\",Voo*10**3,\"milli Volts\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 4.3"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Closed loop gain of non-inverting amplifier is 11.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Example 4.3\n",
+ "#Design an input offset voltage-compensating network for the circuit in\n",
+ "#figure 4-13\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "\n",
+ "#Variable declaration\n",
+ "R1=1*10**3\n",
+ "Rf=10*10**3\n",
+ "Rc=10\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "Af=1+Rf/(R1+Rc) #Closed loop gain of non-inverting amplifier\n",
+ "\n",
+ "#Result\n",
+ "print \"Closed loop gain of non-inverting amplifier is\",round(Af)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 4.4"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Max output offset voltage due to Vio is 606.0 milli Volts\n",
+ "Max output offset voltage due to Ib is 23.5 milli Volts\n",
+ "Parallel combination of R1 and Rf,i.e ROM is 465.35 Ohms\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Example 4.4\n",
+ "#a) For the inverting amplifier of Figure 4-19, determine the maximum possible\n",
+ "#output offset voltage due to input offset voltage Vio and input bias current Ib\n",
+ "#The opamp is a type 741.\n",
+ "#b) What value of ROM is needed to reduce the effect of input bias current Ib.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "\n",
+ "#Variable declaration\n",
+ "R1=470\n",
+ "Rf=47*10**3\n",
+ "Vio=6*10**-3 #Input offset voltage\n",
+ "Ib=500*10**-9 #Input bias current\n",
+ "Vs=15 #Supply voltage\n",
+ "\n",
+ "#calculation\n",
+ "Voo=(1+Rf/R1)*Vio #Max output offset voltage due to input offset voltage Vio\n",
+ "VoIb=Rf*Ib #Max output offset voltage due to input offset voltage Ib\n",
+ "ROM=R1*Rf/(R1+Rf) #Parallel combination of R1 and Rf\n",
+ "\n",
+ "#Result\n",
+ "print \"Max output offset voltage due to Vio is\",round(Voo*10**3),\"milli Volts\"\n",
+ "print \"Max output offset voltage due to Ib is \",round(VoIb*10**3,1),\"milli Volts\"\n",
+ "print \"Parallel combination of R1 and Rf,i.e ROM is \",round(ROM,2),\"Ohms\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 4.5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Max output offset voltage due to Vio is 606.0 milli Volts\n",
+ "Max output offset voltage due to Ib is 50.0 milli Volts\n",
+ "Parallel combination of R1 and Rf,i.e ROM is 990.1 Ohms\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Example 4.5\n",
+ "#Repeat example 4.4 if R1 replaced by 1 kilo Ohm and Rf replaced by 100 kilo Ohm\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "\n",
+ "#Variable declaration\n",
+ "R1=1*10**3\n",
+ "Rf=100*10**3\n",
+ "Vio=6*10**-3 #Input offset voltage\n",
+ "Ib=500*10**-9 #Input bias current\n",
+ "Vs=15 #Supply voltage\n",
+ "\n",
+ "#calculation\n",
+ "Voo=(1+Rf/R1)*Vio #Max output offset voltage due to input offset voltage Vio\n",
+ "VoIb=Rf*Ib #Max output offset voltage due to input offset voltage Ib\n",
+ "ROM=R1*Rf/(R1+Rf) #Parallel combination of R1 and Rf\n",
+ "\n",
+ "#Result\n",
+ "print \"Max output offset voltage due to Vio is\",round(Voo*10**3),\"milli Volts\"\n",
+ "print \"Max output offset voltage due to Ib is \",round(VoIb*10**3,1),\"milli Volts\"\n",
+ "print \"Parallel combination of R1 and Rf,i.e ROM is \",round(ROM,2),\"Ohms\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 4.6"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Max output offset voltage due to Ib is 20.0 milli Volts\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 4.6\n",
+ "#For the inverting amplifier in figure 4-21, determine the maximum output offset\n",
+ "#voltage VoIio caused by the input offset current Iio.\n",
+ "#The opamp is a type 741\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Iio=200*10**-9 #Input offset current\n",
+ "Rf=100*10**3\n",
+ "\n",
+ "#calculation\n",
+ "VoIio=Rf*Iio #Max output offset voltage due to input offset voltage Ib\n",
+ "\n",
+ "#Result\n",
+ "print \"Max output offset voltage due to Ib is \",round(VoIio*10**3),\"milli Volts\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 4.7"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Max output offset voltage due to Ib is 85.0 milli Volts\n",
+ "Max output offset voltage due to Iio is 83.0 milli Volts\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Example 4.7\n",
+ "#Compute the maximum possible output offset voltages in the amplifier circuits\n",
+ "#shown in the figure 4-22. The opamp is MC1536 with the following specifications.\n",
+ "#Vio=7.5 mV maximum, Iio=50 nA maximum,Ib=250 nA maximum at TA=25 degree celcius\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "\n",
+ "#Variable declaration\n",
+ "R1=1*10**3\n",
+ "Rf=10*10**3\n",
+ "Vio=7.5*10**-3 #Max input offset voltage\n",
+ "Iio=50*10**-9 #Max input offset current\n",
+ "Ib=250*10**-9 #Max input bias current\n",
+ "\n",
+ "#calculation\n",
+ "# For figure 4.22(a)\n",
+ "VooT1=(1+Rf/R1)*Vio+(Rf*Ib) #Since the current generated output offset voltage is due to input bias current Ib\n",
+ "# For figure 4.22(b)\n",
+ "VooT2=(1+Rf/R1)*Vio+(Rf*Iio) #Since the current generated output offset voltage is due to input offset current Ib\n",
+ "\n",
+ "#Result\n",
+ "print \"Max output offset voltage due to Ib is \",VooT1*10**3,\"milli Volts\"\n",
+ "print \"Max output offset voltage due to Iio is \",VooT2*10**3,\"milli Volts\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 4.8_a"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Error voltage is 30.6 mV\n",
+ "Output voltage 1 is -69.4 mV\n",
+ "Output voltage 2 is -130.6 mV\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 4.8_a\n",
+ "#Refer to the inverting amplifier in figure 4-24. The opamp is the LM307 with\n",
+ "#the following specifications.\n",
+ "#delta_Vio/delta_T =30 microVolt/degree celcius maximum\n",
+ "#delta_Iio/delta_T= 300 pA/degree celcius\n",
+ "#Vs=15 V, R1=1 Kilo Ohm, Rf=100 Kilo Ohm,Rl=10 Kilo Ohm\n",
+ "#Assume that the amplifier is nulled at 25 degree celcius. Calculate the value\n",
+ "#of the error voltage Ev and output voltage at 35 degree celcius if\n",
+ "#a) Vin= 1 mV dc\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "\n",
+ "#Variable declaration\n",
+ "delta_Vio=30*10**-6 #Change in input offset voltage\n",
+ "delta_T=1 #Unit change in temperature\n",
+ "delta_Iio=(300*10**-12) #Change in input offset current\n",
+ "Vs=15\n",
+ "R1=1*10**3\n",
+ "Rf=100*10**3\n",
+ "Rl=10*10**3\n",
+ "Vin=1*10**-3 #Input voltage\n",
+ "k=25 #Amplifier is nulled at 25 deg\n",
+ "T=35-k #Change in temperature\n",
+ "\n",
+ "#calculation\n",
+ "Ev=(1+Rf/R1)*(delta_Vio/delta_T)*T + Rf*(delta_Iio/delta_T)*T #Error voltage\n",
+ "Vo1=-(Rf/R1)*Vin+Ev #Output voltage\n",
+ "Vo2=-(Rf/R1)*Vin-Ev #Output voltage\n",
+ "\n",
+ "#Result\n",
+ "print \"Error voltage is \",round(Ev*10**3,1),\"mV\"\n",
+ "print \"Output voltage 1 is \",round(Vo1*10**3,1),\"mV\"\n",
+ "print \"Output voltage 2 is \",round(Vo2*10**3,1),\"mV\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 4.8_b"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Error voltage is 30.6 mV\n",
+ "Output voltage 1 is -969.4 mV\n",
+ "Output voltage 2 is -1030.6 mV\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 4.8_b\n",
+ "#Refer to the inverting amplifier in figure 4-24. The opamp is the LM307 with\n",
+ "#the following specifications.\n",
+ "#delta_Vio/delta_T =30 microVolt/degree celcius maximum\n",
+ "#delta_Iio/delta_T= 300 pA/degree celcius\n",
+ "#Vs=15 V, R1=1 Kilo Ohm, Rf=100 Kilo Ohm,Rl=10 Kilo Ohm\n",
+ "#Assume that the amplifier is nulled at 25 degree celcius. Calculate the value\n",
+ "#of the error voltage Ev and output voltage at 35 degree celcius if\n",
+ "#a) Vin= 10 mV dc\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "\n",
+ "#Variable declaration\n",
+ "delta_Vio=30*10**-6 #Change in input offset voltage\n",
+ "delta_T=1 #Unit change in temperature\n",
+ "delta_Iio=(300*10**-12) #Change in input offset current\n",
+ "Vs=15\n",
+ "R1=1*10**3\n",
+ "Rf=100*10**3\n",
+ "Rl=10*10**3\n",
+ "Vin=10*10**-3 #Input voltage\n",
+ "k=25 #Amplifier is nulled at 25 deg\n",
+ "T=35-k #Change in temperature\n",
+ "\n",
+ "#calculation\n",
+ "Ev=(1+Rf/R1)*(delta_Vio/delta_T)*T + Rf*(delta_Iio/delta_T)*T #Error voltage\n",
+ "Vo1=-(Rf/R1)*Vin+Ev #Output voltage\n",
+ "Vo2=-(Rf/R1)*Vin-Ev #Output voltage\n",
+ "\n",
+ "#Result\n",
+ "print \"Error voltage is \",round(Ev*10**3,1),\"mV\"\n",
+ "print \"Output voltage 1 is \",round(Vo1*10**3,1),\"mV\"\n",
+ "print \"Output voltage 2 is \",round(Vo2*10**3,1),\"mV\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 4.8_a"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Error voltage is 0.0306 Volts\n",
+ "Output voltage 1 is -0.0694 Volts\n",
+ "Output voltage 2 is -0.1306 Volts\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 4.8_a\n",
+ "#Design of Compensating Network\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "\n",
+ "#Variable declaration\n",
+ "delta_Vio=30*10**-6 #Change in input offset voltage\n",
+ "delta_T=1 #Unit change in temperature\n",
+ "delta_Iio=(300*10**-12) #Change in input offset current\n",
+ "Vs=15\n",
+ "R1=1*10**3\n",
+ "Rf=100*10**3\n",
+ "Rl=10*10**3\n",
+ "Vin=1*10**-3 #Input voltage\n",
+ "k=25 #Amplifier is nulled at 25 deg\n",
+ "T=35-k #Change in temperature\n",
+ "\n",
+ "#calculation\n",
+ "Ev=(1+Rf/R1)*(delta_Vio/delta_T)*T + Rf*(delta_Iio/delta_T)*T #Error voltage\n",
+ "Vo1=-(Rf/R1)*Vin+Ev #Output voltage\n",
+ "Vo2=-(Rf/R1)*Vin-Ev #Output voltage\n",
+ "\n",
+ "#Result\n",
+ "print \"Error voltage is \",Ev,\"Volts\"\n",
+ "print \"Output voltage 1 is \",Vo1,\"Volts\"\n",
+ "print \"Output voltage 2 is \",Vo2,\"Volts\"\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 4.9_a"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Error voltage is 91.8 mV\n",
+ "Output voltage 1 is -908.2 mV\n",
+ "Output voltage 2 is -1091.8 mV\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Example 4.9_a\n",
+ "#Refer again to the amplifier circuit in figure 4-24.Use the same circuit\n",
+ "#specifications that are given in example 4-8. Assume that the amplifier is\n",
+ "#nulled at 25 degree celcius. If Vin is a 10 mV peak sine wave at 1 kilo Hz\n",
+ "#Calculate Ev and Vo at 55 degree celcius.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "\n",
+ "#Variable declaration\n",
+ "delta_Vio=30*10**-6 #Change in input offset voltage\n",
+ "delta_T=1 #Unit change in temperature\n",
+ "delta_Iio=(300*10**-12) #Change in input offset current\n",
+ "Vs=15\n",
+ "R1=1*10**3\n",
+ "Rf=100*10**3\n",
+ "Rl=10*10**3\n",
+ "Vin=10*10**-3 #Input voltage\n",
+ "k=25 #Amplifier is nulled at 25 deg\n",
+ "T=55-k #Change in temperature\n",
+ "\n",
+ "#calculation\n",
+ "Ev=(1+Rf/R1)*(delta_Vio/delta_T)*T + Rf*(delta_Iio/delta_T)*T #Error voltage\n",
+ "Vo1=-(Rf/R1)*Vin+Ev #Output voltage\n",
+ "Vo2=-(Rf/R1)*Vin-Ev #Output voltage\n",
+ "\n",
+ "#Result\n",
+ "print \"Error voltage is \",round(Ev*10**3,1),\"mV\"\n",
+ "print \"Output voltage 1 is \",round(Vo1*10**3,1),\"mV\"\n",
+ "print \"Output voltage 2 is \",round(Vo2*10**3,1),\"mV\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 4.9_b"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f6982087550>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 4.9_b\n",
+ "#Refer again to the amplifier circuit in figure 4-24.Use the same circuit\n",
+ "#specifications that are given in example 4-8. Assume that the amplifier is\n",
+ "#nulled at 25 degree celcius. If Vin is a 10 mV peak sine wave at 1 kilo Hz\n",
+ "#Draw the output voltage waveform at 55 degree celcius.\n",
+ "\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "%matplotlib inline\n",
+ "\n",
+ "from matplotlib.pyplot import ylabel, xlabel, title, plot, show\n",
+ "import matplotlib.pyplot as plt\n",
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "x=np.arange(0,2*math.pi,0.1) #x coordinate\n",
+ "y=-1000*np.sin(x)+91.8 #y coordinate\n",
+ "\n",
+ "#result\n",
+ "plt.plot(x,y)\n",
+ "plt.ylabel('voltage')\n",
+ "plt.xlabel('time')\n",
+ "plt.title(r'$output waveform$')\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 4.10_a"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 37,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Error voltage is 30.6 mV\n",
+ "Output voltage 1 is 131.6 mV\n",
+ "Output voltage 2 is 70.4 mV\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Example 4.10_a\n",
+ "#Repeat example 4-8 for the noniverting amplifier shown in figure 4-26.\n",
+ "#Assume that Rc<<R1.\n",
+ "\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "\n",
+ "#Variable declaration\n",
+ "delta_Vio=30*10**-6 #Change in input offset voltage\n",
+ "delta_T=1 #Unit change in temperature\n",
+ "delta_Iio=(300*10**-12) #Change in input offset current\n",
+ "Vs=15\n",
+ "R1=1*10**3\n",
+ "Rf=100*10**3\n",
+ "Rl=10*10**3\n",
+ "Vin=1*10**-3 #Input voltage\n",
+ "k=25 #Amplifier is nulled at 25 deg\n",
+ "T=35-k #Change in temperature\n",
+ "\n",
+ "#calculation\n",
+ "Ev=(1+Rf/R1)*(delta_Vio/delta_T)*T + Rf*(delta_Iio/delta_T)*T #Error voltage\n",
+ "Vo1=(1+Rf/R1)*Vin+Ev #Output voltage\n",
+ "Vo2=(1+Rf/R1)*Vin-Ev #Output voltage\n",
+ "\n",
+ "#Result\n",
+ "print \"Error voltage is \",round(Ev*10**3,1),\"mV\"\n",
+ "print \"Output voltage 1 is \",round(Vo1*10**3,1),\"mV\"\n",
+ "print \"Output voltage 2 is \",round(Vo2*10**3,1),\"mV\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 4.10_b"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 38,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Error voltage is 30.6 mV\n",
+ "Output voltage 1 is 1040.6 mV\n",
+ "Output voltage 2 is 979.4 mV\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 4.10_b\n",
+ "#Repeat example 4-8 for the noniverting amplifier shown in figure 4-26.\n",
+ "#Assume that Rc<<R1.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "\n",
+ "#Variable declaration\n",
+ "delta_Vio=30*10**-6 #Change in input offset voltage\n",
+ "delta_T=1 #Unit change in temperature\n",
+ "delta_Iio=(300*10**-12) #Change in input offset current\n",
+ "Vs=15\n",
+ "R1=1*10**3\n",
+ "Rf=100*10**3\n",
+ "Rl=10*10**3\n",
+ "Vin=10*10**-3 #Input voltage\n",
+ "k=25 #Amplifier is nulled at 25 deg\n",
+ "T=35-k #Change in temperature\n",
+ "\n",
+ "#calculation\n",
+ "Ev=(1+Rf/R1)*(delta_Vio/delta_T)*T + Rf*(delta_Iio/delta_T)*T #Error voltage\n",
+ "Vo1=(1+Rf/R1)*Vin+Ev #Output voltage\n",
+ "Vo2=(1+Rf/R1)*Vin-Ev #Output voltage\n",
+ "\n",
+ "#Result\n",
+ "print \"Error voltage is \",round(Ev*10**3,1),\"mV\"\n",
+ "print \"Output voltage 1 is \",round(Vo1*10**3,1),\"mV\"\n",
+ "print \"Output voltage 2 is \",round(Vo2*10**3,1),\"mV\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 4.11_a"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Change in Output offset voltage is 3.2 mV\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 4.11_a\n",
+ "#The amplifier in figure 4-28(b) is nulled when the low dc supply voltage is\n",
+ "#20 mV.\n",
+ "#Because of poor regulation,low dc voltage varies with time from 18 V to 22 V.\n",
+ "#a) Determine the change in the output offset voltage caused by the change in\n",
+ "#supply voltages\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "\n",
+ "#Variable declaration\n",
+ "delta_Vio=15.85*10**-6 #Change in input offset voltage\n",
+ "delta_V=1 #Unit change in supply voltage\n",
+ "V=2 #Change in supply voltage\n",
+ "R1=1*10**3\n",
+ "Rf=100*10**3\n",
+ "\n",
+ "#calculation\n",
+ "delta_Voo=(1+Rf/R1)*(delta_Vio/delta_V)*V #Change in output offset voltage\n",
+ " \n",
+ "\n",
+ "#Result\n",
+ "print \"Change in Output offset voltage is \",round(delta_Voo*10**3,2),\"mV\"\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 4.11_b"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 41,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Total Output offset voltage 1 is -996.8 mV\n",
+ "Total Output offset voltage 2 is -1003.2 mV\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 4.11_b\n",
+ "#The amplifier in figure 4-28(b) is nulled when the low dc supply voltage is\n",
+ "#20 mV.\n",
+ "#Because of poor regulation,low dc voltage varies with time from 18 V to 22 V.\n",
+ "#b) Determine the output voltage Vo if Vin=10 mV dc. The opamp is the LM307\n",
+ "#with SVRR=96 dB.\n",
+ "\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "\n",
+ "#Variable declaration\n",
+ "delta_Vio=15.85*10**-6 #Change in input offset voltage\n",
+ "delta_V=1 #Unit change in supply voltage\n",
+ "V=2 #Change in supply voltage\n",
+ "R1=1*10**3\n",
+ "Rf=100*10**3\n",
+ "Vin=10*10**-3\n",
+ "\n",
+ "#calculation\n",
+ "delta_Voo=(1+Rf/R1)*(delta_Vio/delta_V)*V #Output offset voltage\n",
+ "Vo1=(-Rf/R1)*Vin+delta_Voo #Total output offset voltage 1\n",
+ "Vo2=(-Rf/R1)*Vin-delta_Voo #Total output offset voltage 2\n",
+ " \n",
+ "\n",
+ "#Result\n",
+ "print \"Total Output offset voltage 1 is \",round(Vo1*10**3,1),\"mV\"\n",
+ "print \"Total Output offset voltage 2 is \",round(Vo2*10**3,1),\"mV\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 4.11_b"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 42,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Total Output offset voltage 1 is -0.9968 Volts\n",
+ "Total Output offset voltage 2 is -1.0032 Volts\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Example 4.11_b\n",
+ "#Design of Compensating Network\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "\n",
+ "#Variable declaration\n",
+ "delta_Vio=15.85*10**-6 #Change in input offset voltage\n",
+ "delta_V=1 #Unit change in supply voltage\n",
+ "V=2 #Change in supply voltage\n",
+ "R1=1*10**3\n",
+ "Rf=100*10**3\n",
+ "Vin=10*10**-3\n",
+ "\n",
+ "#calculation\n",
+ "delta_Voo=(1+Rf/R1)*(delta_Vio/delta_V)*V #Output offset voltage\n",
+ "Vo1=(-Rf/R1)*Vin+delta_Voo #Total output offset voltage 1\n",
+ "Vo2=(-Rf/R1)*Vin-delta_Voo #Total output offset voltage 2\n",
+ " \n",
+ "\n",
+ "#Result\n",
+ "print \"Total Output offset voltage 1 is \",round(Vo1,4),\"Volts\"\n",
+ "print \"Total Output offset voltage 2 is \",round(Vo2,4),\"Volts\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 4.12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 44,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Change in Output offset voltage 1 is 16.0 uV rms\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Example 4.12\n",
+ "#Referring to figure 4-28(b), suppose that the circuit is nulled when the voltage\n",
+ "#across terminals +Vcc and -Vee measures 20 V dc. Also suppose that because of\n",
+ "#poor filtering, 10 mV rms ac ripple is measured across terminals +Vcc and -Vee.\n",
+ "#While the input signal Vin=0V, how much ripple voltage can we expect at the\n",
+ "#output if the opamp is the LM307.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "\n",
+ "#Variable declaration\n",
+ "delta_Vio=15.85*10**-6 #Change in input offset voltage\n",
+ "delta_V=1 #Unit change in supply voltage\n",
+ "V=10*10**-3 #Change in supply voltage\n",
+ "R1=1*10**3\n",
+ "Rf=100*10**3\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "delta_Voo=(1+Rf/R1)*(delta_Vio/delta_V)*V #Output offset voltage\n",
+ "\n",
+ "#Result\n",
+ "print \"Change in Output offset voltage 1 is \",round(delta_Voo*10**6),\"uV rms\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 4.13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Change in Output offset voltage 1 is 2.82 mV\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 4.13\n",
+ "#Suppose that the circuit in figure 4-24 is initially nulled. Assume also that\n",
+ "#room temperature and the voltage terminals +Vcc and -Vee remain constant.\n",
+ "#Determine the maximum possible chnage in output offset voltage after one month\n",
+ "#if the opamp is the LH0041C.\n",
+ "#Assume that R1=1kilo Ohm, Rf=100 kilo Ohm and Rl=10 kilo Ohm.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "\n",
+ "#Variable declaration\n",
+ "delta_Vio=5*10**-6 #Change in input offset voltage\n",
+ "delta_t=1 #Unit change in time\n",
+ "delta_Iio=2*10**-9 #Change in input offset current \n",
+ "t=4 #Time elapsed(weeks)\n",
+ "R1=1*10**3\n",
+ "Rf=100*10**3\n",
+ "Rl=10*10**3\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "delta_Voot=(1+Rf/R1)*(delta_Vio/delta_t)*t+Rf*(delta_Iio/delta_t)*t #Output offset voltage\n",
+ "\n",
+ "#Result\n",
+ "print \"Change in Output offset voltage 1 is \",round(delta_Voot*10**3,2),\"mV\"\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.6"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter5.ipynb b/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter5.ipynb
new file mode 100644
index 00000000..b5b33054
--- /dev/null
+++ b/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter5.ipynb
@@ -0,0 +1,267 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "# Chapter 5: Frequency response of an Op-Amp"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 5.1"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\ntwAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7ff51168c210>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Maximum gain is 40 dB\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7ff4f28db750>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#Example 5.1\n",
+ "#The 741C is connected as a noniverting amplifier.What maximum gain can be used\n",
+ "#that will still keep the amplifier's response flat to 10kHz.\n",
+ "\n",
+ "%matplotlib inline\n",
+ "\n",
+ "from scipy import pi\n",
+ "import numpy as np\n",
+ "from matplotlib.pyplot import ylabel, xlabel, title, plot, show, clf, subplot, semilogx, savefig\n",
+ "import matplotlib.pyplot as plt\n",
+ "#Variable declaration\n",
+ "f=np.arange(0,1000000) #frequency range\n",
+ "s=2.0j*pi*f\n",
+ "A=200000 #Gain of opamp at 0 Hz\n",
+ "f0=5 #first break frequency in Hz\n",
+ "p=2.0*pi*f0\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "tf=A*p/(s+p) #open loop gain\n",
+ "\n",
+ "#Magnitude plot\n",
+ "clf() #clear the figure\n",
+ "subplot(211)\n",
+ "title('tf=p/(s+p)')\n",
+ "semilogx(f,20*log10(abs(tf)))\n",
+ "ylabel('Mag. Ratio (dB)')\n",
+ "\n",
+ "#Phase plot\n",
+ "subplot(212)\n",
+ "semilogx(f,arctan2(imag(tf),real(tf))*180.0/pi)\n",
+ "plt.ylabel('Phase (deg.)')\n",
+ "plt.xlabel('Freq (Hz)')\n",
+ "plt.show()\n",
+ "savefig('fig1.png') #savefig('fig1.eps')\n",
+ "\n",
+ "Amax=40 #from the graph\n",
+ "\n",
+ "#Result\n",
+ "print \"Maximum gain is\",Amax,\"dB\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 5.2"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Gain equation is Aol(f)=A((1+(f/fo1)*j)*(1+(f/fo2)*j)\n",
+ "A,the gain of the opamp at 0 Hz is 140000\n",
+ "First break frequency fo1 is 6 Hz\n",
+ "Second break frequency fo2 is 1.24 MHz\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Example 5.2\n",
+ "#Using the frequency response and phase response curves obtained in figure 5-5\n",
+ "#Obtain the equation for the MC1556 opamp. Also determine the approximate values\n",
+ "#of the break frequencies.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "phase=-157.5 #Phase shift at about 3 MHz\n",
+ "f=3*10**6\n",
+ "fo1=6 #first break frequency,from the graph\n",
+ "A=140000 #Gain of the opamp at 0Hz\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "k=-math.atan(f/fo1)*180/math.pi-phase\n",
+ "fo2=f/math.tan(k*math.pi/180) #second break frequency\n",
+ "\n",
+ "\n",
+ "#result\n",
+ "print \"Gain equation is Aol(f)=A((1+(f/fo1)*j)*(1+(f/fo2)*j)\"\n",
+ "print \"A,the gain of the opamp at 0 Hz is\",A\n",
+ "print \"First break frequency fo1 is\",fo1,\"Hz\" \n",
+ "print \"Second break frequency fo2 is\",round(fo2/10**6,2),\"MHz\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 5.3"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nAElFTkSuQmCC\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7ff51a48b7d0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "From the plot it is seen that phase angle is -90 degree\n",
+ "when the magnitude is o dB.Since the phase angle reaches >-180\n",
+ "when the magnitude is 0dB, voltage follower is stable at 0dB\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7ff4f2c08510>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 5.3\n",
+ "#Determine the stability of the voltage follower shown in figure 3-7.\n",
+ "#Assume that the opamp is a 741 IC\n",
+ "\n",
+ "\n",
+ "%matplotlib inline\n",
+ "\n",
+ "from scipy import pi\n",
+ "import numpy as np\n",
+ "from matplotlib.pyplot import ylabel, xlabel, title, plot, show, clf, subplot, semilogx, savefig\n",
+ "import matplotlib.pyplot as plt\n",
+ "#Variable declaration\n",
+ "f=arange(10,1000000)\n",
+ "s=2.0j*pi*f\n",
+ "A=200000\n",
+ "f0=5\n",
+ "p=2.0*pi*f0\n",
+ "B=1 #For voltage follower B=1\n",
+ "\n",
+ "#Calculation\n",
+ "tf=A*p*B/(s+p) #open loop gain\n",
+ "\n",
+ "#Magnitude plot\n",
+ "clf() #clear the figure\n",
+ "subplot(211)\n",
+ "title('tf=p/(s+p)')\n",
+ "semilogx(f,20*log10(abs(tf)))\n",
+ "ylabel('Mag. Ratio (dB)')\n",
+ "\n",
+ "#Phase plot\n",
+ "subplot(212)\n",
+ "semilogx(f,arctan2(imag(tf),real(tf))*180.0/pi)\n",
+ "ylabel('Phase (deg.)')\n",
+ "xlabel('Freq (Hz)')\n",
+ "\n",
+ "show()\n",
+ "savefig('fig1.png') #savefig('fig1.eps')\n",
+ "\n",
+ "#Result\n",
+ "print \"From the plot it is seen that phase angle is -90 degree\"\n",
+ "print \"when the magnitude is o dB.Since the phase angle reaches >-180\"\n",
+ "print \"when the magnitude is 0dB, voltage follower is stable at 0dB\""
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.6"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter6.ipynb b/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter6.ipynb
new file mode 100644
index 00000000..e940a81c
--- /dev/null
+++ b/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter6.ipynb
@@ -0,0 +1,876 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "# Chapter 6: General Linear Applications"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 6.1"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ " Low-freq cutoff is 10.61 kHz\n",
+ "\n",
+ " High-freq cutoff is 90.91 kHz\n",
+ "\n",
+ " Bandwidth is 80.3 kHz\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Example 6.1\n",
+ "#In the circuit of figure 6-3(a) Rin=50 Ohm,Ci=0.1 uF,R1=100 Ohm, Rf=1 KOhm\n",
+ "#Rl=10 kOhm and supply voltages +15, -15 V.\n",
+ "#Determine the bandwidth of the amplifier.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "R1=100\n",
+ "Rf=1*10**3\n",
+ "Rin=50\n",
+ "Rl=10*10**3\n",
+ "Ci=0.1*10**-6 #Capacitance b/w 2 stages being coupled \n",
+ "RiF=R1 #ac input resistance of the second stage\n",
+ "Ro=Rin #ac output resistance of the 1st stage\n",
+ "UGB=10**6 #Unity gain bandwidth\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "fl=1/(2*math.pi*Ci*(RiF+Ro)) #Low-freq cutoff\n",
+ "K=Rf/(R1+Rf)\n",
+ "Af=-Rf/R1 #closed loop voltage gain\n",
+ "fh=UGB*K/abs(Af) #High-freq cutoff\n",
+ "BW=fh-fl #Bandwidth\n",
+ "\n",
+ "#result\n",
+ "print \"\\n Low-freq cutoff is\",round(fl/10**3,2),\"kHz\"\n",
+ "print \"\\n High-freq cutoff is\",round(fh/10**3,2),\"kHz\"\n",
+ "print\"\\n Bandwidth is\",round(BW/10**3,2),\"kHz\" \n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 6.2"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Low-freq cutoff is 31.8 kHz\n",
+ "High-freq cutoff is 90.91 kHz\n",
+ "Bandwidth is 90.88 kHz\n",
+ "The ideal maximum output voltage swing is 15 Volts\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 6.2\n",
+ "#For the noninverting amplifier of figure 6-4(c), Rin=50 Ohm,Ci=C1=0.1 uF\n",
+ "#R1=R2=R3=100 kOhm,Rf=1 MOhm,Vcc=15 V.Determine\n",
+ "#a)the bandwidth of the amplifier\n",
+ "#b)the maximum output voltage swing\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "R1=100*10**3\n",
+ "R2=100*10**3\n",
+ "R3=100*10**3\n",
+ "Rf=1*10**6\n",
+ "Rin=50\n",
+ "Ci=0.1*10**-6 #Capacitance b/w 2 stages being coupled\n",
+ "Ro=Rin #ac output resistance of the 1st stage\n",
+ "Vcc=15\n",
+ "UGB=10**6 #Unity gain bandwidth\n",
+ "Rif=R2*R3/(R2+R3) #since Ri*(1+A*B)>>R2 or R3\n",
+ "\n",
+ "#calculation\n",
+ "fl=1/(2*math.pi*Ci*(Rif+Ro)) #Low-freq cutoff\n",
+ "K=Rf/(R1+Rf)\n",
+ "Af=-Rf/R1 #closed loop voltage gain\n",
+ "fh=UGB*K/abs(Af) #High-freq cutoff\n",
+ "BW=fh-fl #Bandwidth\n",
+ "\n",
+ "#result\n",
+ "print \"Low-freq cutoff is\",round(fl,2),\"kHz\"\n",
+ "print \"High-freq cutoff is\",round(fh/10**3,2),\"kHz\"\n",
+ "print\"Bandwidth is\",round(BW/10**3,2),\"kHz\"\n",
+ "print \"The ideal maximum output voltage swing is\",Vcc,\"Volts\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 6.3"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Inductance is 9.9 mH\n",
+ "Figure of merit of the coil is 33.2\n",
+ "Parallel resistance of the tank circuit is 32.98 kHz\n",
+ "Feedback resistance is 1.03 kHz\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Example 6.3\n",
+ "#The circuit of figure 6-5(a) is to provide a gain of 10 at a peak frequency of\n",
+ "#16 kHz. Determine the value of all its components.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "fp=16*10**3 #Peak frequency\n",
+ "Af=10 #Gain at peak frequency\n",
+ "C=0.01*10**-6 #Assume\n",
+ "R=30 #Assume the value of internal resistance of the inductor\n",
+ "R1=100 #Assume the value of internal resisrance of the coil\n",
+ "\n",
+ "#calculation\n",
+ "L=1/(((2*math.pi*fp)**2)*10**-8) #Simplifying fp=1/(2*pi*sqrt(L*C))\n",
+ "Xl=2*math.pi*fp*L #Inductive reactance\n",
+ "Qcoil=Xl/R #Figure of merit of the coil\n",
+ "Rp=((Qcoil)**2)*R #Parallel resistance of the tank circuit\n",
+ "Rf=-Rp/(1-(Rp/(Af*R1))) #Simplifying Af=(Rf||Rp)/R1\n",
+ "\n",
+ "\n",
+ "#result\n",
+ "print \"Inductance is\",round(L*10**3,1),\"mH\"\n",
+ "print \"Figure of merit of the coil is\",round(Qcoil,1)\n",
+ "print \"Parallel resistance of the tank circuit is\",round(Rp/10**3,2),\"kHz\"\n",
+ "print \"Feedback resistance is\",round(Rf/10**3,2),\"kHz\"\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 6.4"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Output voltage is -2.0 Volts\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Example 6.4\n",
+ "#In the circuit of figure 6-6 Va=1V, Vb=2V, Vc=3V, Ra=Rb=Rc=3 kOhm,Rf=1 kOhm\n",
+ "#Supply voltages are 15V and -15V. Assuming that the opamp is initially nulled,\n",
+ "#determine the output voltage Vo\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "Va=1 #Input voltage in Volts\n",
+ "Vb=2 #Input voltage in Volts\n",
+ "Vc=3 #Input voltage in Volts\n",
+ "Ra=3*10**3 #Resistance in ohms\n",
+ "Rb=3*10**3 #Resistance in ohms\n",
+ "Rc=3*10**3 #Resistance in ohms\n",
+ "Rf=1*10**3 #Resistance in ohms\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "Vo=-((Rf/Ra)*Va+(Rf/Rb)*Vb+(Rf/Rc)*Vc) #Output voltage\n",
+ "\n",
+ "\n",
+ "#result\n",
+ "print \"Output voltage is\",Vo,\"Volts\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 6.5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Voltage at non-inverting terminal is 1.0 Volts\n",
+ "Output voltage is 3.0 Volts\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 6.5\n",
+ "#In the circuit of figure 6-7 Va=2V, Vb=-3V, Vc=4V, R=R1=1 kOhm,Rf=2 kOhm\n",
+ "#Supply voltages are 15V and -15V. Assuming that the opamp is initially nulled,\n",
+ "#determine the output voltage Vo and voltage V1 at the noninverting terminal.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "Va=2 #Input voltage in volts\n",
+ "Vb=-3 #Input voltage in volts\n",
+ "Vc=4 #Input voltage in volts\n",
+ "R1=1*10**3 #Resistance in ohms \n",
+ "Rf=2*10**3 #Resistance in ohms\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "V1=(Va+Vb+Vc)/3 #Voltage at non-inverting terminal\n",
+ "Vo=(1+Rf/R1)*V1 #Output voltage\n",
+ "\n",
+ "#result\n",
+ "print \"Voltage at non-inverting terminal is\",V1,\"Volts\"\n",
+ "print \"Output voltage is\",Vo,\"Volts\"\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 6.6"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Output voltage is 4 Volts\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Example 6.6\n",
+ "#In the circuit of figure 6-9 Va=2V, Vb=3V,Vc=4V,Vc=4V,Vd=5V,R=1 kOhm\n",
+ "#Supply voltages are 15V and -15V. Assuming that the opamp is initially nulled,\n",
+ "#Determine the output voltage Vo\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "Va=2 #Input voltage in volts\n",
+ "Vb=3 #Input voltage in volts\n",
+ "Vc=4 #Input voltage in volts\n",
+ "Vd=5 #Input voltage in volts\n",
+ "R=1*10**3 #Resistance in ohms\n",
+ "\n",
+ "#calculation\n",
+ "Vo=-Va-Vb+Vc+Vd #Output voltage\n",
+ "\n",
+ "#result\n",
+ "print \"Output voltage is\",Vo,\"Volts\"\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 6.7"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Output voltage at 0 degree is 1.47 Volts\n",
+ "Output voltage at 100 degree is -4.41 Volts\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 6.7\n",
+ "#In the circuit of figure 6-12 R1=1 kOhm, Rf=4.7 kOhm, Ra=Rb=Rc=100 kOhm.\n",
+ "#Vdc=5V and Supply voltages are 15V and -15V.\n",
+ "#The transducer is a thermistor with the following specifications.\n",
+ "#Rt=100 kOhm at a reference temperature of 25 degree celcius, temperature\n",
+ "#coefficient of resistance =-1 kOhm/ degree celcius or 1%/degree celcius.\n",
+ "#Determine the output voltage Vo at o degree C and 100 degree C.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "R1=1*10**3 #Resistance in ohms\n",
+ "Rf=4.7*10**3 #Resistance in ohms\n",
+ "Ra=100*10**3 #Resistance in ohms\n",
+ "Rb=100*10**3 #Resistance in ohms\n",
+ "Rc=100*10**3 #Resistance in ohms\n",
+ "Vdc=5 #dc voltage in Volts\n",
+ "Rt=100*10**3 #Resistance of a thermistor\n",
+ "temp_coeff=1*10**3\n",
+ "R=Ra #Ra=Rb=Rc=R\n",
+ "\n",
+ "#calculation\n",
+ "delta_R=-temp_coeff*(0-25) #Change in resistance\n",
+ "Vo1=((Rf*delta_R)/(R1*4*R))*Vdc #Output voltage at degrees\n",
+ "delta_R=-temp_coeff*(100-25) #Change in resistance\n",
+ "Vo2=((Rf*delta_R)/(R1*4*R))*Vdc #Output voltage at 100 degrees\n",
+ "\n",
+ "#result\n",
+ "print \"Output voltage at 0 degree is\",round(Vo1,2),\"Volts\"\n",
+ "print \"Output voltage at 100 degree is\",round(Vo2,2),\"Volts\"\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 6.8"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Change in resistance is 0.1 ohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 6.8\n",
+ "#The circuit of Figure 6-12 is used as an analog weight scale with the following\n",
+ "#specifications. The gain of the differential instrumentation amplifier = -100.\n",
+ "#Assume that Vdc= +10 V and the opamp supply voltages = +/- 10 V. The unstrained\n",
+ "#resistance of each of the four elements of the strain gage is 100 ohm Vo= 1 V.\n",
+ "#When a certain weight is placed on the scale platform,the output voltage Vo=1 V.\n",
+ "#Assuming that the output is initially 0,determine the change in the resistance\n",
+ "#of each strain-gage element.\n",
+ "\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "A=-100 #Gain of the differential instrumentation amplifier\n",
+ "Ra=100\n",
+ "Rb=100\n",
+ "Rc=100\n",
+ "Vdc=10\n",
+ "Vo=1\n",
+ "R=Ra #Ra=Rb=Rc=R\n",
+ "\n",
+ "#calculation\n",
+ "delta_R=(Vo*R)/(Vdc*abs(A)) #Change in resistance\n",
+ "\n",
+ "#result\n",
+ "print \"Change in resistance is\",delta_R,\"ohm\"\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 6.9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Feedback resisrance is 1.8 kOhm\n",
+ "Gain of the differential amplifier is 38.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 6.9\n",
+ "#The differential input and output amplifier of figure 6-14(a) is used as a\n",
+ "#pre-amplifier and requires a differential output of atleast 3.7 V. Determine\n",
+ "#the gain of the circuit if the differential input Vin=100 mV.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "Vo=3.7 #differential output voltage in Volts\n",
+ "Vin=100*10**-3 #differential input voltage in Volts\n",
+ "R1=100 #Assume\n",
+ "Rf=0.5*((Vo*R1)/Vin-1) #Feedback resisrance\n",
+ "\n",
+ "#calculation\n",
+ "A=(1+2*Rf/R1) #Gain of the differential amplifier\n",
+ "\n",
+ "#result\n",
+ "print \"Feedback resisrance is\",round(Rf/10**3,1),\"kOhm\"\n",
+ "print \"Gain of the differential amplifier is\",round(A,0)\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 6.10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Minimum input voltage is 1.1 Volts\n",
+ "Maximum input voltage is 7.48 Volts\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Example 6.10\n",
+ "#In the figure 6-17, for the indicated values of resistors, determine the full\n",
+ "#scale range for the input voltage.\n",
+ "\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "R1min=1*10**3\n",
+ "R1max=6.8*10**3\n",
+ "io=1*10**-3 #Meter current for full-wave rectification\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "vin_min=1.1*R1min*io #Minimum input voltage\n",
+ "vin_max=1.1*R1max*io #Maximum input voltage\n",
+ "\n",
+ "#result\n",
+ "print \"Minimum input voltage is\",vin_min,\"Volts\"\n",
+ "print \"Maximum input voltage is\",vin_max,\"Volts\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 6.11"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Current through diode is 5.0 mA\n",
+ "Voltage drop across diode is 0.7 Volts\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 6.11\n",
+ "#The circuit of figure 6-18,when the switch is in position 1, Vin=0.5 V and\n",
+ "#Vo=1.2 V. Determine the current through the diode and the voltage drop across\n",
+ "#it.Assume that the opamp is initially nulled.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "Vin=0.5 #Input voltage\n",
+ "Vo=1.2 #Output voltage\n",
+ "R1=100 \n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "Io=Vin/R1 #Current through diode\n",
+ "Vd=Vo-Vin #Voltage drop across diode\n",
+ "\n",
+ "#result\n",
+ "print \"Current through diode is\",Io*10**3,\"mA\"\n",
+ "print \"Voltage drop across diode is\",Vd,\"Volts\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 6.12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Load Current is 0.5 mA\n",
+ "Output voltage is 2 Volts\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 6.12\n",
+ "#The circuit of figure 6-19,Vin=5 V, R=1 Kilo Ohm and V1=1 V. Find\n",
+ "#a) the load current.\n",
+ "#b) the output voltage Vo.\n",
+ "#Assume that the op-amp is initially nulled.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "Vin=5 #Input voltage in Volts\n",
+ "V1=1 #Voltage in Volts\n",
+ "R1=10*10**3 #Resistance in ohms\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "I1=Vin/R1 #Load current\n",
+ "Vo=2*V1 #Output voltage\n",
+ "\n",
+ "\n",
+ "#result\n",
+ "print \"Load Current is\",I1*10**3,\"mA\"\n",
+ "print \"Output voltage is\",Vo,\"Volts\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 6.13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Minimum output voltage is 0.0 Volts\n",
+ "Maximum output voltage is 5.38 Volts\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Example 6.13\n",
+ "#The circuit of figure 6-20, Vref=2V, R1=1 kilo Ohm. Rf=2.7 kilo Ohm. Assuming\n",
+ "#that the opamp is initially nulled, determine the range for the output voltage\n",
+ "#Vo.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "R1=1*10**3 #Resistance in ohms\n",
+ "Rf=2.7*10**3 #Resistance in ohms\n",
+ "Vref=2 #Voltage in Volts\n",
+ "Io=0 #Since all the binary inputs D0 to D7 are logic zero\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "Vo_min=Io*Rf #Minimum output voltage\n",
+ "Io=(Vref/R1)*(1/2+1/4+1/8+1/16+1/32+1/64+1/128+1/256)\n",
+ "Vo_max=Io*Rf #Maximum output voltage\n",
+ "\n",
+ "#result\n",
+ "print \"Minimum output voltage is\",Vo_min,\"Volts\"\n",
+ "print \"Maximum output voltage is\",round(Vo_max,2),\"Volts\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 6.14"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Minimum output voltage at darkness is -0.15 Volts\n",
+ "Maximum output voltage at illumination is -10.0 Volts\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Example 6.14\n",
+ "#The circuit of figure 6-21, Vdc=5 V and Rf=3 kilo Ohm. Determine the change in\n",
+ "#the output voltage if the photocell is exposed to light of 0.61 lux from a dark\n",
+ "#condition.Assume that the opamp is initially nulled.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "Rf=3*10**3\n",
+ "Vdc=5\n",
+ "Rt1=100*10**3 #Resistance at darkness in ohms\n",
+ "Rt2=1.5*10**3 #Resistance at Illumination in ohms\n",
+ "\n",
+ "#calculation\n",
+ "Vomin=-(Vdc/Rt1)*Rf #Min output voltage at darkness\n",
+ "Vomax=-(Vdc/Rt2)*Rf #Max output voltage at Illumination\n",
+ "\n",
+ "#result\n",
+ "print \"Minimum output voltage at darkness is\",Vomin,\"Volts\"\n",
+ "print \"Maximum output voltage at illumination is\",round(Vomax,2),\"Volts\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 6.15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nrkJggg==\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f75432e8a90>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "\n",
+ "\n",
+ "#Example 6.15\n",
+ "#In the figure 6-23, R1Cf=1 second, and the input is a step(dc) voltage, as\n",
+ "#shown in figure 6-26(a). Determine the output voltage and sketch it.\n",
+ "#Assume that the opamp is initially nulled.\n",
+ "\n",
+ "%matplotlib inline\n",
+ "import math\n",
+ "import scipy\n",
+ "from matplotlib.pyplot import ylabel, xlabel, title, plot, show\n",
+ "import scipy.integrate\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "Vin=2 #Input voltage in Volts\n",
+ "VoO=0 #Output offset voltage\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "def integrnd(x) :\n",
+ " return 2\n",
+ "val1, err = scipy.integrate.quad(integrnd, 0, 1)\n",
+ "val2, err = scipy.integrate.quad(integrnd, 1, 2)\n",
+ "val3, err = scipy.integrate.quad(integrnd, 2, 3)\n",
+ "val4, err = scipy.integrate.quad(integrnd, 3, 4)\n",
+ "\n",
+ "a=-val1\n",
+ "b=a+-val2\n",
+ "c=b+-val3\n",
+ "d=c+-val4\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "x=[0,1,2,3,4]\n",
+ "y=[VoO,a,b,c,d]\n",
+ "plt.plot(x,y)\n",
+ "title('Output voltage')\n",
+ "xlabel('time')\n",
+ "ylabel('Voutput')\n",
+ "plt.show()\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.6"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter7.ipynb b/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter7.ipynb
new file mode 100644
index 00000000..924541b2
--- /dev/null
+++ b/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter7.ipynb
@@ -0,0 +1,1543 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "# Chapter 7: Active Filters and Oscillators"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 7.1"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resistance R is 15.9 kOhms\n",
+ "Use 20 kohm POT as R\n",
+ "Resistance R1 is 10.0 kilo ohms\n",
+ "Resistance Rf is 10.0 kilo ohms\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 7.1\n",
+ "#Design a low pass filter at a cutoff frequency of 1kHz\n",
+ "#with a passband gain of 2\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "fh=1*10**3 #Cut-off frequency\n",
+ "C=0.01*10**-6 #Assumption\n",
+ "R1=10*10**3 #Assumption\n",
+ "Rf=R1 #Since passband gain is 2,R1 and Rf must be equal\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "R=1/(2*math.pi*fh*C)\n",
+ "\n",
+ "#result\n",
+ "print \"Resistance R is\",round(R/10**3,1),\"kOhms\"\n",
+ "print \"Use 20 kohm POT as R\"\n",
+ "print \"Resistance R1 is\",round(R1/10**3),\"kilo ohms\"\n",
+ "print \"Resistance Rf is\",round(Rf/10**3),\"kilo ohms\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 7.2"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "New Resistance Rnew is 9937.5 Ohms\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 7.2\n",
+ "#Using the frequency scaling technique,convert the 1 kHz cutoff frequency of the\n",
+ "#lowpass filter of example 7-1 to a cutoff frequency of 1.6 kHz.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "fc0=1*10**3 #Original cut-off frequency\n",
+ "fc1=1.6*10**3 #New cut-off frequency\n",
+ "R=15.9*10**3 #Original resistance value\n",
+ "\n",
+ "#calculation\n",
+ "k=fc0/fc1\n",
+ "Rnew=R*k\n",
+ "\n",
+ "#result\n",
+ "print \"New Resistance Rnew is\",Rnew,\"Ohms\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 7.3"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f1f62117f50>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Gain magnitude av1 at f1 2.0\n",
+ "Gain magnitude av2 at f2 1.99\n",
+ "Gain magnitude av2 at f2 1.96\n",
+ "Gain magnitude av2 at f2 1.64\n",
+ "Gain magnitude av2 at f2 1.41\n",
+ "Gain magnitude av2 at f2 0.63\n",
+ "Gain magnitude av2 at f2 0.28\n",
+ "Gain magnitude av2 at f2 0.2\n",
+ "Gain magnitude av2 at f2 0.07\n",
+ "Gain magnitude av2 at f2 0.02\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Example 7.3\n",
+ "#Plot the frequency response of the lowpass filter of example 7.1\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "%matplotlib inline\n",
+ "\n",
+ "from scipy import pi\n",
+ "from matplotlib.pyplot import ylabel, xlabel, title, plot, show, clf, semilogx\n",
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Variable declaration\n",
+ "Af=2 #Passband gain of the filter\n",
+ "fh=1000 #Cut-off frequency\n",
+ "\n",
+ "f1=10\n",
+ "f2=100\n",
+ "f3=200\n",
+ "f4=700\n",
+ "f5=1000\n",
+ "f6=3000\n",
+ "f7=7000\n",
+ "f8=10000\n",
+ "f9=30000\n",
+ "f10=100000\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "av1=Af/math.sqrt(1+(f1/fh)**2)\n",
+ "av2=Af/math.sqrt(1+(f2/fh)**2)\n",
+ "av3=Af/math.sqrt(1+(f3/fh)**2)\n",
+ "av4=Af/math.sqrt(1+(f4/fh)**2)\n",
+ "av5=Af/math.sqrt(1+(f5/fh)**2)\n",
+ "av6=Af/math.sqrt(1+(f6/fh)**2)\n",
+ "av7=Af/math.sqrt(1+(f7/fh)**2)\n",
+ "av8=Af/math.sqrt(1+(f8/fh)**2)\n",
+ "av9=Af/math.sqrt(1+(f9/fh)**2)\n",
+ "av10=Af/math.sqrt(1+(f10/fh)**2)\n",
+ "\n",
+ "#Magnitude plot\n",
+ "f=np.arange(0,100000)\n",
+ "s=2.0j*pi*f\n",
+ "p=2.0*pi*fh\n",
+ "A=Af*p/(s+p)\n",
+ "\n",
+ "clf() #clear the figure\n",
+ "plot()\n",
+ "title('frequency response')\n",
+ "semilogx(f,20*np.log10(abs(A)))\n",
+ "ylabel('Voltage gain(dB)')\n",
+ "xlabel('frequency(Hz)')\n",
+ "show()\n",
+ "\n",
+ "\n",
+ "#result\n",
+ "print \"Gain magnitude av1 at f1\",round(av1,2)\n",
+ "print \"Gain magnitude av2 at f2\",round(av2,2)\n",
+ "print \"Gain magnitude av2 at f2\",round(av3,2)\n",
+ "print \"Gain magnitude av2 at f2\",round(av4,2)\n",
+ "print \"Gain magnitude av2 at f2\",round(av5,2)\n",
+ "print \"Gain magnitude av2 at f2\",round(av6,2)\n",
+ "print \"Gain magnitude av2 at f2\",round(av7,2)\n",
+ "print \"Gain magnitude av2 at f2\",round(av8,2)\n",
+ "print \"Gain magnitude av2 at f2\",round(av9,2)\n",
+ "print \"Gain magnitude av2 at f2\",round(av10,2)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 7.4.a"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resistance R2 is 33.86 kOhm\n",
+ "Resistance R3 is 33.86 kOhm\n",
+ "Resistance Rf is 15.82 kOhm\n",
+ " Use 20 kohm POT as Rf\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 7.4.a\n",
+ "#Design a second order low-pass filter at a high cutoff frequency of 1 kHz.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "fh=1*10**3 # Cut-off frequency\n",
+ "C2=0.0047*10**-6 # Assumption\n",
+ "C3=C2\n",
+ "R1=27*10**3 # Assumption\n",
+ "\n",
+ "#calculation\n",
+ "R2=1/(2*math.pi*fh*C2)\n",
+ "R3=R2\n",
+ "Rf=0.586*R1\n",
+ "\n",
+ "\n",
+ "#result\n",
+ "print \"Resistance R2 is\",round(R2/10**3,2),\"kOhm\"\n",
+ "print \"Resistance R3 is\",round(R3/10**3,2),\"kOhm\"\n",
+ "print \"Resistance Rf is\",round(Rf/10**3,2),\"kOhm\"\n",
+ "print \" Use 20 kohm POT as Rf\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 7.4.b"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f1f625aac10>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Gain magnitude av1 at f1 1.59\n",
+ "Gain magnitude av2 at f2 1.59\n",
+ "Gain magnitude av2 at f2 1.58\n",
+ "Gain magnitude av2 at f2 1.42\n",
+ "Gain magnitude av2 at f2 1.12\n",
+ "Gain magnitude av2 at f2 0.18\n",
+ "Gain magnitude av2 at f2 0.03\n",
+ "Gain magnitude av2 at f2 0.02\n",
+ "Gain magnitude av2 at f2 1.76 *10^-3\n",
+ "Gain magnitude av2 at f2 0.16 *10^-3\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 7.4.b\n",
+ "#Draw the frequency response of the network in example 7.4.a\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "%matplotlib inline\n",
+ "\n",
+ "from scipy import pi\n",
+ "from matplotlib.pyplot import ylabel, xlabel, title, plot, show, clf, semilogx\n",
+ "import math\n",
+ "import numpy as np\n",
+ "#Variable declaration\n",
+ "Af=1.586 #Passband gain of the filter\n",
+ "fh=1000 #Cut-off frequency\n",
+ "\n",
+ "f1=10\n",
+ "f2=100\n",
+ "f3=200\n",
+ "f4=700\n",
+ "f5=1000\n",
+ "f6=3000\n",
+ "f7=7000\n",
+ "f8=10000\n",
+ "f9=30000\n",
+ "f10=100000\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "av1=Af/math.sqrt(1+(f1/fh)**4)\n",
+ "av2=Af/math.sqrt(1+(f2/fh)**4)\n",
+ "av3=Af/math.sqrt(1+(f3/fh)**4)\n",
+ "av4=Af/math.sqrt(1+(f4/fh)**4)\n",
+ "av5=Af/math.sqrt(1+(f5/fh)**4)\n",
+ "av6=Af/math.sqrt(1+(f6/fh)**4)\n",
+ "av7=Af/math.sqrt(1+(f7/fh)**4)\n",
+ "av8=Af/math.sqrt(1+(f8/fh)**4)\n",
+ "av9=Af/math.sqrt(1+(f9/fh)**4)\n",
+ "av10=Af/math.sqrt(1+(f10/fh)**4)\n",
+ "\n",
+ "#Magnitude plot\n",
+ "f=np.arange(0,100000) #frequency range\n",
+ "s=2.0j*pi*f**2\n",
+ "p=2.0*pi*fh**2\n",
+ "A=Af*p/(s+p)\n",
+ "\n",
+ "clf() #clear the figure\n",
+ "plot()\n",
+ "title('frequency response')\n",
+ "semilogx(f,20*np.log10(abs(A)))\n",
+ "ylabel('Voltage gain(dB)')\n",
+ "xlabel('frequency(Hz)')\n",
+ "show()\n",
+ "\n",
+ "\n",
+ "#result\n",
+ "print \"Gain magnitude av1 at f1\",round(av1,2)\n",
+ "print \"Gain magnitude av2 at f2\",round(av2,2)\n",
+ "print \"Gain magnitude av2 at f2\",round(av3,2)\n",
+ "print \"Gain magnitude av2 at f2\",round(av4,2)\n",
+ "print \"Gain magnitude av2 at f2\",round(av5,2)\n",
+ "print \"Gain magnitude av2 at f2\",round(av6,2)\n",
+ "print \"Gain magnitude av2 at f2\",round(av7,2)\n",
+ "print \"Gain magnitude av2 at f2\",round(av8,2)\n",
+ "print \"Gain magnitude av2 at f2\",round(av9*10**3,2),\"*10^-3\"\n",
+ "print \"Gain magnitude av2 at f2\",round(av10*10**3,2),\"*10^-3\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 7.5.a"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resistance R is 15.92 kOhm\n",
+ "Resistance R1 is 10.0 kOhm\n",
+ "Resistance Rf is 10.0 kOhm\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 7.5.a\n",
+ "#Design a high pass filter at a cutoff frequency of 1 kHz with a passband gain\n",
+ "#of 2.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "fh=1*10**3 #Cut-off frequency\n",
+ "C=0.01*10**-6 #Assumption\n",
+ "Af=2\n",
+ "\n",
+ "#calculation\n",
+ "R=1/(2*math.pi*fh*C)\n",
+ "R1=10*10**3\n",
+ "Rf=R1 #since passband gain is 2\n",
+ "\n",
+ "\n",
+ "#result\n",
+ "print \"Resistance R is\",round(R/10**3,2),\"kOhm\"\n",
+ "print \"Resistance R1 is\",round(R1/10**3,2),\"kOhm\"\n",
+ "print \"Resistance Rf is\",round(Rf/10**3,2),\"kOhm\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 7.5.b"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nEREREcm//wehVjGzCowgOwAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f1f6224dcd0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Gain magnitude av1 at f1 0.2\n",
+ "Gain magnitude av2 at f2 0.39\n",
+ "Gain magnitude av2 at f2 0.74\n",
+ "Gain magnitude av2 at f2 1.15\n",
+ "Gain magnitude av2 at f2 1.41\n",
+ "Gain magnitude av2 at f2 1.9\n",
+ "Gain magnitude av2 at f2 1.98\n",
+ "Gain magnitude av2 at f2 1.99\n",
+ "Gain magnitude av2 at f2 2.0\n",
+ "Gain magnitude av2 at f2 2.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Example 7.5.b\n",
+ "#The circuit of figure 6-17,for the indicated value of resistors\n",
+ "#determine the full scale range for the input voltage.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "%matplotlib inline\n",
+ "import numpy as np\n",
+ "from scipy import pi\n",
+ "from matplotlib.pyplot import ylabel, xlabel, title, plot, show, clf, semilogx\n",
+ "import matplotlib.pyplot as plt\n",
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "Af=2 #Passband gain of the filter\n",
+ "fl=1000 #Cut-off frequency\n",
+ "\n",
+ "f1=100\n",
+ "f2=200\n",
+ "f3=400\n",
+ "f4=700\n",
+ "f5=1000\n",
+ "f6=3000\n",
+ "f7=7000\n",
+ "f8=10000\n",
+ "f9=30000\n",
+ "f10=100000\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "av1=(Af*(f1/fl))/math.sqrt(1+(f1/fl)**2)\n",
+ "av2=(Af*(f2/fl))/math.sqrt(1+(f2/fl)**2)\n",
+ "av3=(Af*(f3/fl))/math.sqrt(1+(f3/fl)**2)\n",
+ "av4=(Af*(f4/fl))/math.sqrt(1+(f4/fl)**2)\n",
+ "av5=(Af*(f5/fl))/math.sqrt(1+(f5/fl)**2)\n",
+ "av6=(Af*(f6/fl))/math.sqrt(1+(f6/fl)**2)\n",
+ "av7=(Af*(f7/fl))/math.sqrt(1+(f7/fl)**2)\n",
+ "av8=(Af*(f8/fl))/math.sqrt(1+(f8/fl)**2)\n",
+ "av9=(Af*(f9/fl))/math.sqrt(1+(f9/fl)**2)\n",
+ "av10=(Af*(f10/fl))/math.sqrt(1+(f10/fl)**2)\n",
+ "\n",
+ "#Magnitude plot\n",
+ "f=np.arange(100,100000)\n",
+ "s=2.0j*pi*f\n",
+ "p=2.0*pi*fl\n",
+ "A=Af*s/(s+p)\n",
+ "\n",
+ "clf() #clear the figure\n",
+ "plt.plot()\n",
+ "plt.title('frequency response')\n",
+ "semilogx(f,20*np.log10(abs(A)))\n",
+ "plt.ylabel('Voltage gain(dB)')\n",
+ "plt.xlabel('frequency(Hz)')\n",
+ "plt.show()\n",
+ "\n",
+ "\n",
+ "#result\n",
+ "print \"Gain magnitude av1 at f1\",round(av1,2)\n",
+ "print \"Gain magnitude av2 at f2\",round(av2,2)\n",
+ "print \"Gain magnitude av2 at f2\",round(av3,2)\n",
+ "print \"Gain magnitude av2 at f2\",round(av4,2)\n",
+ "print \"Gain magnitude av2 at f2\",round(av5,2)\n",
+ "print \"Gain magnitude av2 at f2\",round(av6,2)\n",
+ "print \"Gain magnitude av2 at f2\",round(av7,2)\n",
+ "print \"Gain magnitude av2 at f2\",round(av8,2)\n",
+ "print \"Gain magnitude av2 at f2\",round(av9,2)\n",
+ "print \"Gain magnitude av2 at f2\",round(av10,2)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 7.6.a"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Lower cutoff frequency fl is 1.0 kHz\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 7.6.a\n",
+ "#Determine the low cutoff frequency fl of the filter shown in figure 7-8(a)\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "R2=33*10**3 #Resistance in ohms\n",
+ "R3=R2\n",
+ "C2=0.0047*10**-6 #Capacitance in Farads\n",
+ "C3=C2\n",
+ "\n",
+ "#calculation\n",
+ "fl=1/(2*math.pi*math.sqrt(R2*R3*C2*C3))\n",
+ "\n",
+ "\n",
+ "#result\n",
+ "print \"Lower cutoff frequency fl is\",round(fl/10**3,0),\"kHz\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 7.6.b"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f1f8840ec50>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Gain magnitude av1 at f1 0.0159\n",
+ "Gain magnitude av2 at f2 0.0634\n",
+ "Gain magnitude av2 at f2 0.2506\n",
+ "Gain magnitude av2 at f2 0.6979\n",
+ "Gain magnitude av2 at f2 1.1215\n",
+ "Gain magnitude av2 at f2 1.5763\n",
+ "Gain magnitude av2 at f2 1.5857\n",
+ "Gain magnitude av2 at f2 1.5859\n",
+ "Gain magnitude av2 at f2 1.586\n",
+ "Gain magnitude av2 at f2 1.586\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Example 7.6.b\n",
+ "#Draw the frequency response plot of the filter in example 7.6.a\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "%matplotlib inline\n",
+ "\n",
+ "from scipy import pi\n",
+ "from matplotlib.pyplot import ylabel, xlabel, title, plot, show, clf, semilogx\n",
+ "import math\n",
+ "import numpy as np\n",
+ "#Variable declaration\n",
+ "Af=1.586 #Passband gain of the filter\n",
+ "fl=1000 #Cut-off frequency\n",
+ "\n",
+ "f1=100\n",
+ "f2=200\n",
+ "f3=400\n",
+ "f4=700\n",
+ "f5=1000\n",
+ "f6=3000\n",
+ "f7=7000\n",
+ "f8=10000\n",
+ "f9=30000\n",
+ "f10=100000\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "av1=Af/math.sqrt(1+(fl/f1)**4)\n",
+ "av2=Af/math.sqrt(1+(fl/f2)**4)\n",
+ "av3=Af/math.sqrt(1+(fl/f3)**4)\n",
+ "av4=Af/math.sqrt(1+(fl/f4)**4)\n",
+ "av5=Af/math.sqrt(1+(fl/f5)**4)\n",
+ "av6=Af/math.sqrt(1+(fl/f6)**4)\n",
+ "av7=Af/math.sqrt(1+(fl/f7)**4)\n",
+ "av8=Af/math.sqrt(1+(fl/f8)**4)\n",
+ "av9=Af/math.sqrt(1+(fl/f9)**4)\n",
+ "av10=Af/math.sqrt(1+(fl/f10)**4)\n",
+ "\n",
+ "#Magnitude plot\n",
+ "f=np.arange(100,100000)\n",
+ "s=2.0j*pi*fl**2\n",
+ "p=2.0*pi*f**2\n",
+ "A=Af*p/(s+p)\n",
+ "\n",
+ "\n",
+ "clf() #clear the figure\n",
+ "plot()\n",
+ "title('frequency response')\n",
+ "semilogx(f,20*np.log10(abs(A)))\n",
+ "ylabel('Voltage gain(dB)')\n",
+ "xlabel('frequency(Hz)')\n",
+ "show()\n",
+ "\n",
+ "\n",
+ "#result\n",
+ "print \"Gain magnitude av1 at f1\",round(av1,4)\n",
+ "print \"Gain magnitude av2 at f2\",round(av2,4)\n",
+ "print \"Gain magnitude av2 at f2\",round(av3,4)\n",
+ "print \"Gain magnitude av2 at f2\",round(av4,4)\n",
+ "print \"Gain magnitude av2 at f2\",round(av5,4)\n",
+ "print \"Gain magnitude av2 at f2\",round(av6,4)\n",
+ "print \"Gain magnitude av2 at f2\",round(av7,4)\n",
+ "print \"Gain magnitude av2 at f2\",round(av8,4)\n",
+ "print \"Gain magnitude av2 at f2\",round(av9,4)\n",
+ "print \"Gain magnitude av2 at f2\",round(av10,4)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 7.7.a"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resistance R1 is 10.0 kOhm\n",
+ "Resistance R is 15.92 kOhm\n",
+ "Bandpass Gain Af is 4\n",
+ "Resistance Rf is 10.0 kOhm\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 7.7.a\n",
+ "#Design a wide band pass filter with fl=200 Hz, fh=1 kHz and passband gain=4.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "fl=200 #Low cutoff freq in Hz\n",
+ "fh=1*10**3 #High cutoff freq in Hz\n",
+ "C=0.05*10**-6\n",
+ "\n",
+ "#calculation\n",
+ "R=1/(2*math.pi*fl*C)\n",
+ "R1=10*10**3\n",
+ "Rf=R1 #Since passband gain is 2,R1 and Rf must be equal\n",
+ "\n",
+ "\n",
+ "#result\n",
+ "print \"Resistance R1 is\",round(R1/10**3,2),\"kOhm\"\n",
+ "print \"Resistance R is\",round(R/10**3,2),\"kOhm\"\n",
+ "print \"Bandpass Gain Af is 4\"\n",
+ "print \"Resistance Rf is\",round(Rf/10**3,2),\"kOhm\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 7.7.b"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nrkJggg==\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f1f802ccc10>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Gain magnitude av1 at f1 0.1997\n",
+ "Gain magnitude av2 at f2 0.5931\n",
+ "Gain magnitude av2 at f2 1.78\n",
+ "Gain magnitude av2 at f2 2.7735\n",
+ "Gain magnitude av2 at f2 3.3333\n",
+ "Gain magnitude av2 at f2 3.1508\n",
+ "Gain magnitude av2 at f2 2.7735\n",
+ "Gain magnitude av2 at f2 1.78\n",
+ "Gain magnitude av2 at f2 0.5655\n",
+ "Gain magnitude av2 at f2 0.3979\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 7.7.b\n",
+ "#Draw the frequency response plot for the filter in example 7.7.a\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "%matplotlib inline\n",
+ "\n",
+ "from scipy import pi\n",
+ "from matplotlib.pyplot import ylabel, xlabel, title, plot, show, clf, semilogx\n",
+ "import math\n",
+ "import numpy as np\n",
+ "#Variable declaration\n",
+ "Af=4 #Passband gain of the filter\n",
+ "fl=200 #Cut-off frequency\n",
+ "fh=1000 #Higher Cut-off frequency\n",
+ "\n",
+ "f1=10\n",
+ "f2=30\n",
+ "f3=100\n",
+ "f4=200\n",
+ "f5=447.2\n",
+ "f6=700\n",
+ "f7=1000\n",
+ "f8=2000\n",
+ "f9=7000\n",
+ "f10=10000\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "av1=(Af*(f1/fl))/math.sqrt((1+(f1/fl)**2)*(1+(f1/fh)**2))\n",
+ "av2=(Af*(f2/fl))/math.sqrt((1+(f2/fl)**2)*(1+(f2/fh)**2))\n",
+ "av3=(Af*(f3/fl))/math.sqrt((1+(f3/fl)**2)*(1+(f3/fh)**2))\n",
+ "av4=(Af*(f4/fl))/math.sqrt((1+(f4/fl)**2)*(1+(f4/fh)**2))\n",
+ "av5=(Af*(f5/fl))/math.sqrt((1+(f5/fl)**2)*(1+(f5/fh)**2))\n",
+ "av6=(Af*(f6/fl))/math.sqrt((1+(f6/fl)**2)*(1+(f6/fh)**2))\n",
+ "av7=(Af*(f7/fl))/math.sqrt((1+(f7/fl)**2)*(1+(f7/fh)**2))\n",
+ "av8=(Af*(f8/fl))/math.sqrt((1+(f8/fl)**2)*(1+(f8/fh)**2))\n",
+ "av9=(Af*(f9/fl))/math.sqrt((1+(f9/fl)**2)*(1+(f9/fh)**2))\n",
+ "av10=(Af*(f10/fl))/math.sqrt((1+(f10/fl)**2)*(1+(f10/fh)**2))\n",
+ "\n",
+ "#Magnitude plot\n",
+ "f=np.arange(10,100000)\n",
+ "s=2.0j*pi*f\n",
+ "p1=2.0*pi*fl\n",
+ "p2=2.0*pi*fh\n",
+ "A=(Af*s)*p2/((s+p1)*(s+p2))\n",
+ "\n",
+ "clf() #clear the figure\n",
+ "plot()\n",
+ "title('frequency response')\n",
+ "semilogx(f,20*np.log10(abs(A)))\n",
+ "ylabel('Voltage gain(dB)')\n",
+ "xlabel('frequency(Hz)')\n",
+ "show()\n",
+ "\n",
+ "\n",
+ "#result\n",
+ "print \"Gain magnitude av1 at f1\",round(av1,4)\n",
+ "print \"Gain magnitude av2 at f2\",round(av2,4)\n",
+ "print \"Gain magnitude av2 at f2\",round(av3,4)\n",
+ "print \"Gain magnitude av2 at f2\",round(av4,4)\n",
+ "print \"Gain magnitude av2 at f2\",round(av5,4)\n",
+ "print \"Gain magnitude av2 at f2\",round(av6,4)\n",
+ "print \"Gain magnitude av2 at f2\",round(av7,4)\n",
+ "print \"Gain magnitude av2 at f2\",round(av8,4)\n",
+ "print \"Gain magnitude av2 at f2\",round(av9,4)\n",
+ "print \"Gain magnitude av2 at f2\",round(av10,4)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 7.7.c"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Center frequency fc is 447.21 Hz\n",
+ "Quality factor Q is 0.56\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 7.7.c\n",
+ "#Calculate the value of Q for the filter.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "fh=1*10**3 #Higher cut-off frequency\n",
+ "fl=200 #Lower cut-off frequency\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "fc=math.sqrt(fl*fh) #Center frequency\n",
+ "Q=fc/(fh-fl) #Quality factor\n",
+ "\n",
+ "\n",
+ "\n",
+ "#result\n",
+ "print \"Center frequency fc is\",round(fc,2),\"Hz\"\n",
+ "print \"Quality factor Q is\",round(Q,2)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 7.8.a"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resistance R1 is 4.77 kilo ohm\n",
+ "Resistance R2 is 5.97 kilo ohm\n",
+ "Resistance R3 is 95.49 kilo ohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 7.8.a\n",
+ "#Design the bandpass filter shown in figure 7-13(a) so that fc=1 kHz, Q=3 and\n",
+ "#Af=10.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "fc=1*10**3 #Center frequency\n",
+ "Q=3 #Quality factor\n",
+ "Af=10 #Passband gain\n",
+ "C1=0.01*10**-6 #Assumption\n",
+ "\n",
+ "#calculation\n",
+ "C2=C1\n",
+ "R1=Q/(2*math.pi*fc*C1*Af)\n",
+ "R2=Q/(2*math.pi*fc*C1*(2*Q**2-Af))\n",
+ "R3=Q/(math.pi*fc*C1)\n",
+ "\n",
+ "#result\n",
+ "print \"Resistance R1 is\",round(R1/10**3,2),\"kilo ohm\"\n",
+ "print \"Resistance R2 is\",round(R2/10**3,2),\"kilo ohm\"\n",
+ "print \"Resistance R3 is\",round(R3/10**3,2),\"kilo ohm\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 7.8.b"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resistance R1 is 2.65 kilo ohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 7.8.b\n",
+ "#Change the centre frequency of example 7.8.a to 1.5 kHz, keeping Af and\n",
+ "#bandwidth constant.\n",
+ "\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "fc0=1*10**3 #Original center frequency\n",
+ "fc1=1.5*10**3 #New center frequency\n",
+ "R2=5.97*10**3 #Original resistance\n",
+ "\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "R2new=R2*(fc0/fc1)**2\n",
+ "\n",
+ "#result\n",
+ "print \"Resistance R1 is\",round(R2new/10**3,2),\"kilo ohm\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 7.9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resistance R2 of highpass section is 15.92 kilo ohm\n",
+ "Resistance R of lowpass section is 15.92 kilo ohm\n",
+ "Bandpass Gain Af is 4\n",
+ "Resistance R1 is 10.0 kilo ohm\n",
+ "Resistance Rf is 10.0 kilo ohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 7.9\n",
+ "#Design a wide-band reject filter having fh=200 Hz and fl=1 KHz.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "fh=200 # Low cutoff freq in Hz\n",
+ "fl=1*10**3 # High cutoff freq in Hz\n",
+ "C2=0.01*10**-6 # Assumption\n",
+ "R2=1/(2*math.pi*fl*C2)\n",
+ "C=0.05*10**-6\n",
+ "R1=10*10**3 # Assumption\n",
+ "Rf=R1 # Since passband gain is 2,R1 and Rf must be equal\n",
+ "Af=4 # Since gain of high pass and lowpass is set to 2\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "R2=1/(2*math.pi*fl*C2)\n",
+ "R=1/(2*math.pi*fh*C)\n",
+ "\n",
+ "\n",
+ "#result\n",
+ "print \"Resistance R2 of highpass section is\",round(R2/10**3,2),\"kilo ohm\"\n",
+ "print \"Resistance R of lowpass section is\",round(R/10**3,2),\"kilo ohm\"\n",
+ "print \"Bandpass Gain Af is\",Af\n",
+ "print \"Resistance R1 is\",round(R1/10**3),\"kilo ohm\"\n",
+ "print \"Resistance Rf is\",round(Rf/10**3),\"kilo ohm\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 7.10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resistance R is 39.01 kilo ohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 7.10\n",
+ "#Design a 60 Hz active notch filter.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "fn=60 #Notch-out frequency in Hz\n",
+ "C=0.068*10**-6 #Assumption\n",
+ "\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "R=1/(2*math.pi*fn*C)\n",
+ "\n",
+ "\n",
+ "#result\n",
+ "print \"Resistance R is\",round(R/10**3,2),\"kilo ohm\"\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 7.11"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Phase angle phi is -90.0 degree\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 7.11\n",
+ "#For the all-pass filter of figure 7-16(a),find the phase angle phi if the\n",
+ "#frequency of vin is 1 kHz.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "f=1*10**3 #Input frequency in Hz\n",
+ "C=0.01*10**-6 \n",
+ "R=15.9*10**3 #Resistance in ohms\n",
+ "\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "phi=math.atan(2*math.pi*f*C*R) #Phase angle\n",
+ "phi1=-2*phi*180/math.pi\n",
+ "\n",
+ "#result\n",
+ "print \"Phase angle phi is\",round(phi1),\"degree\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 7.12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resistance R is 3.3 kilo ohm\n",
+ "Use Resistance R as 3.3 kohm\n",
+ "Resistance Rf is 957.0 kilo ohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 7.12\n",
+ "#Design the phase shift oscillator of figure 7-18 so that fo=200 Hz.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "fo=200 # Frequency of oscillation\n",
+ "C=0.1*10**-6 # Assumption\n",
+ "R=3.3*10**3\n",
+ "\n",
+ "#calculation\n",
+ "R=0.065/(fo*C)\n",
+ "R=3.3*10**3 #Using rounded value\n",
+ "R1=10*R # To prevent loading of amplifier\n",
+ "Rf=29*R1\n",
+ "\n",
+ "#result\n",
+ "print \"Resistance R is\",round(R/10**3,1),\"kilo ohm\"\n",
+ "print \"Use Resistance R as 3.3 kohm\"\n",
+ "print \"Resistance Rf is\",round(Rf/10**3),\"kilo ohm\"\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 7.13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resistance R is 3.3 kilo ohm\n",
+ "Resistance Rf is 24.0 kilo ohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 7.13\n",
+ "#Design the wein bridge oscillator of figure 7-19 so that fo=965 Hz.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "fo=965 # Frequency of oscillation\n",
+ "C=0.05*10**-6 # Assumption\n",
+ "R1=12*10**3 # Assumption\n",
+ "\n",
+ "#calculation\n",
+ "R=0.159/(fo*C)\n",
+ "Rf=2*R1\n",
+ "\n",
+ "#result\n",
+ "print \"Resistance R is\",round(R/10**3,1),\"kilo ohm\"\n",
+ "print \"Resistance Rf is\",round(Rf/10**3),\"kilo ohm\"\n",
+ "\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 7.14"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resistance values R1,R2,R3 is 100.0 kilo ohm\n",
+ "Capacitance values C1,C2,C3 is 0.01 uF\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 7.14\n",
+ "#Design the quadrature oscillator of figure 7-20 so that fo=159 Hz.\n",
+ "#The opamp is the 1458/772.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "fo=159 # Frequency of oscillation\n",
+ "C=0.01*10**-6 # Assumption\n",
+ "\n",
+ "#calculation\n",
+ "R=0.159/(fo*C)\n",
+ "\n",
+ "#result\n",
+ "print \"Resistance values R1,R2,R3 is\",round(R/10**3,1),\"kilo ohm\"\n",
+ "print \"Capacitance values C1,C2,C3 is\",round(C*10**6,2),\"uF\"\n",
+ "\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 7.15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resistance R2 is 11.6 kilo ohm\n",
+ "Resistance R is 10.0 ohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 7.15\n",
+ "#Design the square wave oscillator of figure 7-21(a) so that fo=1 kHz.\n",
+ "#The opamp is 741 with dc supply voltages = 15, -15 V.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "fo=1*10**3 # Frequency of oscillation\n",
+ "C=0.05*10**-6 # Assumption\n",
+ "R1=10*10**3 # Assumption\n",
+ "\n",
+ "#calculation\n",
+ "R=1/(2*fo*C)\n",
+ "R2=1.16*R1\n",
+ "\n",
+ "#result\n",
+ "print \"Resistance R2 is\",round(R2/10**3,1),\"kilo ohm\"\n",
+ "print \"Resistance R is\",round(R/10**3),\"ohm\"\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 7.16"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resistance R2 is 10.0 kilo ohm\n",
+ "Resistance R1 is 10.0 kilo ohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 7.16\n",
+ "#Design the triangular wave generator of figure 7-23 so that fo=2 kHz and\n",
+ "#Vo(pp)=7V. The opamp is a 1458/772 and supply voltages =15,-15 V.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "fo=2*10**3 # Frequency of oscillation\n",
+ "vo=7 #Output voltage\n",
+ "Vsat=14 #Saturation voltage for opamp 1458\n",
+ "R3=40*10**3 #Assumption\n",
+ "C1=0.05*10**-6 #Assumption\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "R2=(vo*R3)/(2*Vsat)\n",
+ "k=R3/(4*fo*R2) #Using fo=R3/(4*R1*C1*R2),k=R1*C1;\n",
+ "R1=k/C1\n",
+ "\n",
+ "\n",
+ "#result\n",
+ "print \"Resistance R2 is\",round(R2/10**3),\"kilo ohm\"\n",
+ "print \"Resistance R1 is\",round(R1/10**3),\"kilo ohm\"\n",
+ "\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 7.17"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Terminal voltage Vc is 10.43 volts\n",
+ "Approximate Nominal freq fo is 26.09 kHz\n",
+ "Approximate Nominal freq fo1 is 41.67 kHz\n",
+ "Approximate Nominal freq fo2 is 8.33 kHz\n",
+ "Change in output freq delta_fo is 33.33 kHz\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 7.17\n",
+ "#In the circuit of figure 7-25(c), V=12 V, R2=1.5 Kilo ohm, R1=R3=10 Kilo ohm\n",
+ "#and C1=0.001 uF.\n",
+ "#a)Determine the nominal frequency of all the output waveforms.\n",
+ "#b)Compute the modulation in the output frequencies if Vc is varied between 9.5 V\n",
+ "#and 11.5 V.\n",
+ "\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "R2=1.5*10**3\n",
+ "R1=10*10**3\n",
+ "R3=10*10**3\n",
+ "C1=0.001*10**-6\n",
+ "V=12 #Supply voltage\n",
+ "Vc1=9.5\n",
+ "Vc2=11.5\n",
+ "\n",
+ "#calculation\n",
+ "Vc=R3*V/(R2+R3) #Using voltage divider rule\n",
+ "fo=2*(V-Vc)/(V*R1*C1)\n",
+ "fo1=2*(V-Vc1)/(V*R1*C1)\n",
+ "fo2=2*(V-Vc2)/(V*R1*C1)\n",
+ "delta_fo=fo1-fo2 #Change in output freq\n",
+ "\n",
+ "\n",
+ "#result\n",
+ "print \"Terminal voltage Vc is\",round(Vc,2),\"volts\"\n",
+ "print \"Approximate Nominal freq fo is\",round(fo/10**3,2),\"kHz\"\n",
+ "print \"Approximate Nominal freq fo1 is\",round(fo1/10**3,2),\"kHz\"\n",
+ "print \"Approximate Nominal freq fo2 is\",round(fo2/10**3,2),\"kHz\"\n",
+ "print \"Change in output freq delta_fo is\",round(delta_fo/10**3,2),\"kHz\"\n",
+ "\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.6"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter8.ipynb b/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter8.ipynb
new file mode 100644
index 00000000..2cb88119
--- /dev/null
+++ b/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter8.ipynb
@@ -0,0 +1,399 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "# Chapter 8. Comparators and Converters"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 8.1"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nERERERERf/p/LsxYpbABTCwAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f5548e4e5d0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 8.1\n",
+ "#In the circuit of figure 8-4(a), R1=100 ohm,R2=56 kilo Ohm, Vin=V pp sine wave\n",
+ "#and the opamp is type 741 with supply voltages 15 V, -15 V.\n",
+ "#Determine the threshold voltages Vul and Vut and draw the output waveform.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "%matplotlib inline\n",
+ "import math\n",
+ "import array\n",
+ "import numpy as np\n",
+ "#Variable declaration\n",
+ "R1=100\n",
+ "R2=56*10**3\n",
+ "vin=1 #Input voltage in volt\n",
+ "pos_Vsat=14 #Positive saturation voltage in volt\n",
+ "neg_Vsat=-14 #Negative saturation voltage in volt\n",
+ "Vut=(R1/(R1+R2))*(pos_Vsat) #Upper threshold voltage\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "Vut=(R1/(R1+R2))*(pos_Vsat) #Upper threshold voltage\n",
+ "Vlt=(R1/(R1+R2))*(neg_Vsat) #Lower threshold voltage\n",
+ "\n",
+ "t=np.arange(0,2*math.pi,0.1)\n",
+ "vut=0.5*np.sin(t)\n",
+ "subplot(211)\n",
+ "plt.plot(t,vut)\n",
+ "plt.ylabel('Vin')\n",
+ "plt.xlabel('t')\n",
+ "plt.title(r'$Input voltage$')\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "t1=math.asin(0.025/0.5)\n",
+ "t2=math.pi-math.asin(-0.025/0.5)\n",
+ "t3=2*math.pi\n",
+ "x=[0,t1,t2,t3]\n",
+ "y=[-14,14,-14,14]\n",
+ "plt.subplot(212)\n",
+ "plt.step(x,y) #Plotting square wave\n",
+ "plt.title('Output Waveform')\n",
+ "plt.xlabel('t')\n",
+ "plt.ylabel('Vo')\n",
+ "\n",
+ "#result\n",
+ "plt.show()\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 8.2"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "#Since zener diode is forward biased\n",
+ "Output voltage during positive half-cycle of the input is -0.7 V\n",
+ "Output voltage during negative half-cycle of the input is 5.1 V\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n/T8NRSbI+0GhoAAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f55408e2f50>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#Example 8.2\n",
+ "#In the circuit of figure 8-7(a), Vin=500 mV peak 60-Hz sinewave, R=100 ohm.\n",
+ "#IN3826 zener with Vz=5.1 V and the supply voltages= 15 V, -15V.\n",
+ "#Determine the output voltage swing.Assume that the voltage drop across\n",
+ "#the forward biased zener=0.7V.\n",
+ "\n",
+ "%matplotlib inline\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "import math\n",
+ "import array\n",
+ "\n",
+ "#Variable declaration\n",
+ "vin=5*10**-3\n",
+ "R=100\n",
+ "Vd1=-0.7 # Output voltage during positive half-cycle of the input\n",
+ "Vd2=5.1 # Output voltage during negative half-cycle of the input\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "\n",
+ "t=np.arange(0,2*math.pi,0.1)\n",
+ "vut=0.5*np.sin(t)\n",
+ "subplot(211)\n",
+ "plt.plot(t,vut)\n",
+ "plt.ylabel('Vin')\n",
+ "plt.xlabel('t')\n",
+ "plt.title(r'$Input voltage$')\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "t1=math.pi\n",
+ "t2=2*math.pi\n",
+ "x=[0,t1,t2]\n",
+ "y=[-0.7,-0.7,5.1]\n",
+ "subplot(2,1,2)\n",
+ "plt.step(x,y)\n",
+ "plt.title('Output Waveform')\n",
+ "plt.xlabel('t')\n",
+ "plt.ylabel('Vo')\n",
+ "\n",
+ "#result\n",
+ "print \"#Since zener diode is forward biased\"\n",
+ "print \"Output voltage during positive half-cycle of the input is\",Vd1,\"V\"\n",
+ "print \"Output voltage during negative half-cycle of the input is\",Vd2,\"V\" \n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 8.3"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXsAAAEZCAYAAAB2AoVaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnXmYHVWZ/z/dnaWzpwMhYQlpCMLDIriNgmwNKKIiMwou\nKCoqo+OMw+IgAuNPgtuojwIz6OC4JSMqm6MO6CA6SBBRUMIWYQAJCQQSFuF2d5LO0knf3x9vFaf6\n5i6n7q3q6rr1/TzPfbqqbtW5b791zlun3nPO+4IQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEELk\nircCa4D1wCEZyyKEEA05HVgBbATWAf8OzIpx/Wrg2ATlaVTew8A7IvuHAyNVjg0CnQnKVclK4C0p\nli8KTpqVVxSPfwK+GPydCRwKLAR+BUz0LKMMdCQoU6PybgWOiuwfBTxU5djvsIdAGnQAewIPNnm9\n2rEQYsyYibkgTqk4Pg14FvhAsL8U+Gzk+z7MfQFwJbAdGArKOhfoxYzs3wJPAWuxh0lI3PIqOQ24\nP7L/c+D9Fcf+B7gw2L4Oe2Ppxx4UBwTHXxMcjz5Y3grcF2x3AucDjwJ/Aa4BeoDJwIbgf9wA/Dk4\nf39gGVAC/sToXv9S4IpArg3AcdgbzLmB3OuB7wDzgBuBAeyBO7vK/y+EELE4ARimei9zKfDDYHsJ\n8JnId3044wywitFul17MEP4AmAIchD08jmuyvEoWYg+E2YHszwDdwBORY/3AEcH5p2MPsInApcA9\nkbIeBV4X2b8OOC/YPgt7O9gtuPYbOJ0Q/I97B9sTg7LOByYAx2BupH2D75cGMh0W7E8O/s/fAXOD\n33gGuBvz/08GbgY+XUcPos3R659Iip2xHms1V8fTwE6R/WbcNBcDm7Be7hLg1BbLC3kcM+xHYYbx\nz8Bm4PbIsUnAncH5S7HxiOFApkOAGcF3V0XkmgG8MTgG8BHgU9ibSXjtKVRvg4diD5QvAtuAW4Cf\nMfp//inw+2B7S/D3cuC54DduC76/L/j+J8DLG6tDtCsy9iIp/oIZ/Gp1atfg+1aI9tafwHqvSfEb\nzLAfGWwD/DZy7E7MQHdhBvhRzDWyChsT2Dm45irgbdjD4W3A8ojcvZjBLQWfBzFDPq+KPLsx+v8F\neyiF/3O5yvdgvfmQTRX7m4HpVa4RBUHGXiTF77Ee5MkVx6djLp6bg/2NwNTI9/Mrzi/XKH/Piu2n\nWiwvStTY3xYcu40dHwDvBk7CXEizgL2wt4rwzeJBzCi/MTg36qZ5AtNDT+QzFfPzV7IWWMDoN5aF\nuP/ZlyQHukXOkbEXSTGAuSYuB96A+Z17gWuxXuiVwXn3Am/CjN184OyKcp4BFlUp/1OYz/5AzG9+\nTYvlRfkN8ArMuN8eHFuB+dCPwRn76dgD7QXMzfKFKmX9MJDhSMxnH/KN4PzwoTUXe3BU4w5sUPk8\nTI99wInA1cH3MuJCiMz5IGYohzBf/RWMnmc/GTNaA5ihPhvr9YachPWOS8DHcQO0Z2A923WMnlUT\nt7xarA2uj/JzzLhPCfanYb7yQcyF815scHfvyDULgmM3VJTVAZyDTescxFxBn4t8X1nOAdhsnH5s\nnOKvI99VDkrDjgPRVzJ6QPZDwC8RhaVRD2EX4O1Yj6cXeyV+HOvpXIfNimjEaqxyb8f8nq9uTlRR\nUHqBx7BZKWnNcxei7ZlQ57vvYK+/N2KvoOEc4l0xg30t1js5o8FvlLHX0BdalFUIIUQKHJzQOasY\nPe1OiDj0Ym+FGl8SIiXOw/yPrfIYtvDkLmwVpBBCiHHEZdgsit8Cf4/NHmiGXYO/c7EBsCNbF00I\nIUQcGg3QdmKDs+/CZgPcj00t+zEWfyMuF2GxPL4KsGjRovLKlSubKEYIIQrNSmCftArvwuZP34NN\nq/NhKm4p+TRsDvPxke/L1bj00nL5zDOrflWXV72qXL7zzvjXjQcuuuiiqsc///ly+fzz45d3wAHl\n8ooVrcmUFbV08c//XC5/5jPxy1u4sFx+7LGWRMqMWro455xy+atfjV/e3Lnl8tNPtyZTVtTSxYc/\nXC5fcUX88qZNK5cHB1uTKSvwWyw4Ct9Br4OxyIJfx+YdX+B53TxsJeK92JLzn+Ex17dUgp4ez1+I\n0NNj17YT0oVDunBIFw7pwo96Uy/3xdw378TmN1+F9cofi1H+KuBlcYUqlWDvvRufV8ns2e1380ol\neMlL4l/XrrqY3USQXunCIV04Ql3suWfjc9uBesb+F5iBfye2gm/MKOKTuq+vr+px6cIhXTikC0cR\nddEM9Yz9PjResdhBE76jRhTx5qkiO6QLh3ThkC5ao57P/hbgE7iECVH2Az6JZepJHN08h3ThkC4c\n0oVDuvCjnrE/HngeG5RdBzyCJXZYB3wNiyb4uppXt4BunkO6cEgXDunCGBmBgYHmfPbtpotG1HPj\nbAG+G3y6cCEPnseWr6eGKrKjFV309ycvT1aUy63pYk21VB85ZXgYtmyB6U2kIunpgbVrk5cpKwYH\nYdo0mFDPktWgHe1FPXynXh6EDdS+I9hOlf5+GTiA7dthwwaYNavxuZW0W0UeGoKJE2Hy5PjXtlu9\n6O+3nmxHE1Ht21EXzdgKaD9dNMLH2J+FJXuei82b/z5wZloCbd5sr2ZTpjQ+t5J2M3ADAzBzJnQ2\nEQKs3XTRbK8epIso0oWj3XTRCJ+XnzOA12Dp38BycN4B/FsaAoU3r9leSzvdPFVkh3ThkC4c0oU/\nvn3GkRrbiaOb52hFF+22eEb1wtHsIiJoT12oXvjh07NfgoU6+DE2r/5vsEHbVGilIs+cCevXm6+7\nqytZubJAjdrRii704HO0oy5UL/zwMfaXYPPpj8AWUJ2OBUNLhVYqclcXzJhhvu45c5KVKwta0cXU\nqfbQ27wZuruTlSsLWu3B9ffbjJ5m3IPjDfVmHdKFP/XcOEsj2wcB/4r56eMa+q7gmsoEzFVp5eZB\ne93AVnTR0SFdhEycaA+89c0E5R6HtKKLGTNg0yabvtkOJGHsy4nHABif1DP2h0S2z27hN84CHsQz\nrIKMvUO6cEgXjlZ00dlpU3nbZcphK7ro7jZvwJBvwPack3Zezz2ANwHfpnGiFECNOkoSulCjNlQv\nHNKFo5100Yh6Pvs9MLdNB7B7ZBusl+4z1/5SLL7OTF+B+vthQQuZb9vp5pVKsNdezV/fbrpQozak\nC0dSuthjj+RkGq/UM/afwLlelke2fSNdngg8i/nr+3wFKpXg4IN9z96RdurNtrI6ENqrUSehC9UL\nQ7pwtJMuGlHP2C9tsezXAidhbpxurHf/PeB90ZMWL1784nZfXx+lUp8MXIB6cA7pwiFdOIqii2XL\nlrFs2bKWymgifBBfAAYwP/zzdc67MPgAHA2cS4Whh9HGHuDTny7GzfOh1YrcTvOIi9KofWhlbjm0\nny6KUC/6+vpGxfO/+OKLY5fRzADtH7Gol5fFvE6zcWIiXTikC4d0YZTLLihcs7SLLnzwMfZHVOz/\nBIuN894Yv3Mr5tJpSKu9lnbrzaoiG6oXxvbtsHGjrRZvlnbRxYYNMGmSfZqlXXThg4+xv7zKsVSC\noIF6LSGtJGUIaRddbNpkvbhmIqGGtIsu+vubj4Qa0i66aNVWQPvowod6PvvDsEHWucDHcdMuZ2Cr\nYhNn61b7NJOUIaRdbl4rSRlC2kUXrURCDWk3XbSCdOFoF134UM+UTMIZ9hmR44PAKWkIE76qq1En\nV5HbYVqZGrVDunBIF/GoZ+xvDT5LgMfHQphW58xC+9w8VWSHdOGQLhzSRTx8nARLqxwrA8cmK0oy\nN2/2bHOBjIy05tfMGj34HEnpoh3ecqQLh3QRDx9j/4nIdjdwMrAtDWGSMPYTJlh43/Xrm8vdOl5I\nQhfTp1uI4+Fhi/yYV5LsweU9zLF6sw7pIh4+xv6uiv3fYnPtEyeJmwfuBhbd2Hd0uKllu+ySjFxZ\nkIQuJk+2jsDQkA1855VWp6CCtYsNG/Kf5EfGPh4+jo45kc/OwAnECGwWh6SNfZ6RLhzShSMJXXR2\nuiQ/eSYJXUyZYi7fzZuTkWk849Ozvxu3+nUbsBr4UBrCqFE7pAtHqQQLF7ZeTjtEOCyVYO+9Wy8n\n1EWeM7ol9fYb6mLXXZORa7ziY+x70xYipFSC+fNbL6cdVsWVSrD77q2X0y7G/pBDWi+nXepFEp2A\ndtFFqy4tcLqQsYcpwN/jctDeBlwBJP7iUyrB/vu3Xk67GDj17A3pwiFdOKSLePgY++9hC6nC5CXv\nBq4E3p60MLp5jiR1kfepZaoXDunCIV3Ew8fYHwgcENn/NZZT1odubGHWZGxF7n8DF9Q6WTfPIV04\npAuHdOGQLuLhMxvnbixOTsihWOYqHzYDxwAvAw4OtiujaL5IEoskoD1uniqyQ7pwSBdGuSxdxMXH\n2L8KuB0LmbAa+F1wbAVwv8f1Ye72SVicnRdqnSjXhUMPPkeSushzvRgZSW6xYN51sWmTrRHo7m69\nrLzrwhcfN84bcBEvQ8pVjtWiE3s7WIQN7NZ0AelJbYRJGTTrwqKgDg8nsxAq7/UijISaxEKonh5Y\nvbr1crIiKVsBVs6aNcmUNZ7xMfafY8dEJVdWOVaLEcyNMwu4CUs+viz8MkxLODICGzf2MWNGn2ex\ntcl7o96wwVZ8JhHiIO+6SCISakg76CJJAyddGD09cL+PjyJDxioH7UFVrnllE781APwccwEtCw+G\nxv4vf4Gvfz2Z4GWqyA7pwiFdOKQLRx50kXYO2guB9cBLg7/h51nges/ydwbCZQ9TgNcD91Q7sWg3\nrx7ShUO6cEgXDukiPvWM/RewpCVfCf6GnznA+Z7l74pN1bwXuBO4Abi52olJrYYDK6e/33zfeSRJ\nXeR98CnpepHnRp2kgWsHXahexMPHjXMjcFSV47/xuHYF8AofQZKsyGES4g0bLOBT3khSFzNnWoLq\nvEY4VA/OIV04pIv4+MazD/vI3cCrsXn2iSYvSfLmgbuBRTf2nZ1m8Pv7YaedkilzLElSF1Om2Nve\npk2tJS/PiqR79gMD+U3yI2MfH5/bfCLwluDzemzANnHHQFJTDUPyfAPTevDlkSR1EY1wmEeS1MWE\nCTaNc3AwmfLGmiR1MX26TfHdujWZ8sYrzTzTnwQSCFc2Ghk4h3ThkC4c0oUj6U5AEfz2Pm6cyyPb\nndiced9wCd6USsm6GfI8MNnfD/vtl1x5ea7I/f1w4IHJlZf3epHUoCTkXxdJP/j6+2HevOTKHG/4\nGPvljE5e8kMsfEKilEqwzz7Jladei0O6cEgXDunCkWdd+OJj7JdiUSv3xYz+w2kIopvnkC4c0oVD\nunBIF/HxMfZ9wH9igdAA9gTej4UuTgzdPId04ZAuHNKFQ7qIj4+xvwQ4Htej3xe4Gs/5874kuUgC\nrKxHHkmuvLEkaV3kuSKnUS/yrIskDVzedaF6EQ+f2TgTGO26eQS/h0Qs9KR2SBcO6cIII6GqEwCb\nN9siwalTkyszr7qIg4+xXw58G3PnHBNs35W0IGrURpJJGULyqovhYVsAleTCuLzqYv16WwiWRCTU\nkLzqImwfSURCDcmrLuLgY+w/CvwfcCbwj8ADwbHESDIpQ0heb97QUHJJGULyqov+fqsTSa7wzKsu\nku4AgHQRJa+6iIOPO2Yz8NXgE5cFWMLyXbCZPN/EEpePYmDAem9Jxm7J681TRXZIFw7pwiFdNEfi\nvvcKhoFzsKiX0zGX0K+wN4UXSevm5XHBSNKLRSC/g09p6CLP9SJJfz3kWxeqF/FJOwTS05ihB9iA\nGfndKk9K80mdtzDH6rU4pAuHdOGQLppjLOPd9QIvx+LajyKNm9fdbb7eTZuSLTdt0tDF7NkW8Gpk\nJNly00aN2iFdOKSL5vBx49zA6ATjldsneZQxHfgRcBbWw3+RxYsX88ADsG4dLFs2OvVWq4Q3MMkp\nWmmTRkXu6rLIfgMDyZedJmnoYto0m+WzdavlPMgLabo6y+VkZ7akTRGN/VjloF0FzAO+jxn5U4Fn\ngJ94/sZE4L+C639a+eXixYv55jet95mgnQfcDdx992TLTZM0KjK4hl10Yx+NcJinoFdp6GLiREts\nn7ckP6USLFiQbJkzZthMuG3bLPzzeCPtHLQhhwPvxHr412PG/kgsXEKjkAkdwHeAB4HLap2U9Gq4\nkDwOTKali/Hec6mG6oUjrU5AXnWRdL2IJvlpV3yM/VRgUWR/7+CYD4cDp2GLse4JPidUnpRmbzaP\nFVm6MKQLh3ThkC6aw+eF5RzgFsydAzbQ+mHP8n+LxwOlVIKFCz1LjEEeb54qskO6cEgXDumiOXyM\n/S+w4GdhOo2HgC1JCpGWLzmPN08V2SFdOKQLh3TRHD5unGlY0vGPAfdhIY5PTFII3TyHfLMO1QuH\nxnIcqhfN4WPslwBbgdcG+2uBzycpRNozUPKE3nIcaepC9cKQLhx51EUcfIz9IuBLmMEH2Ji0EHpS\nO6QLh3RhpBEJNSRvuhgehi1bbN1I0uRNF3HxMfZbgCmR/UUk7LNXRXZIF8b27Tb/O8lIqCF508XQ\nkM39njw5+bLzpovQnZXGIrC86SIuPsZ+MTZIuweWbPzXwCeTEmBkxFZ2yh9pSRlGRixuedLk7RU1\njISaZHjjkLzVi7Q6ACBdRMmbLuLSaDZOJ9ADnAwcGhw7C3guKQHWr7dwBmmsWsvbzUsjKUNIXnWR\nBtKFQ7pw5E0XcWlkYkeA84BrgJ+lIUBaswwgfzNQ0tRF3iqy6oUjTQOXR12oXjSHz0vyr4BzsUQk\ncyKfRNCT2iFdOKQLh3ThkC6ax8d58i4suuU/RI6VsbAJLZNmcK6pU22gb/PmZNP8pUXaPbg8RThU\no3ZIFw7ponnq9ezfHvw9Ftir4pOIoYd0b15HR75uYJq6mDjRHnjr16dTftKkqYsZMyzPwfBwOuUn\nzVi49/KS5EfGvnnqGfsLg78/aqH872LhkFfUOiHNmwf5uoHShSNNXXR22pTOvMxOSlMX3d2W72Bo\nKJ3ykyZNXcyaZZ2h7dvTKT9r6hn75zF//d5YeOPo53rP8pdQJcpllLEwcHlp1GnHm8+TsR8LXahe\nGNKF0dVlb32Dg+mUnzX1fPZvAl4BXAl8BZedCsxn78NtWJTMmqg36yiVkk/KECVvuujtTa/8vOli\nLNpIHpL8jJUu0vyNrKhn7LcCd2Ax6Z9NS4BSCXbbIQV5cuStUR98cHrl56kHp06AQ7pwSBfN4zP1\nMjVDD7p5UaQLh3ThkC4c0kXzZJ5t8Y9/XExnJzzyyI55FpMgTzdPFdkhXTikC0dRdTFWCcdTZaed\nFvOxj8Fhh6VT/uzZ8OST6ZSdNGlOsYPxW5GrkbYu8rRaMm0DlzddFLFejFXC8f2Am4EHgv2DgU95\nln8V8Dss09Ua4AOVJ2gGiqOovZZqSBcO6cLYts2miM6cmd5v5EUXzeBj7L+FzbkP49mvAE71LP9U\nYDdgMhZuYUnlCarIDvXgjDQjoYbkpV5s2mQLntJcAZ4XXfT3m6FPIxJqSF500Qw+apsK3BnZLwOJ\nrT1Uz97YutU+aSRlCMmLLgYHYdq0dCKhhuRFF2lGQg3Jmy7SJC+6aAYfY/8csE9k/xRgXVICTJwI\nkyYlVdqO5GW6YX9/ekkZQvJSkdPuAEC+6oV0YUgXreHTd/oY8E3Md78WWAW8JykB9KQ2xqrXkoeK\nrB6cQ7pwSBet4WPsVwLHAdOxVbSJhtLSzTNUkR3ShUO6cEgXreHjxjkbmIklGr8MuBt4Q1ICpH3z\npk+3BMXjPcLhWFbk8R7hUI3aIV04pIvW8DH2HwQGgeOxpCXvA76YlABp37yOjnzMQhmLijx5sg16\njvcIh2Ohi1mzLKH5eI9wKAPnkC5aw8fYh0OGb8aCov0pSQHGIuBQHm7gWAVfki6Mzk6LcDgwkO7v\ntMpY6GLKFJvuunlzur/TKmOhi9mzrU6MjKT7O1ngY+yXA7/EomDehLl0ElNFmnOpo7+RBwM3FrrI\ni7FXvTDGwsDl6e037XoxYYI9/PKS5CcOvm6cC4BXYX77iVRZCdss6s0aY9Wzz0ujVr0w1AlwqF60\nRr3ZOK/Exa2P5pztwD+efUN084xSCfbfP/3fyYsuVC8M6cIx1rpIM59CFtQz9l+lvlE/JgkBVJEN\nNWqHdOGQLhzSRWvUM/Z9YyHAWN288b6YaCxWB4J0EUW6cEgXjjzoohl8fPbvx6ZbVn58OAF4CPgz\n8MlqJ+hJbaxZs0y6CHjqKeki5OmnpYuQZ5+VLlrBx9j/VeRzFLAYOMnjui7ga5jBPwCLgLmDV1o3\nz3juOVXkkBdekC5C+vulC7CpkENDy5g1K/3fGu+6aBbf2DhRZgPXeFz3auBRYHWwfzXw18D/RU9S\nRTY2b5YuwFb3jqUuVq9O/3eaZetWM3LTpqX/Wz09sGZN+r/TLAMDFjCxqyv93xrvbaRZmgkiOwTs\n5XHe7ljCkpAngddUnjRWjfpPf4JLLkn/t5qhXLZwDjNmpP9bPT1wzz3jVxfDwzbXeeLE9H+rpwf+\n8Ifxq4uNGy2OfZqRUEN6euCaa8avLkqldGP6R+npgZtuGh+6+PCHkwt77lONbohsd2IumWup4YOP\ncDLmwvnbYP80zNj/Y+ScR4FFXpIKIYQIWcno0PMN8enZfyX42wFsAx5ndI+9Fk9h2alCFmC9+yix\nhBVCCJE8U4BzgK8DH8FWzsZhAvb06QUmAfdSZYBWCCFE+tTr2f8nlnf2NuCNmPvmrBhlb8MGd2/C\nZuZ8h4rBWSGEENmzIrI9AbgnK0GEEEK0Rr159ttqbCdFwwVXbcx3gWcY/UCdA/wKeASLMjoG4a/G\nBQuAW4AHsPDZZwbHi6iPbuBOzOX5IPAvwfEi6iKkC+tohhNFiqqL1cD9mC7+EBxLTBfbsRSE4Wdb\nZHuw2UIDurCZOL3YWEDR/PlHAi9ntLH/MnBesP1JEkwQM86ZD7ws2J4OPIzVhaLp463YxIf1wCHY\n2/QdwBEUTxdRPg78ALg+2C+qLlZhxj1KLnRxGPCLyP75wadI9DLa2D8EzAu25wf7eeR07P/aCKwD\n/h2Is+5xCDiX5PSxGji2zvcPA++I7B+O5WuoPDaI34rzZlkJvCWyPxX4I3Ag7VM34rIH8L9Y0MWw\nZ19UXawCdqo4FksXaVbeelRbcLV7RrKMF+Zhrh2Cv/PqnDte+Sesd/FPWJKbQ4GF2Kumz2yuXmzm\nVliJk9BHmfrrSW7FwoCEHBX8fuWx35Fg0p4KOoA9MddNJ/am+wzOvdVIF1m147S5FPgEo/XeDu2k\nGcrYg+8u3NqlXOjiZOBbkf3TgMszkiUrehnds69coP3C2ImSCDMxF8QpFcenAc/iEt4sBT4b+b4P\ne/BPB57H3IdDWOU+F9PTCPam8BSwFnuYhNQqDyyNZlje+qC8Sk7DfKEhP8eC/0WP/Q9wYbB9HfbG\n0o89KA4Ijr8mOB59sLwVuC/Y7sTeXh8F/oKFHOkBJgMbgv9xAzaGBRaLajCQezuje/1bgCsCuTYA\nx2FvMOcGcq/HZr/NA24EBrAHbp782ydi077B7mnYs897O2mWXYO/c7HOwJHkRBeHMtqNcwHFG6Tt\nZUc3zvxge1fy93p6AjBM9V7mUuCHwfYS4DOR7/ow43wTcDb2unosTh+9mCEcwNZ+HIQ9PI5rUF5I\nWF4tFmLGdHYg+zPYQOkTkWP9mO8czE01DXtTuZTRs9QeBV4X2b8O51M9C3s72C249hs4nRD8j2GC\noIlBWb8Mrn8CM+D7YnVjIJDpsOD8ycH/+TvMGOwW/B93Y/7/ycDNwKfr6GG88QXsPq7CHqIbsYd3\n3ttJElyEdXhi6SKr17+7gJfgXtvfiRuAKSrXYz1Kgr8/zVCWZtgZ67FWc3U8zWh/Y6VbZQ7mwrgs\nciyqD7BAepuwGTtLsCiqtcqLw+OYMT0KM4x/BjYDt0eOTcJmyYA9uDZiD7aLg+/DqEZXReSaga1P\nuSrY/wjwKezNJLz2FEa3wR7sAXMo9kDpxnJAX40Z/1MxnTyB1Y/fB9dtCf5eDjwX/MZtwff3Bd//\nBJsUkBcuxGZq7QW8C/g18F7y306aYSqujk0Djsc6irF00UwgtCQo+oKrq4CjMQO5ButxfRGLOfQh\n7JX8HbUuHqf8Bft/OtnR4O8afF+Nl2KV+Risl7wb5sII9fERzJhfFLnmieC6pPgNZtifCLYBfhs5\ndidmoLuAz2NGei72f5ax/3s9dl9vBz4KvA0z1OFbRi9mcKO62Ya5WtYF+7tg7s052KD2DViP/B7g\n7diK9j9grppqIUueiWxvqtjfjLnK8kqYNS/v7aQZ5mF1B8xm/wB767uLGLrIytiD+RJvzPD3s+TU\nGsdfV+N4Hvg91oM8GXNfhEzHXDwXBPsbMeMe8hw2QB9Ov3wMm4XyAqaP3uDYLOwNAWww86ka5c1n\nND75kn+DPVQex9ZAgPWM3x8cCx8A78ZyORwXHJ8dyBm+WTwYHH9jcG7UTfMENm7xe2rzMPAKzB97\nLS4u1QvBdQ9hLqslHv8TtPbGM564NfiAqxdFYhWufUSJpYt2HcUXY88A5pq4HHgD5nfuxYzWGszf\nCja49CbMZTEf89NHeYbqkVA/hfnsD8T85mFOhWbLi/IbzMgehfXMwV6T98beOEJjPx17oL2AvU5/\noUpZPwxkOJLRD71vBOfvGezPpXYSoDuwQeXzMD32YQOWVwfft4sRF0LkmA9ihnII64lfweh59pMx\nozWAGeqzsV5vyElY77iELajpxVwfZ2C9+XWMnlUTt7xarA2uj/JzzLhPCfanYX7RQay39V5scHfv\nyDULgmPR0OBgBvocrHc+iPngPxf5vrKcA4Bl2EDsn7DEPyGVg9Kw40D0lYwekP0Q9uovCkqjHsIu\nmK/wKKzRlXGvtddhsyIasRqr3Nsxv+ermxNVFJRezI0zgfTmuQvR9tTz2X8He/29EXsFDecQ74oZ\n7Gux3skZDX6jjL2Gjss5oEIIUXQOTuicast8hfClF3sr1PiSEClxHqMzTTXLY9jUsegyXyGEEGNI\nPTfObti1XjpjAAAUqklEQVSKvMexGQbXYdPk4nI45gKaiy3Zfgib1saiRYvKK1eubKJIIYQoNLFz\n0NZ7NT4bW0r+Kcxdcz+2COr9uNVcPoQLRp7DFga8OEC7cuVKyuWyPuUyF110UexrXve6MjfdlL3s\nSX6Gh8t0dFzE9u3ZyzIePs3Ui0MOKbN8efayJ/lZt67M1KnxddGuHxpPJ96BRn7QEWz6199h4UYv\nwR4Cz9S5JkqtZb4iAUol6OnJWopkmTABJk6E9euzliS/tGO96OmBTZug7LNETlTFdwXtwVh8indg\ny94vqH/6i9Ra5isSoB0bNUB3t/1vs+JEwRcv0o71YvJk6OqCjRthep6DPmRIPWO/L2bg34n18K/C\neuaPxSi/1jJfUUFfX1/sa9qxUQPMndtHqQS9vVlLkj1x68W2bTA0BDNnpiNPlsyaZfVCxr456hn7\nX2AG/p3YCj6RInEb9cgIDA7C7DxFKPdkwQJr1CJ+vejvN0Pf2YYTVefPt3qxIIk5ggWknrHfh8Yr\nFjvwCzQlEmZwEKZNs1fbdqOnBxn7Junvb8+3PbD/q78/aynyS73n/y1YSrB9q3y3H5Zs5NYq34kx\noL+/PXv1YP+XGnVztKtrD9QJaJV6xv54LE3c17Hpk49giR3WAV/DZuQULdTouEGNWlSjVGrvToDq\nRfPUc+NswWJ7fxdL2hCGPAjzhIoMkbEX1VC9ELXwnXp5EBb5soytfr2v/ukibdq9Ua9dm7UU+aTd\n64WMffP4jNmfhc2Pn4vNm/8+cGaaQonGqFGLaqheiFr49OzPAF6DpX8DywF5B/BvaQklGqNGLapR\nKsGcOVlLkQ6qF63hOxt3pMa2yAgZe1EN1QtRC5+e/RLgTuDH2Lz6v8ElZRYZUSrBHntkLUU6qFE3\nj4y9qIWPsb8Em09/BDZAezoWn15kiBq1qIbqhahFPWO/FDPsYLNx/rXJ3+jCEpc8CbylyTJEBe3c\nqMNFVeUydDTKkixGoRW0ohb1fPaHRLbPbuE3zgIeRGEVEqWdV9BOmmSfjRsbnytG086dAPXsWyPt\ncEl7AG8Cvo35+0VCtHOjBjXsZmnnFbTd3fa2t2lT1pLkk3punD2w6ZUdwO6RbbBeus9c+0ux+Dpt\nGHA1W4pi7BXh0J92joQK5tIL68WUKVlLkz/qGftP4FwvyyPbvpEuTwSexQZz+5qUT1ShXG5v3yyo\nZ98MAwMW670dI6GGhPVit92yliR/NBqgbYXXAidhbpxurHf/PeB90ZMWL1784nZfX19TSTyKxoYN\nlrln4sSsJUkPGfv4tPvbHhS3Xixbtoxly5a1VEYzfvQvAAOYH/55z2uOBs5lx9k45bKSSsbmiSfg\n8MNhzZqsJUmP00+Ho4+GD3wga0nyw/LlcMYZcE8bT4x+85vh7/4O3lLweX0dNk0tlv1uZoD2j1jU\ny8tiXiernhDqwYlqqF6IevgY+yMq9n+CxcZ5b4zfuRVz6YgEUKMW1VC9EPXwMfaXVzmmIGgZokYt\nqtHug/aghVWtUG+A9jBskHUu8HGcf2gGtipWZEQ7z6UOUVai+BSlE/D441lLkU/q9ewn4Qz7DGB6\n8BkETklfNFGLojRqGft4qF6IetTr2d8afJYAepaOI/S6LqpRKsGee2YtRbrI2DePT9TLpVWOlYFj\nkxVF+FIqwX77ZS1FuqhRx0fuPVEPH2P/ich2N3AysC0dcYQPel0X1VC9EPXwMfZ3Vez/FptrLzKi\nSI1aYY79KVK9EPHxMfbRjJadwKtQYLNMKUKj7u6Gzk6LcDh1atbS5IMi1AsZ++bxMfZ341a/bgNW\nAx9KSyDRmCI0anANW8bejyLUi2nTYHgYtmyx+FDCHx9j35u2ECIeRWjU4Iz97rtnLcn4p1y2qJft\nPkAbhjnu74d587KWJl/4GPspwN/jctDeBlwBbE5RLlGDcrkYsy5Ar+xxWL/eYry3cyTUkLBeyNjH\nw8fYfw9bSBUmL3k3cCXw9hTlEjUYGrJ45d3dWUuSPppm509R3vZAnYBm8TH2BwIHRPZ/jeWU9aEb\nW5g1GVuR+9/ABXEEFKNRoxbVUL0QjfAJhHY3Ficn5FAsc5UPm4FjgJcBBwfblVE0RQyKsHo2RKto\n/ZGxF43w6dm/CrgdWIP57PcEHgZWBPsHN7h+KPg7CYuz80JTkgpAjVpUpyjjOCD3XrP4GPs3sGNG\nlHKVY7XoxN4OFmEDu74uIFGFohn7VauyliIfFK1eyNjHx8fYf44dE5VcWeVYLUYwN84s4CYs+fiy\n8EvloI1H0Rr13XdnLUU+KFq9WLs2aynGliRy0PoY+4OqXPPKJn5rAPg55hZaFh6MGnvRmKI1avXg\n/ChavXjggaylGFsqO8IXX3xx7DLqDdBeCKwHXhr8DT/PAtd7lr8zEHoSpwCvB9o4HXL6FK1Ry9j7\noXohGlHP2H8BS1ryleBv+JkDnO9Z/q7YVM17gTuBG4CbmxVWqFGL6miWlmiEjxvnRuCoKsd/43Ht\nCuAVsSQSddGsC1ENdQJEI3zj2YeB0LqBV2Pz7JW8JAPUqEU1VC9EI3yM/YkV+wuAf01BFuFBkRr1\n1KmwfTts3lyM8BCtUKR6IWPfHD4raCt5Etg/aUGEH0XyzUYjHIr6FMnYz5hheQ6Gh7OWJF/49Owv\nj2x3YnPmfcMliIQpUqMG14ubPz9rScYvRYqECtYJmDXLOgFz52YtTX7wMfbLGZ285IdY+ASRAUU1\n9qI2GzdaaOMiJfMI64WMvT8+xn4pFrVyX8zoP5ymQKI2mzfDyIjFLS8KMvaNKVoHAFQvmsHH2PcB\n/wk8HuzvCbwfC10sxpCwURcpAbcadWNk7IUPPsb+EuB4XI9+X+BqNH9+zFGjFtUo0qB9iAbu4+Mz\nG2cCo103j+D3kBAJU6RBuBAtrGqMOgHCB98B2m8D38fCGr8HuCtNoUR1itqon3wyaynGN0WtFzL2\n8fDp2X8U+D/gTOAfgQeCY2KMUaMW1VC9ED749Ow3A18NPnFZgCUs3wWbyfNNLHG5aAI1alGNotaL\nRx7JWop80cwK2jgMA+dgScsPBf4Brb5tGg3EiWoU1dirExCPtI3901h4Y4ANmDtot5R/s21RoxbV\nUL0QPqRt7KP0Ai/H4tqLJlCjFtXQLC3hg4/P/gZGJxiv3D7Jo4zpwI+As7Ae/osoB60/MvaiGqoX\n7U8SOWh91mL+GzAPN/XyVOAZ4CfB941W0k4EfoYlQbms4rtyuVze8QpRlaOOgs9+Fo4+OmtJxo5y\nGSZNgqEhi/8iduSAA+C66+DAA7OWZOwolWCvvYo7ntNhy+hjraX36dkfzugE49djc+/P9pEJ+A7w\nIDsaehGTIvbgOjrcK/suu2QtzfikiPVi1izYsMHyHXR1ZS1NPvDx2U8FFkX29w6O+XA4cBpwDJZo\n/B7ghDgCCkcRfbMg/2wjimjsOzstrv3AQNaS5Aefnv05wC3AqmC/F/iwZ/m/ZWwHgduaIjZqKJ5/\nNg6bNtnfIkVCDQnrxZw5WUuSD3yM/S+w4Gf7BfsPAVtSk0hUZetW+0yfnrUkY4+MfW2K2gEA1Yu4\n+PS6p2FJxz8G3IeFOK7MSytSJnThFCm8cYgadW1k7LOWIj/4GPslwFbgtcH+WuDzqUkkqqJGnbUU\n4xPVi6ylyA8+xn4R8CXM4ANsTE8cUYsihkoIUciE2sjYZy1FfvAx9luA6PDPIuSzH3PUqLOWYnxS\n1BlaoFlacfEx9ouxQdo9sGTjvwY+maJMogoy9llLMT5RvchaivzQaDZOJ9ADnIxFrQQLefBcmkKJ\nHVGjzlqK8UnR3XurV2ctRX5oZOxHgPOAa7CQByIj9LqetRTjk1IJFi7MWopsUCcgHj5unF8B52KJ\nSOZEPmIMUc8+aynGJ6oXWUuRH3wWVb0Li275D5FjZSxsghgjSiXYv6BpX9SoayNjn7UU+aGesX87\ncB1wLPDY2IgjaqFGnbUU4xPVi6ylyA/13DgXBn9/1EL538XCIa9ooQxBsRv1zJkW4njbtqwlGX8U\nuV7I2MejXs/+ecxfvzeWwCSKb9KSJcDlWNJx0QJFbtSdnWbw+/th552zlmZ8UeR6MXs2DA7CyIjV\nEVGfesb+TcArgCuBrzA6UL5vxpHbsCiZokWKPMUO3CpaGfvRFNnYd3XBtGlm8Is6Uy0O9Yz9VuAO\nLCb9s2MjjqhFkRs16JW9Glu2wPAwTPXNLtGGhNNyZewb4/PyI0OfMdu2mc96xoysJckOGfsdCd/2\nihgJNURxk/zxmXqZKko43pj+fvNZF9kvqYVVO1L0tz0oTicgiYTj48rYi+qoURenUcdB9aI49aKy\nI3zxxRfHLsOnr7gfcDPwQLB/MPApz/KvAn6HZbpaA3wgroBCjRqK06jjoHqhehEHH2P/LWzOfRjP\nfgVwqmf5pwK7AZOxcAtL4goo1KhBjboaqheqF3HwMfZTgTsj+2VgOB1xRDXUqNWoq6F6oXoRBx9j\n/xywT2T/FGBdOuKIaqhRq1FXQ/VC9SIOPgO0HwO+ifnu1wKrgPekKZQYjRq1GnU1SiXYffespcgW\n1Qt/fIz9SuA4YDq2inZ9qhKJHejvh512ylqKbNF86h0pleCgg7KWIltk7P3xceOcDczEEo1fBtwN\nvCFNocRo1LNXo65G0UNogDoBcfAx9h8EBoHjsaQl7wO+mKZQYjQy9jL21VCYAC22i4OPsQ8XY78Z\nC4r2p/TEEdVQo4ZZs1yEQ2GoE6BOQBx8jP1y4JdYFMybMJeOmtwYokZtEQ6nT4eBgawlGT+oXjg3\nTtk3Dm+B8Rmg/SDwcmygdiOwE1oJO6aoURthL066MKQLmDgRJk+GDRuKHSjQh3rG/pW4uPXRnLMd\n+MezFwmgRm3old0xPAybNsnAgasX0kV96hn7r1LfqB+TsCyiCtu3w/r15rMuOjL2jv5+G8cpcnjj\nkLBe7Lln1pKMb+oZ+74Eyj8Bm67ZBXwb+FICZRaKgQHrsXR1ZS1J9sjYO/S251C98MNngPb92HTL\nyk8juoCvYQb/ACwo2v7Nidn+1IpVXcRGXUsXRWzUqhcO1YvW8DH2fxX5HAUsxi/Z+KuBR4HVWOC0\nq4G/bkbIIqBG7VCjdqheOFQvWsM3Nk6U2cA1HtftjsWwD3kSeI2nXCJAqyQdWi3pUL1wqF740Uym\nqiFgL4/zvGbsvOUtTUjQhjz8MCxfvuPxp5+GhQvHXp7xyJw58K1vwZ8KtKyvVr144gl47WvHXp7x\nyJw58B//AbfckrUkybN0aXJxsXzG8m+IbHdi/vdrgU82uO5QzOVzQrB/AbYYKzpI+yiwyEdQIYQQ\nL7KS0aHnE+Ho4NMHHIFlnPJhQiBQLzAJuBcN0AohxLhjCnAO8HXgI8DEJsp4I/Aw1oO/IDnRhBBC\nxKGeG+daLO/sbZjRfhw4ayyEEkIIMXasiGxPAO5JuPwTgIeAP9PY/99ufBd4htE6ngP8CngECzxX\nlDiXC4BbgAewiKpnBseLqI9uLN/zvcCDwL8Ex4uoi5AuzPaEY4dF1cVq4H5MF38IjiWmi0rjnqSx\n78JcO72Ye6ho/vwjseByUWP/ZeC8YPuTFCdnwHzgZcH2dMzttz/F1cfU4O8E4A5snKyougD4OPAD\n4Ppgv6i6WIUZ9yiJ6WI7loIw/GyLbA82W2jAYcAvIvvnB58i0ctoY/8QMC/Ynh/sF5GfAq9D+pgK\n/BE4kOLqYg/gf7E4XGHPvqi6WIVFHI6SC12cAnwrsn8acHlGsmRFL6ONfXQNYEfFflHoxcaGZlBc\nfXRib7rrsZ4bFFcX12FvwEfjjH1RdfEY5l25C/jb4FgsXTSzqCoJFCK5PmWKp6PpwH9hkwAqk9oX\nSR8jmFtrFpYsqDK6bFF0cSLwLGbg+mqcUxRdABwOrAPmYn76yl58Q134xMZJg6cYPV9/ARZOocg8\ng72KAeyKVfSiMBEz9Fdibhwotj4ABoCfY3kliqiL12IxuFYBVwHHYvWjiLoAM/QAzwE/wWKPxdJF\nVsb+LuAluAVX78QNwBSV67EIowR/f1rn3HaiA/gONvvkssjxIupjZ9yMiinA67GebRF1cSHWCdwL\neBfwa+C9FFMXUzHXJsA04HjMBZwbXRR5wdVVwFpsHcMaLM3jHGwwqmhTyo7AXBf3YobtHmxabhH1\n8VLgbkwX9wOfCI4XURdRjsZ1Bouoi72wOnEvNj05tJdF1IUQQgghhBBCCCGEEEIIIYQQQgghhBBC\nCCGEEGI0s4CPRvZ3wVaZxuFi4LjEJGqNM7GFQkIIISL0Mjp43GeAt6f4e2nHjpqBi00uhBAi4Gpg\nCFtl+2UsxEIY//10bLn4L7F4Kh8DzsVWpP4e6AnOWwqcHGz/FXA7tjLxDiwY2+nYas2bsaQqPUG5\n9wXlvDS49mjcit+7sWXsYKte/xCcvzgi+/uCY/cC34scvxELYyyEECJgIa5nP5/RvfzTsaxn07AY\nMwPAh4PvLsGl1FwCvA2LybQSCzQGZui7gnLW4JaeXw78v2D7GFwSn+uxvAxgD5wuLGbJfwTHOrGw\nvEdixvxhXPKJ8MED5laKuqaESIWsQhwL0QzRnMkLcZEAwcK73gJsDD79uBjoK4CDK8rZL7h+eXBs\nQ6ScXwXXg4WWfVuwfQuWQGIG9kZwKZZF6cdYJNfjg0/4QJgG7BP8vRZ4ITgejTu+Fti7wf8tRMtk\nFfVSiCToqNjfEtkeieyPsGPHpl7s740NfqcMfAn4EBad8nbs4QGWN/blwWdf7E2iWhnRsosSk11k\niIy9yBPrcaFeH8fF8obaxrTad2XMrbIr8Krg2AzMFVN57m3Ae4LtPiye+AZgEZYk/ctY+sD9sGQj\nH8T573fHkk38GhtIDt040Vyiu2LJpIVIFblxRJ54HutFr8AGNidghnUjO2bqqdyu7D0PY3kULsd6\n50NY/PjKcxcD38UGVzfi4oefhfnwR7CwszcGZe6PDeSCPZxOwwaSPw/ciuV2vht7KIAloTjX8/8X\nQohCshgz2HllJvZWIIQQog5zgf/JWogWOBPr+QshhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIcYP\n/x/a2OqnzxDEugAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f5522d5d710>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Output freq Fo is 2000 Hz\n",
+ "Output freq Fo/2 is 1000 Hz\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 8.3\n",
+ "#The V..F converter of figure 8-12 is initially adjusted for a 10 kHz full scale\n",
+ "#output frequency.Determine the output frequencies Fo and Fo/2 if the output\n",
+ "#signal Vin=2 V.\n",
+ "%matplotlib inline\n",
+ "import matplotlib.pyplot as plt\n",
+ "from matplotlib.pyplot import subplot\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "import array\n",
+ "\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "Vin=2 # Input voltage\n",
+ "Fo1=2*10**3 # Output freq Fo when Vin=2V\n",
+ "Fo2=1*10**3 # Output freq Fo/2 when Vin=2V\n",
+ "\n",
+ "#calculation\n",
+ "import array\n",
+ "v=array.array('i',(0 for i in range(0,50)))\n",
+ "\n",
+ "\n",
+ "count=1\n",
+ "for i in range(1,50): #for 5 cycles\n",
+ " if count<4:\n",
+ " v[i]=5\n",
+ " else:\n",
+ " v[i]=0\n",
+ " if count<10:\n",
+ " count=count+1\n",
+ " else:\n",
+ " count=1\n",
+ "\n",
+ "\n",
+ "plt.subplot(211)\n",
+ "plt.plot(v)\n",
+ "plt.title('Output Waveform')\n",
+ "plt.xlabel('t(microsec)')\n",
+ "plt.ylabel('Pulse freq output,Fo(V)')\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "for i in range(1,50): #for 5 cycles\n",
+ " if count<10:\n",
+ " v[i]=5\n",
+ " else:\n",
+ " v[i]=0\n",
+ " if count<20:\n",
+ " count=count+1\n",
+ " else:\n",
+ " count=1\n",
+ "\n",
+ "plt.subplot(2,1,2)\n",
+ "plt.plot(v)\n",
+ "plt.title('Output Waveform')\n",
+ "plt.xlabel('t(microsec)')\n",
+ "plt.ylabel('Pulse freq output,Fo(V)')\n",
+ "plt.show()\n",
+ "\n",
+ "#result\n",
+ "print \"Output freq Fo is \",Fo1,\"Hz\"\n",
+ "print \"Output freq Fo/2 is\",Fo2,\"Hz\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 8.4"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Output voltage is 0.28 Volts\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 8.4\n",
+ "#The F/V converterof figure 8-14(a) is initially adjusted for Vo=2.8V at Fin max\n",
+ "#of 10 kHz. Determine the output voltage Vo if fin= 1 kHz.\n",
+ "\n",
+ "#Variable decclaration\n",
+ "Vo=2.8 #At Finmax of 10kHz\n",
+ "\n",
+ "#Calculation\n",
+ "Vo1=Vo/10 #Output voltage at Fin=1kHz\n",
+ "\n",
+ "#Result\n",
+ "print \"Output voltage is\",Vo1,\"Volts\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 8.5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f5522c75350>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#Example 8.5\n",
+ "#In the circuit of figure 8-25(a), Vin=200 mV peak to peak sine wave at 100 Hz.\n",
+ "#Briefly describe the operation of the circuit and draw the output waveform.\n",
+ "%matplotlib inline\n",
+ "import matplotlib.pyplot as plt\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import numpy as np\n",
+ "import math\n",
+ "import array\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "Vin=100*10**-3 # Input voltage\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "t=np.arange(0,math.pi,0.1) #time scale\n",
+ "v=Vin*np.sin(t)\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "plt.xlim(0,2*math.pi)\n",
+ "plt.ylim(0,0.1)\n",
+ "plt.plot(t,v)\n",
+ "plt.ylabel('Vin')\n",
+ "plt.xlabel('t')\n",
+ "plt.title(r'$Input voltage$')\n",
+ "\n",
+ "\n",
+ "#result\n",
+ "plt.show()"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.6"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter9.ipynb b/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter9.ipynb
new file mode 100644
index 00000000..117f377b
--- /dev/null
+++ b/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter9.ipynb
@@ -0,0 +1,813 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "# Chapter 9: Specialixed IC Applications"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 9.1"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resistance R2 is 31.6 kilo ohm\n",
+ "Resistance R3 is 3.27 kilo ohm\n",
+ "Resistance R1 is Open\n",
+ "Resistance R4 is 25.15 kilo ohm\n",
+ "Resistance R5 is 25.15 kilo ohm\n",
+ "Resistance R6 is 1.8 kilo ohm\n",
+ "Resistance R7 is 9.0 kilo ohm\n",
+ "Resistance R8 is 1.5 kilo ohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Example 9.1\n",
+ "#The FLT-U2 is to be used as a second order inverting Butterworth low pass filter\n",
+ "#with a dc gain of 5,cutoff frequency of 2 kHz and Q=10. Determine the values\n",
+ "#of the external components.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "dc_gain=5\n",
+ "f1=2*10**3 # Cutoff freq in Hz\n",
+ "Q=10 # Figure of merit\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "R2=(316*10**3)/10 #Resistance R2\n",
+ "R3=(100*10**3)/((3.16*Q)-1)\n",
+ "R4=(5.03*10**7)/f1\n",
+ "R5=R4\n",
+ "R6=1.8*10**3 # Assumption\n",
+ "R7=dc_gain*R6\n",
+ "R8=(R6*R7)/(R6+R7)\n",
+ "\n",
+ "\n",
+ "#result\n",
+ "print \"Resistance R2 is\",round(R2/10**3,2),\"kilo ohm\"\n",
+ "print \"Resistance R3 is\",round(R3/10**3,2),\"kilo ohm\"\n",
+ "print \"Resistance R1 is Open\"\n",
+ "print \"Resistance R4 is\",round(R4/10**3,2),\"kilo ohm\"\n",
+ "print \"Resistance R5 is\",round(R5/10**3,2),\"kilo ohm\"\n",
+ "print \"Resistance R6 is\",round(R6/10**3,2),\"kilo ohm\"\n",
+ "print \"Resistance R7 is\",round(R7/10**3,2),\"kilo ohm\"\n",
+ "print \"Resistance R8 is\",round(R8/10**3,2),\"kilo ohm\"\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 9.2"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resistance R2 is 100.0 kilo ohm\n",
+ "Resistance R3 is 2.96 kilo ohm\n",
+ "Resistance R1 is Open ohm\n",
+ "Resistance R4 is 10.0 kilo ohm\n",
+ "Resistance R5 is 10.0 kilo ohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 9.2\n",
+ "#Using the FLT-U2, design a second order inverting Butterworth bandpass filter\n",
+ "#with centre frequency f1=5 kHz and Q=10.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "f1=5*10**3 # Center freq in Hz\n",
+ "Q=10 # Figure of merit\n",
+ "R2=100*10**3 # Constant for band-pass filter\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "R3=(100*10**3)/((3.48*Q)-1)\n",
+ "R4=(5.03*10**7)/f1\n",
+ "R5=R4\n",
+ "\n",
+ "\n",
+ "\n",
+ "#result\n",
+ "print \"Resistance R2 is\",round(R2/10**3,2),\"kilo ohm\"\n",
+ "print \"Resistance R3 is\",round(R3/10**3,2),\"kilo ohm\"\n",
+ "print \"Resistance R1 is Open\",\"ohm\"\n",
+ "print \"Resistance R4 is\",round(R4/10**3),\"kilo ohm\"\n",
+ "print \"Resistance R5 is\",round(R5/10**3),\"kilo ohm\"\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 9.3"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resistance R2 is 100.0 kilo ohm\n",
+ "Resistance R3 is 2.96 kilo ohm\n",
+ "Resistance R1 is Open ohm\n",
+ "Resistance R4 is 10.06 kilo ohm\n",
+ "Resistance R5 is 10.06 kilo ohm\n",
+ "Resistance R6 is 10.0 kilo ohm\n",
+ "Resistance R7 is 10.0 kilo ohm\n",
+ "Resistance R8 is 10.0 kilo ohm\n",
+ "Resistance R9 is 3.33 kilo ohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 9.3\n",
+ "#Using the FLT-U2, design a notch filter with 5 kHz notch out frequency and\n",
+ "#Q=10.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "f1=5*10**3 # Center freq in Hz\n",
+ "Q=10 # Figure of merit\n",
+ "R2=100*10**3 # Constant for band-pass filter\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "R3=(100*10**3)/((3.48*Q)-1)\n",
+ "R4=(5.03*10**7)/f1\n",
+ "R5=R4\n",
+ "R6=10*10**3 #Assumption\n",
+ "R7=R6\n",
+ "R8=R6\n",
+ "R9=(R6*R7*R8)/(R6*R7+R6*R8+R7*R8) #Since R6||R7||R8\n",
+ "\n",
+ "\n",
+ "\n",
+ "#result\n",
+ "print \"Resistance R2 is\",round(R2/10**3,2),\"kilo ohm\"\n",
+ "print \"Resistance R3 is\",round(R3/10**3,2),\"kilo ohm\"\n",
+ "print \"Resistance R1 is Open\",\"ohm\"\n",
+ "print \"Resistance R4 is\",round(R4/10**3,2),\"kilo ohm\"\n",
+ "print \"Resistance R5 is\",round(R5/10**3,2),\"kilo ohm\"\n",
+ "print \"Resistance R6 is\",round(R6/10**3),\"kilo ohm\"\n",
+ "print \"Resistance R7 is\",round(R7/10**3),\"kilo ohm\"\n",
+ "print \"Resistance R8 is\",round(R8/10**3),\"kilo ohm\"\n",
+ "print \"Resistance R9 is\",round(R9/10**3,2),\"kilo ohm\"\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 9.4"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resistance R2 is 20.0 kilo ohm\n",
+ "Resistance R3 is 14.14 kilo ohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 9.4\n",
+ "#Using the MF5,design a second order Butterworth lowpass filter with a cutoff\n",
+ "#frequency of 500Hz and a passband gain of -2. Assume that a 5,-5 V power supply\n",
+ "#and a CMOS clock are used.\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "f1=500 #Cut-off freq in Hz\n",
+ "Holp=-2 #Passband gain\n",
+ "R1=10*10**3 #Assumption\n",
+ "Q=0.707 #Figure of merit Q is fixed for second order butterworth LPF\n",
+ "#calculation\n",
+ "\n",
+ "R2=-R1*Holp #Using Holp=-R2/R1;\n",
+ "R3=Q*R2 #Using Q=R3/R2\n",
+ "\n",
+ "#result\n",
+ "print \"Resistance R2 is\",round(R2/10**3),\"kilo ohm\"\n",
+ "print \"Resistance R3 is\",round(R3/10**3,2),\"kilo ohm\"\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 9.5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Capacitance C is 1.0 micro Farad\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 9.5\n",
+ "#In the circuit of figure 9-16(a), Ra=10 Kilo ohm, the output pulse width\n",
+ "#tp=10 ms. Determine the value of C.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "Ra=10*10**3 #Resistance in ohm\n",
+ "tp=10*10**-3 #Output pulse width\n",
+ "C=tp/(1.1*Ra)\n",
+ "\n",
+ "#calculation\n",
+ "C=tp/(1.1*Ra)\n",
+ "\n",
+ "#result\n",
+ "print \"Capacitance C is\",round(C*10**6),\"micro Farad\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 9.6"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resistance Ra is 54.55 kilo ohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 9.6\n",
+ "#The circuit of figure 9-16 (a) is to be used as a divide-by-2 network.\n",
+ "#The frequency of the input trigger signal is 2 kHz.If the value of C=0.01 uF\n",
+ "#What should be the value of Ra.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "f=2*10**3 #Freq of input trigger signal in Hz\n",
+ "C=0.01*10**-6\n",
+ "\n",
+ "#calculation\n",
+ "tp=1.2/f\n",
+ "Ra=tp/(1.1*C)\n",
+ "\n",
+ "#result\n",
+ "print \"Resistance Ra is\",round(Ra/10**3,2),\"kilo ohm\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 9.7"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Charging time of the capacitor is 0.42 ms\n",
+ "Discharging time of the capacitor is 0.27 ms\n",
+ "Freq of oscillation is 1.4 kHz\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 9.7\n",
+ "#In the astable multivibrator of figure 9-21(a), Ra=2.2 kilo ohm, Rb=3.9 kilo ohm\n",
+ "#and C=0.1 uF. Determine the pulse width tc, negative pulse width td and free\n",
+ "#running frequency fo.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "Ra=2.2*10**3 # Resistance in ohm\n",
+ "Rb=3.9*10**3 # Resistance in ohm\n",
+ "C=0.1*10**-6 # capacitance in farad\n",
+ "\n",
+ "#calculation\n",
+ "tc=0.69*(Ra+Rb)*C # Charging time of the capacitor\n",
+ "td=0.69*Rb*C # Discharging time of the capacitor\n",
+ "T=tc+td\n",
+ "fo=1/T # Freq of oscillation\n",
+ "\n",
+ "\n",
+ "#result\n",
+ "print \"Charging time of the capacitor is\",round(tc*10**3,2),\"ms\"\n",
+ "print \"Discharging time of the capacitor is\",round(td*10**3,2),\"ms\"\n",
+ "print \"Freq of oscillation is\",round(fo/10**3,1),\"kHz\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 9.8"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Freq of free running ramp generator is 5.16 kHz\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 9.8\n",
+ "#Referring to the circuit of figure 9-24(a),determine the frequency of the free-\n",
+ "#running ramp generator if R is set at 10 kHz.\n",
+ "#Assume that Vbe=Vd1=0.7 V.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "R=10*10**3 #Resistance in ohm\n",
+ "Vcc=5 #Supply voltage in volt\n",
+ "Vbe=0.7 #Base to emitter voltage in volt\n",
+ "C=0.05*10**-6 #Capacitance in farad\n",
+ "\n",
+ "#calculation\n",
+ "Ic=(Vcc-Vbe)/R #Collector current in ampere\n",
+ "fo=(3*Ic)/(Vcc*C)\n",
+ "\n",
+ "#result\n",
+ "print \"Freq of free running ramp generator is\",round(fo/10**3,2),\"kHz\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 9.9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Free running frequency of VCO is 2.5 kHz\n",
+ "Lock range frequency of VCO is 1.0 kHz\n",
+ "Capture range frequency of VCO is 66.49 Hz\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 9.9\n",
+ "#Referring to the circuit of figure 9-33(a),determine the free-running frequency\n",
+ "#fout, the lock range fl and the capture range fc.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "R1=12*10**3 # Resistance in ohm\n",
+ "V_plus=10 # Supply voltage in volt\n",
+ "V_minus=-10 # Supply voltage in volt\n",
+ "C1=0.01*10**-6 # Capacitance in farad\n",
+ "C2=10*10**-6 # Capacitance in farad\n",
+ "\n",
+ "#calculation\n",
+ "fout=1.2/(4*R1*C1)\n",
+ "V=V_plus-V_minus\n",
+ "fl=(8*fout)/V\n",
+ "fc=math.sqrt(fl/(2*math.pi*3.6*10**3*C2))\n",
+ "\n",
+ "#result\n",
+ "print \"Free running frequency of VCO is\",round(fout/10**3,1),\"kHz\"\n",
+ "print \"Lock range frequency of VCO is\",round(fl/10**3),\"kHz\"\n",
+ "print \"Capture range frequency of VCO is\",round(fc,2),\"Hz\"\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 9.10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resistance R is 20.0 ohm\n",
+ "Output voltage Vo is 17.0 Volt\n",
+ "Min input voltage Vin is 19.0 Volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 9.10\n",
+ "#Using the 7805C voltage regulator , design a current source that will deliver\n",
+ "#a 0.25 A current to a 48 ohm, 10 W load.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "Vr=5 #Voltage in volt\n",
+ "Il=0.25 #Load current in ampere\n",
+ "Rl=48 #Load resistance in ohm\n",
+ "dropout_volt=2 #Constant for IC7805C\n",
+ "\n",
+ "#calculation\n",
+ "R=Vr/Il #Approximate result sice Iq is negligible in the eq. Il=(Vr/Il)+Iq where Iq is quiescent current\n",
+ "Vl=Rl*Il\n",
+ "Vo=Vr+Vl\n",
+ "Vin=Vo+dropout_volt\n",
+ "\n",
+ "#result\n",
+ "print \"Resistance R is\",R,\"ohm\"\n",
+ "print \"Output voltage Vo is\",Vo,\"Volt\"\n",
+ "print \"Min input voltage Vin is\",Vin,\"Volt\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 9.11"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resistance R2_min is 0.71 kilo ohm\n",
+ "Resistance R2_max is 2.03 kilo ohm\n",
+ "Therefore resistance should be varied from R2_min to R2_max values\n",
+ "To do this we take R2 as 3kohm potentiometer\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 9.11\n",
+ "#Design an adjustable voltage regulator to satisfy the following specifications\n",
+ "#Output voltage Vo= 5 to 12 V\n",
+ "#Output current Io= 1 A.\n",
+ "#Voltage regulator is LM317.\n",
+ "\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "Vo_min=5 #Min output voltage in volt\n",
+ "Vo_max=12 #Max output voltage in volt\n",
+ "Vref=1.25 #Reference voltage in volt\n",
+ "Iadj=100*10**-6 #Adjustment pin current in ampere\n",
+ "R1=240 #Assumption\n",
+ "C2=1*10**-6 #Added to the circuit to improve transient response\n",
+ "C3=1*10**-6 #Added to the circuit to obtain high ripple rejection ratios\n",
+ "\n",
+ "#calculation\n",
+ "R2_min=R1*(Vo_min-Vref)/(Vref+Iadj*R1) #Using Vo_min=Vref*(1+R2/R1)+Iadj*R2\n",
+ "R2_max=R1*(Vo_max-Vref)/(Vref+Iadj*R1) #Using Vo_max=Vref*(1+R2/R1)+Iadj*R2\n",
+ "\n",
+ "#result\n",
+ "print \"Resistance R2_min is\",round(R2_min/10**3,2),\"kilo ohm\"\n",
+ "print \"Resistance R2_max is\",round(R2_max/10**3,2),\"kilo ohm\"\n",
+ "print \"Therefore resistance should be varied from R2_min to R2_max values\"\n",
+ "print \"To do this we take R2 as 3kohm potentiometer\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 9.12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Sense current,Ipk is 1.0 A\n",
+ "Sense resistance,Rsc is 0.33 ohm\n",
+ "Constant K is 1.06\n",
+ "i.e, ton is K times of toff\n",
+ "OFF time period,toff is 24.27 us\n",
+ "ON time period,ton is 25.73 us\n",
+ "Inductance,L is 151.7 uH\n",
+ "Output capacitance,Co is 125.0 uF\n",
+ "Resistance R2 is 12.0 kilo ohm\n",
+ "Resistance R1 is 38.0 kilo ohm\n",
+ "efficiency is 81.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "#Example 9.12\n",
+ "#Design a step down switching regulator according to the following\n",
+ "#specifications.\n",
+ "#Input voltage Vin= 12 V dc.\n",
+ "#Output voltage Vo= 5V at 500 m A maximum.\n",
+ "#Output ripple voltage Vripple= 50 mV or 1% of Vo\n",
+ "#Switching regulator :uA78S40.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "Iomax=500*10**-3 # Max output current in ampere\n",
+ "Vo=5 # Output voltage in volt\n",
+ "Vd=1.25 # Voltage drop across the power diode in volt\n",
+ "Vin=12 # Input voltage in volt\n",
+ "Vs=1.1 # Output saturation voltage in volt\n",
+ "Vripple=50*10**-3 # Output ripple voltage in volt\n",
+ "Vref=1.245 # Reference voltage in volt\n",
+ "Vr2=1.2 # Voltage across resistance R2 in volt\n",
+ "\n",
+ "#calculation\n",
+ "Ipk=2*Iomax # Sense current in ampere\n",
+ "Rsc=0.33/Ipk # Sense resistance in ohm\n",
+ "K=(Vo+Vd)/(Vin-Vs-Vo) # K= ton/toff\n",
+ "f=20*10**3 # Assuming operating freq in Hz\n",
+ "T=1/f\n",
+ "toff=T/2.06 # Using ton+toff=T and substituting for ton\n",
+ "ton=1.06*toff\n",
+ "Ct=45*10**-5*toff # Oscillator timing capacitance in farad\n",
+ "L=((Vo+Vd)/Ipk)*toff # Inductance in henry\n",
+ "Co=Ipk*((ton+toff)/(8*Vripple)) # Output capacitance in farad\n",
+ "I2=0.1*10**-3 # Assuming the current through R2\n",
+ "R2=Vref/I2 # Resistance R2 in ohm\n",
+ "R2=12*10**3 # Taking approximate value\n",
+ "R1=(R2*(Vo-Vr2))/Vr2 # Using Vr2=(R1*Vo)/R1+R2, voltage divider rule\n",
+ "efficiency=((Vin-Vs+Vd)/Vin)*(Vo/(Vo+Vd))*100\n",
+ "\n",
+ "#result\n",
+ "print \"Sense current,Ipk is\",Ipk,\"A\"\n",
+ "print \"Sense resistance,Rsc is\",Rsc,\"ohm\"\n",
+ "print \"Constant K is\",round(K,2)\n",
+ "print \"i.e, ton is K times of toff\"\n",
+ "print \"OFF time period,toff is\",round(toff*10**6,2),\"us\"\n",
+ "print \"ON time period,ton is\",round(ton*10**6,2),\"us\"\n",
+ "print \"Inductance,L is\",round(L*10**6,2),\"uH\"\n",
+ "print \"Output capacitance,Co is\",round(Co*10**6,3),\"uF\"\n",
+ "print \"Resistance R2 is\",R2/10**3,\"kilo ohm\"\n",
+ "print \"Resistance R1 is\",R1/10**3,\"kilo ohm\"\n",
+ "print \"efficiency is\",efficiency\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 9.13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Sense current,Ipk is 6 A\n",
+ "Sense resistance,Rsc is 0.055 ohm\n",
+ "Constant K 1.06\n",
+ "i.e, ton is K times of toff\n",
+ "OFF time period,toff is 24.27 us\n",
+ "ON time period,ton is 25.73 us\n",
+ "Oscillator timing capacitance,Ct is 10.9 nF\n",
+ "Inductance,L is = %.8f H 25.28 uH\n",
+ "Output capacitance,Co is = %.7f F 0.75 milli Farad\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Example 9.13\n",
+ "#Upgrade the switching regulator in Example 9-12 to provide +5V at 3A.\n",
+ "#Use the same specifications given in example 9-12,except the output ratings.\n",
+ "\n",
+ "from __future__ import division #to perform decimal division\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "Iomax=3 #Max output current in ampere\n",
+ "Vo=5 #Output voltage in volt\n",
+ "Vd=1.25 #Voltage drop across the power diode in volt\n",
+ "Vin=12 #Input voltage in volt\n",
+ "Vs=1.1 #Output saturation voltage in volt\n",
+ "Vripple=50*10**-3 #Output ripple voltage in volt\n",
+ "Vref=1.245 #Reference voltage in volt\n",
+ "Vr2=1.2 #Voltage across resistance R2 in volt\n",
+ "\n",
+ "#calculation\n",
+ "Ipk=2*Iomax #Sense current in ampere\n",
+ "Rsc=0.33/Ipk #Sense resistance in ohm\n",
+ "K=(Vo+Vd)/(Vin-Vs-Vo) #K= ton/toff\n",
+ "f=20*10**3 #Assuming operating freq in Hz\n",
+ "T=1/f\n",
+ "toff=T/2.06 #Using ton+toff=T and substituting for ton\n",
+ "ton=1.06*toff\n",
+ "Ct=45*10**-5*toff #Oscillator timing capacitance in farad\n",
+ "L=((Vo+Vd)/Ipk)*toff #Inductance in henry\n",
+ "Co=Ipk*((ton+toff)/(8*Vripple)) #Output capacitance in farad\n",
+ "\n",
+ "#result\n",
+ "print \"Sense current,Ipk is\",Ipk,\"A\"\n",
+ "print \"Sense resistance,Rsc is\",Rsc,\"ohm\"\n",
+ "print \"Constant K\",round(K,2)\n",
+ "print \"i.e, ton is K times of toff\"\n",
+ "print \"OFF time period,toff is\",round(toff*10**6,2),\"us\"\n",
+ "print \"ON time period,ton is\",round(ton*10**6,2),\"us\"\n",
+ "print \"Oscillator timing capacitance,Ct is\",round(Ct*10**9,1),\"nF\"\n",
+ "print \"Inductance,L is = %.8f H\",round(L*10**6,2),\"uH\"\n",
+ "print \"Output capacitance,Co is = %.7f F\",round(Co*10**3,5),\"milli Farad\"\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.6"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/README.txt b/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/README.txt
new file mode 100644
index 00000000..cdf11029
--- /dev/null
+++ b/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Jumana -
+Course: mtech
+College/Institute/Organization: MPBtech. ECE, 6th SemVNIT Nagpur
+Department/Designation: MPBtech. ECE, 6th SemVNIT Nagpur
+Book Title: OpAmps And Linear Integrated Circuits
+Author: Gayakwad
+Publisher: PHI Learning Pvt. Ltd., New Delhi
+Year of publication: 2004
+Isbn: 9788120320581
+Edition: 4 \ No newline at end of file
diff --git a/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/screenshots/1.png b/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/screenshots/1.png
new file mode 100644
index 00000000..5edb3f43
--- /dev/null
+++ b/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/screenshots/1.png
Binary files differ
diff --git a/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/screenshots/2.png b/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/screenshots/2.png
new file mode 100644
index 00000000..f9dae5ed
--- /dev/null
+++ b/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/screenshots/2.png
Binary files differ
diff --git a/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/screenshots/8.png b/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/screenshots/8.png
new file mode 100644
index 00000000..75548a81
--- /dev/null
+++ b/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/screenshots/8.png
Binary files differ