summaryrefslogtreecommitdiff
path: root/Op-amp_and_linear_integrated_circuits_/Chapter_8.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'Op-amp_and_linear_integrated_circuits_/Chapter_8.ipynb')
-rwxr-xr-xOp-amp_and_linear_integrated_circuits_/Chapter_8.ipynb455
1 files changed, 455 insertions, 0 deletions
diff --git a/Op-amp_and_linear_integrated_circuits_/Chapter_8.ipynb b/Op-amp_and_linear_integrated_circuits_/Chapter_8.ipynb
new file mode 100755
index 00000000..8b6edfd5
--- /dev/null
+++ b/Op-amp_and_linear_integrated_circuits_/Chapter_8.ipynb
@@ -0,0 +1,455 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8 : Non-linear Applications of Op-amp"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.1, Page No. 332"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Threshold voltages(refer fig. 8.20)\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Vcc = 15 # positive saturation voltage\n",
+ "Vee = -15 # Negative saturation voltage\n",
+ "R1 = 120.0 # resistance R1\n",
+ "R2 = 51*10**3 # resistance R2\n",
+ "vin = 1 # input voltage\n",
+ "\n",
+ "#Calculations\n",
+ "Vut = Vcc*R1/(R1+R2)\n",
+ "Vult = Vee*R1/(R1+R2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Vut = %.1f mV\\nVult = %.1f mV\"%(Vut*1000,Vult*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Vut = 35.2 mV\n",
+ "Vult = -35.2 mV\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.2, Page No.333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Values of R1 and R2\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "Vcc = 12.0 # positive saturation voltage\n",
+ "Vee = -12.0 # negative saturation voltage\n",
+ "Vh = 6.0 # hysteresis width\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "R1 = 10*10**3\n",
+ "R2 = (1-(Vh/(Vcc-Vee)))*R1/(Vh/(Vcc-Vee))\n",
+ "\n",
+ "#Result\n",
+ "print(\"R1 = %.0f k-ohm\\nR2 = %.0f k-ohm\"%(R1/1000,R2/1000))\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R1 = 10 k-ohm\n",
+ "R2 = 30 k-ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.3, Page No. 333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Schmitt trigger\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Vh = 2.0 # hysteresis width\n",
+ "Vlt = -1.5 # lower threshold\n",
+ "Vpp = 5.0 # sine wave amplitude\n",
+ "f = 1000.0 # frequency\n",
+ "\n",
+ "# Calculations\n",
+ "Vut = Vh - abs(Vlt)\n",
+ "Vm = Vpp/2\n",
+ "theta = math.asin(-Vlt/Vm)\n",
+ "theta = theta*180/math.pi\n",
+ "T = 1/f\n",
+ "T1 = T*(180.0+theta)/360.0\n",
+ "T2 = T-T1\n",
+ "\n",
+ "#Result\n",
+ "print(\"Time duration for negative portion , T1 = %.3f ms\\nTime duration for positive portion , T2 = %.3f ms\"%(T1*1000,T2*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Time duration for negative portion , T1 = 0.602 ms\n",
+ "Time duration for positive portion , T2 = 0.398 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.4, Page No. 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Schmitt Trigger\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Vh = 10.0 # ligher threshold\n",
+ "Vl = -10.0 # lower threshold\n",
+ "Imax = 100*10**-6 # maximum current through R1 and R2\n",
+ "Vhv = 0.1 # hysteresis width\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "R2 = 1000.0 # assumed\n",
+ "R1= R2*(1-(Vhv/(2*Vh)))/(Vhv/(2*Vh))\n",
+ "R = R1*R2/(R1+R2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"R1 = %.0f k-ohm\\nR2 = %.0f k-ohm\\nR1||R2 = %.0f ohm\"%(R1/1000,R2/1000,R))\n",
+ "# R1||R2 value is in ohm and not in k-ohm"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R1 = 199 k-ohm\n",
+ "R2 = 1 k-ohm\n",
+ "R1||R2 = 995 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.5, Page No. 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ " print(\"Theoretical example\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical example\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.6, Page No.336"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Threshold voltages and hysteresis voltage (refer fig. 8.26)\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "VsatP = 12.0 # Positive saturation voltage\n",
+ "VsatN = -12.0 # Negative saturation voltage\n",
+ "R1 = 1000.0 # Resistor R1 \n",
+ "R2 = 3*10**3 # Resistor R2\n",
+ "\n",
+ "#Result\n",
+ "Vlt = -VsatP*R1/R2\n",
+ "Vut = -VsatN*R1/R2\n",
+ "Vh = (R1/R2)*abs(VsatP-VsatN)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Vlt = %.0f V\\nVut = %.0f V\\nVh = %.0f V\"%(Vlt,Vut,Vh))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Vlt = -4 V\n",
+ "Vut = 4 V\n",
+ "Vh = 8 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.7, Page No.336"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Schmitt's trigger (refer fig. 8.27)\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Vcc = 12.5 # positive supply voltage\n",
+ "Vee = -12.5 # negative supply voltage\n",
+ "R1 = 80.0*10**3 # Resistor R1\n",
+ "R2 = 20.0*10**3 # Resistor R2\n",
+ "\n",
+ "#Calcualtions\n",
+ "Vut = R2*Vcc/(R1+R2)\n",
+ "Vlt = R2*Vee/(R1+R2) \n",
+ "Vhv = R2*2*Vcc/(R1+R2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Vlt = %.1f V\\nVut = %.1f V\\nVh = %.1f V\"%(Vlt,Vut,Vhv))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Vlt = -2.5 V\n",
+ "Vut = 2.5 V\n",
+ "Vh = 5.0 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.8, Page No.350"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print(\"Theoretical example\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical example\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.9, Page No.360"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Sample and hold circuit\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "del_Vin = 5.0 # changes in input volage\n",
+ "FRR = 80.0 # feedthrough rejection ratio\n",
+ "\n",
+ "#Calculations\n",
+ "math.sqrt(5)\n",
+ "del_Vout = del_Vin/math.pow(10,FRR/20)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Change in output = %.4f V = %.1f mV\"%(del_Vout,del_Vout*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in output = 0.0005 V = 0.5 mV\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.10, Page No. 365"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Threshold voltages and frequency of oscillation ( refer fig.8.72)\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "R1 = 86*10**3 # Resistor R1\n",
+ "R2 = 100*10**3 # Resistor R2\n",
+ "Vcc = 15.0 # positive saturation voltage\n",
+ "Vee = -15.0 # negative saturation voltage\n",
+ "Rf = 100*10**3 # feedback resistance\n",
+ "C = 0.1*10**-6 # capacitance\n",
+ "\n",
+ "#Calculations\n",
+ "Vut = R1*Vcc/(R1+R2)\n",
+ "Vlt = R1*Vee/(R1+R2) \n",
+ "fo = 1/(2*Rf*C*math.log((Vcc-Vlt)/(Vcc-Vut)))\n",
+ "\n",
+ "#Result\n",
+ "print(\"(i) Vut = %.2f V\\n(ii) Vlt = %.2f \\n(iii)fo = %.0f Hz\"%(Vut,Vlt,fo))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i) Vut = 6.94 V\n",
+ "(ii) Vlt = -6.94 \n",
+ "(iii)fo = 50 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.11, Page No. 365"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print(\"Theoretical example\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical example\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file