diff options
Diffstat (limited to 'Op-amp_and_linear_integrated_circuits_/Chapter_7.ipynb')
-rwxr-xr-x | Op-amp_and_linear_integrated_circuits_/Chapter_7.ipynb | 1326 |
1 files changed, 1326 insertions, 0 deletions
diff --git a/Op-amp_and_linear_integrated_circuits_/Chapter_7.ipynb b/Op-amp_and_linear_integrated_circuits_/Chapter_7.ipynb new file mode 100755 index 00000000..d549ba1d --- /dev/null +++ b/Op-amp_and_linear_integrated_circuits_/Chapter_7.ipynb @@ -0,0 +1,1326 @@ +{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7: Active Filters"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "examople 7.1, Page No. 279"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# First order Butterworth low-pass filter\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "R = 10.0*10**3 # Resistor R\n",
+ "R1 = 10.0*10**3 # Resistor R1\n",
+ "Rf = 100.0*10**3 # Resistor Rf\n",
+ "C = 0.001*10**-6 # Capacitance \n",
+ "\n",
+ "#calculations\n",
+ "#(i)\n",
+ "fc = 1/(2*math.pi*R*C)\n",
+ "#(ii)\n",
+ "Af = 1+(Rf/R1)\n",
+ "\n",
+ "#Result\n",
+ "print(\"(i) cut-off frequency for a first order Butterworth LPF is %.3f kHz\\n\\n(ii) Passband Voltage gain = %d\"%(fc/1000,Af))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i) cut-off frequency for a first order Butterworth LPF is 15.915 kHz\n",
+ "\n",
+ "(ii) Passband Voltage gain = 11\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.2, Page No. 279"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# first order low-pass filter design\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Af = 2 # Passband voltage gain\n",
+ "fc = 10*10**3 # cut-off frequency\n",
+ "\n",
+ "#Calculations\n",
+ "#since Af = 1+Rf/R1, we have Rf = R1\n",
+ "Rf = 10*10**3 # assumed\n",
+ "C = 0.001*10**-6 # assumed\n",
+ "R = 1/(2*math.pi*fc*C)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Rf = R1 = %.0f k-ohm\\nC = %.3f micro-F\\nR = %.1f k-ohm\"%(Rf/1000,C*10**6,R/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rf = R1 = 10 k-ohm\n",
+ "C = 0.001 micro-F\n",
+ "R = 15.9 k-ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.3, Page No. 280"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# low-pass filter design\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Af = 2.5 # Passband voltage gain\n",
+ "fc = 2*10**3 # cut-off frequency\n",
+ "\n",
+ "#Calculations\n",
+ "C = 0.01*10**-6 # assumed\n",
+ "R = 1/(2*math.pi*fc*C)\n",
+ "R = R/1000 # k-ohm\n",
+ "Rp = 8.2*10**3 # practical value\n",
+ "x = (Af-1) # Rf/R1\n",
+ "R1 = Rp*(x+1)/x\n",
+ "R1p = 15 # k-ohm \n",
+ "Rf = R1*x/1000 # k-ohm\n",
+ "\n",
+ "#Result\n",
+ "print(\"R = %f k-ohm(practical value %f k-ohm)\\nR1 = %.2f k-ohm(say %d k-ohm)\\nRf = %d k-ohm\"%(R,Rp/1000,R1/1000,R1p,Rf))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R = 7.957747 k-ohm(practical value 8.200000 k-ohm)\n",
+ "R1 = 13.67 k-ohm(say 15 k-ohm)\n",
+ "Rf = 20 k-ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.4, Page No.283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# 2nd order low-pass filter design(refer fig. 7.22)\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Af = 1.586 # Passband voltage gain\n",
+ "fc = 1000.0 # cut-off frequency\n",
+ "\n",
+ "#Calculations\n",
+ "C = 0.005*10**-6 # assumed\n",
+ "R = 1/(2*math.pi*fc*C)\n",
+ "R = R/1000 # k-ohm\n",
+ "x = (Af-1) # Rf/R1\n",
+ "R1 = 33 # k-ohm \n",
+ "Rf = R1*x # k-ohm\n",
+ "\n",
+ "#Result\n",
+ "print(\"R1 = %d k-ohm\\nRf = %.3f k-ohm\\nR2 = R3 = %.2f k-ohm\\nC2 = C3 = %.3f micro-F\"%(R1,Rf,R,C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R1 = 33 k-ohm\n",
+ "Rf = 19.338 k-ohm\n",
+ "R2 = R3 = 31.83 k-ohm\n",
+ "C2 = C3 = 0.005 micro-F\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.5, Page No. 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# 2nd order low-pass filter\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "R1 = 12.0*10**3 # resistor R1\n",
+ "Rf = 7.0*10**3 # feedback resistance\n",
+ "R2 = 33.0*10**3 # Resistance R2\n",
+ "R3 = 33.0*10**3 # Resistance R3\n",
+ "C1 = 0.002*10**-6 # Capacitance C1\n",
+ "C2 = 0.002*10**-6 # Capacitance C2\n",
+ "\n",
+ "#Calculations\n",
+ "#(i)\n",
+ "fc = 1/(2*math.pi*math.sqrt(R2*R3*C2*C1))\n",
+ "#(ii)\n",
+ "Af = 1+(Rf/R1)\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print(\"(i) cut-off frequency(fc) = %.3f KHz\\n(ii) Passband voltage gain(Af) = %.3f\"%(fc/1000,Af))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i) cut-off frequency(fc) = 2.411 KHz\n",
+ "(ii) Passband voltage gain(Af) = 1.583\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.6, Page No. 284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# 2nd order low-pass filter design\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "fc = 2000.0 # cut-off frequency\n",
+ "C = 0.033*10**-6 # Capacitance, assumed\n",
+ "\n",
+ "#Calculations\n",
+ "R = 1/(2*math.pi*fc*C)\n",
+ "Rp = 2.5\n",
+ "x = 0.586 # Rf/R1 \n",
+ "R1 = 2*R*(1+x)/x\n",
+ "R1p = 15.0\n",
+ "Rf = R1p*x\n",
+ "Rfp = 10.0\n",
+ "\n",
+ "#Result\n",
+ "print(\"C2 = C3 = %.3f micro-F\"%(C*10**6))\n",
+ "print(\"R3 = R2 = %.1f k-ohm(say %.1f k-ohm)\"%(R/1000,Rp))\n",
+ "print(\"R1 = %d k-ohm = %d k-ohm (std value)\\nRf = %.2f k-ohm = %d k-ohm (std value)\"%(R1/1000,R1p,Rf,Rfp))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C2 = C3 = 0.033 micro-F\n",
+ "R3 = R2 = 2.4 k-ohm(say 2.5 k-ohm)\n",
+ "R1 = 13 k-ohm = 15 k-ohm (std value)\n",
+ "Rf = 8.79 k-ohm = 10 k-ohm (std value)\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " example 7.7, Page No. 284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# 2nd order low-pass filter design\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "fc = 1000.0 # cut-off frequency\n",
+ "C = 0.0047*10**-6 # Capacitance, assumed\n",
+ "\n",
+ "#Calculations\n",
+ "R = 1/(2*math.pi*fc*C)\n",
+ "Rp = 33\n",
+ "x = 0.586 # Rf/R1 \n",
+ "R1 = 30.0 # R1 in k-ohm \n",
+ "Rf = R1*x\n",
+ "Rfp = 20.0\n",
+ "\n",
+ "#Result\n",
+ "print(\"C2 = C3 = %.4f micro-F\"%(C*10**6))\n",
+ "print(\"R3 = R2 = %.2f k-ohm(say %.1f k-ohm)\"%(R/1000,Rp))\n",
+ "print(\"R1 = %d k-ohm\\nRf = %.2f k-ohm = %d k-ohm (std value)\"%(R1,Rf,Rfp))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C2 = C3 = 0.0047 micro-F\n",
+ "R3 = R2 = 33.86 k-ohm(say 33.0 k-ohm)\n",
+ "R1 = 30 k-ohm\n",
+ "Rf = 17.58 k-ohm = 20 k-ohm (std value)\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.8, Page No. 189"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# low pass second order Butterworth filter design\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "fc = 1500.0 # cut-off frequency\n",
+ "alfa = 1.414 # damping factor\n",
+ "\n",
+ "#Calculations\n",
+ "Rf = 2-alfa\n",
+ "Ri = 1 # for equal component model\n",
+ "Af = 1+Rf/Ri\n",
+ "print(\"Fig 7.26(a) shows the equal component second order Butterworth filter with critical frequency wc = 1 rad/sec.\")\n",
+ "print(\"Where R = R1 = R2 and\\nC = C1 = C2\")\n",
+ "wc = 2*math.pi*fc\n",
+ "wc = math.floor(wc*100)/100\n",
+ "print(\"\\nWe scale this to 1.5 kHz\\nTherefore, wc = %.2f rad/sec\"%(wc))\n",
+ "R = 1/wc\n",
+ "print(\"R1 = R2 = R = %.3f *10^-4 ohm\\nFig 7.26(b) shows 1.5 kHz second order Butterworth filter.\"%(R*10**4))\n",
+ "R = R*10**7\n",
+ "C = 1*10**-7\n",
+ "print(\"\\nTo increase R to a reasonable vaule , we multiply R1 and R2 by 10^7\")\n",
+ "print(\"and to keep the fc unchanged we decrease the C1 and C2 by the same factor.\")\n",
+ "print(\"R1 = R2 = %.3f k-ohm\\nC1 = C2 = %.1f micro-F or %.0f nF\"%(R/1000,C*10**6,C*10**9))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Fig 7.26(a) shows the equal component second order Butterworth filter with critical frequency wc = 1 rad/sec.\n",
+ "Where R = R1 = R2 and\n",
+ "C = C1 = C2\n",
+ "\n",
+ "We scale this to 1.5 kHz\n",
+ "Therefore, wc = 9424.77 rad/sec\n",
+ "R1 = R2 = R = 1.061 *10^-4 ohm\n",
+ "Fig 7.26(b) shows 1.5 kHz second order Butterworth filter.\n",
+ "\n",
+ "To increase R to a reasonable vaule , we multiply R1 and R2 by 10^7\n",
+ "and to keep the fc unchanged we decrease the C1 and C2 by the same factor.\n",
+ "R1 = R2 = 1.061 k-ohm\n",
+ "C1 = C2 = 0.1 micro-F or 100 nF\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.9, Page No. 292"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print(\"Theeoretical example\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theeoretical example\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.10, Page No. 292"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print(\"Theeoretical example\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theeoretical example\n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.11, Page No. 293"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# 2nd order Butterworth Low pass filter\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "fc = 10*10**3 # Cut-off frequency\n",
+ "n = 2 # order of the filter\n",
+ "one_by_Q = 1.414 # from table\n",
+ "#Calculations\n",
+ "C = 0.01*10**-6 # assumed\n",
+ "R = 1/(2*math.pi*fc*C) \n",
+ "Af = 3-(one_by_Q)\n",
+ "Ri = 10*10**3 # assumed\n",
+ "Rf = (Af-1)*Ri\n",
+ "wc = 2*math.pi*fc\n",
+ "f1=1000\n",
+ "w1 = 2*math.pi*f1\n",
+ "f2 = 2000\n",
+ "w2 = 2*math.pi*f2 \n",
+ "f3 = 5000\n",
+ "w3 = 2*math.pi*f3\n",
+ "f4 = 10000\n",
+ "w4 = 2*math.pi*f4\n",
+ "f5 = 50000\n",
+ "w5 = 2*math.pi*f5\n",
+ "f6 = 100000\n",
+ "w6 = 2*math.pi*f6\n",
+ "Hs1 = 20*math.log10(Af/(math.sqrt(1+(w1/wc)**4)))\n",
+ "Hs2 = 20*math.log10(Af/(math.sqrt(1+(w2/wc)**4)))\n",
+ "Hs3 = 20*math.log10(Af/(math.sqrt(1+(w3/wc)**4)))\n",
+ "Hs4 = 20*math.log10(Af/(math.sqrt(1+(w4/wc)**4)))\n",
+ "Hs5 = 20*math.log10(Af/(math.sqrt(1+(w5/wc)**4)))\n",
+ "Hs6 = 20*math.log10(Af/(math.sqrt(1+(w6/wc)**4)))\n",
+ "\n",
+ "#Result\n",
+ "print(\"R1 = R2 = %.3f k-ohm\\nAf = %.3f\\nC1 = C2 = %.2f micro-F\\nRi = %d k-ohm\\nRf = %.2f k-ohm\"%(R/1000,Af,C*10**6,Ri/1000,Rf/1000))\n",
+ "print(\"\\nFrequency in Hz\\t\\t Gain Magnitude in dB|H(s)|\")\n",
+ "print(\"%d\\t\\t\\t\\t%d\"%(f1,Hs1))\n",
+ "print(\"%d\\t\\t\\t\\t%.3f\"%(f2,Hs2))\n",
+ "print(\"%d\\t\\t\\t\\t%.2f\"%(f3,Hs3))\n",
+ "print(\"%d\\t\\t\\t\\t%.0f\"%(f4,math.ceil(Hs4)))\n",
+ "print(\"%d\\t\\t\\t\\t%.2f\"%(f5,math.ceil(Hs5*100)/100))\n",
+ "print(\"%d\\t\\t\\t\\t%.2f\"%(f6,Hs6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R1 = R2 = 1.592 k-ohm\n",
+ "Af = 1.586\n",
+ "C1 = C2 = 0.01 micro-F\n",
+ "Ri = 10 k-ohm\n",
+ "Rf = 5.86 k-ohm\n",
+ "\n",
+ "Frequency in Hz\t\t Gain Magnitude in dB|H(s)|\n",
+ "1000\t\t\t\t4\n",
+ "2000\t\t\t\t3.999\n",
+ "5000\t\t\t\t3.74\n",
+ "10000\t\t\t\t1\n",
+ "50000\t\t\t\t-23.95\n",
+ "100000\t\t\t\t-35.99\n"
+ ]
+ }
+ ],
+ "prompt_number": 73
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.12, Page No. 294"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# 4th order Butterworth low pass filter(refer fig. 7.33)\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "fc = 1000.0 # upper cut-off frequency\n",
+ "C = 0.1*10**-6 # aasumed\n",
+ "R = 1/(2*math.pi*fc*C)\n",
+ "R = R/1000\n",
+ "R = math.floor(R*1000)/1000\n",
+ "alfa1 = 0.765\n",
+ "alfa2 = 1.848\n",
+ "Af1 = 3-alfa1\n",
+ "Af2 = 3- alfa2\n",
+ "# for first stage\n",
+ "Ri1 = 10*10**3 # assumed\n",
+ "Rf1 = (Af1-1)*Ri1\n",
+ "# for second stage\n",
+ "Ri2 = 100*10**3 # assumed\n",
+ "Rf2 = (Af2-1)*Ri2\n",
+ "\n",
+ "#Result\n",
+ "print(\"R = %.3f k-ohm\\nAf1 = %.3f\\t Af2 = %.3f\\n\\nFor first stage:\\nRi = %d k-ohm\\tRf = %.1f k-ohm\"%(R,Af1,Af2,Ri1/1000,Rf1/1000))\n",
+ "print(\"\\nfor second stage:\\nRi = %d k-ohm\\tRf = %.1f k-ohm\"%(Ri2/1000,Rf2/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R = 1.591 k-ohm\n",
+ "Af1 = 2.235\t Af2 = 1.152\n",
+ "\n",
+ "For first stage:\n",
+ "Ri = 10 k-ohm\tRf = 12.3 k-ohm\n",
+ "\n",
+ "for second stage:\n",
+ "Ri = 100 k-ohm\tRf = 15.2 k-ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 85
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.13, Page No.297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Value of R in first order butterworth high pass filter\n",
+ "\n",
+ "import math\n",
+ "#Vartianble declaration\n",
+ "fc = 10*10**3 # cut-off frequency\n",
+ "C = 0.0047*10**-6 # Capacitance\n",
+ "\n",
+ "#Calculations\n",
+ "R = 1/(2*math.pi*fc*C)\n",
+ "\n",
+ "#Result\n",
+ "print(\"R = %.3f k-ohm\"%(R/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R = 3.386 k-ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 87
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.14, Page No. 298"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# first order butterworth high pass filter\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "R = 15*10**3 # resistance\n",
+ "C = 0.01*10**-6 # capacitance\n",
+ "Rf = 10*10**3 # feedback resistance\n",
+ "R1 = 5*10**3 # resistace R1\n",
+ "\n",
+ "#Calcualtions\n",
+ "fc = 1/(2*math.pi*R*C)\n",
+ "fc = math.floor(fc)\n",
+ "wc = 2*math.pi*fc\n",
+ "\n",
+ "#Result\n",
+ "print(\"(i) Cut-off frequency, fc = %d Hz\\n(ii) Cut-off frequency, wc = %f k rad/sec\"%(fc,wc/1000))\n",
+ "# Answer for wc is wrong in the book"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i) Cut-off frequency, fc = 1061 Hz\n",
+ "(ii) Cut-off frequency, wc = 6.666460 k rad/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 94
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.15, Page No. 299"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# cut-off frequency and voltage gain(refer fig. 7.36)\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "R1 = 27.0*10**3 # resistor R1\n",
+ "R2 = R1 # resistor R2\n",
+ "R3 = R1 # resistor R3\n",
+ "RL = 10*10**3 # resistor Rl\n",
+ "Rf = 16.0*10**3 # resistor Rf\n",
+ "C2 = 0.005*10**-6 # capacitance\n",
+ "C3 = 0.005*10**-6 # capacitance\n",
+ "\n",
+ "#Calculations\n",
+ "fc = 1/(2*math.pi*math.sqrt(R2*R3*C2*C3))\n",
+ "Af = 1+Rf/R1\n",
+ "\n",
+ "#Result\n",
+ "print(\"Cut-off frequency, fc = %.2f kHz\\nAf = %.3f\"%(fc/1000,math.floor(Af*1000)/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Cut-off frequency, fc = 1.18 kHz\n",
+ "Af = 1.592\n"
+ ]
+ }
+ ],
+ "prompt_number": 101
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.16, Page No. 302"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# 2nd order high pass Bessel filter\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "fb = 2000.0 # Break frequency\n",
+ "alfa = 1.732 # damping factor, from table\n",
+ "kf = 1.274 # frequency factor, from table\n",
+ "\n",
+ "#calculations\n",
+ "R1 = alfa/2\n",
+ "R2 = 2/alfa\n",
+ "Rf = R2\n",
+ "C = 1\n",
+ "print(\"R1 = %.3f ohm\\nR2 = Rf = %.3f ohm\"%(R1,R2))\n",
+ "print(\"\\n2nd order high pass filter with wc = 1 rad/sec is shown in fig 7.40\")\n",
+ "fc = fb/kf\n",
+ "fc = math.floor(fc*100)/100\n",
+ "wc = 2*math.pi*fc\n",
+ "wc = math.ceil(wc*10)/10\n",
+ "print(\"\\nfc = %.2f Hz\\nwc = %.1f rad/sec\"%(fc,wc))\n",
+ "print(\"\\nIn frequency scaling proicedure, we keep the capacitor unchanged and scale down the resistors as follow:\")\n",
+ "R1 = R1/wc\n",
+ "R1 = R1*10**5\n",
+ "R1 = math.floor(R1*10**4)/10**4\n",
+ "R2 = R2/wc\n",
+ "print(\"R1 = %.4f*10^-5\\t\\t\\tR2 = %.4f*10^-4\"%(R1,R2*10**4))\n",
+ "print(\"\\nThe above mentioned components are not practical. So we multyply each resistor by 10^8 and divide each capacitor by 10^8 to\")\n",
+ "print(\"get the final component values as under:\")\n",
+ "R1 = R1*10**3\n",
+ "R2 = R2*10**8\n",
+ "C = 1*10**-8\n",
+ "print(\"R1 = %f k-ohm\\t\\t\\tR2 = %f k-ohm\\t\\tC = %d nF\\n\\nFinal diagram is shown in fig. 7.42\"%(R1/1000,R2/1000,C*10**9))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R1 = 0.866 ohm\n",
+ "R2 = Rf = 1.155 ohm\n",
+ "\n",
+ "2nd order high pass filter with wc = 1 rad/sec is shown in fig 7.40\n",
+ "\n",
+ "fc = 1569.85 Hz\n",
+ "wc = 9863.7 rad/sec\n",
+ "\n",
+ "In frequency scaling proicedure, we keep the capacitor unchanged and scale down the resistors as follow:\n",
+ "R1 = 8.7796*10^-5\t\t\tR2 = 1.1707*10^-4\n",
+ "\n",
+ "The above mentioned components are not practical. So we multyply each resistor by 10^8 and divide each capacitor by 10^8 to\n",
+ "get the final component values as under:\n",
+ "R1 = 8.779600 k-ohm\t\t\tR2 = 11.706909 k-ohm\t\tC = 10 nF\n",
+ "\n",
+ "Final diagram is shown in fig. 7.42\n"
+ ]
+ }
+ ],
+ "prompt_number": 125
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.17, Page No.304"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Wide bandpass filter design\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "fl = 100.0 # lower cut-off frequency\n",
+ "fh = 1000.0 # higher cut-off frequency\n",
+ "Af = 4\n",
+ "\n",
+ "# Calculations\n",
+ "# 1. low-pass filter components\n",
+ "C_dash = 0.01*10**-6 # assumed\n",
+ "R_dash = 1/(2*math.pi*fh*C_dash)\n",
+ "R_dash = R_dash/1000\n",
+ "Af2 = 2\n",
+ "x1 = (Af2 - 1) # Rf_dash/R1_dash\n",
+ "R1_dash = 10 # k-ohm\n",
+ "Rf_dash = x1*R1_dash\n",
+ "# 2. High pass filter components\n",
+ "C = 0.05*10**-6 \n",
+ "R = 1/(2*math.pi*fl*C)\n",
+ "Af1 = 2\n",
+ "x2 = (Af1-1)\n",
+ "R1 = 10 # k-ohm\n",
+ "Rf = x2*R1\n",
+ "# 3. Quality factor Q\n",
+ "Q = math.sqrt(fl*fh)/(fh-fl)\n",
+ "\n",
+ "#Result\n",
+ "print(\"1.The componets for the low-pass filter are as under:\")\n",
+ "print(\"R1_dash = %d k-ohm\\nR_dash = %.1f k-ohm\\nRf_dash = %d k-ohm\\nC = %.2f micro-F\"%(R1_dash,R_dash,Rf_dash,C_dash*10**6))\n",
+ "print(\"\\n2.The componets for the high pass filter are as under:\")\n",
+ "print(\"R1 = %d k-ohm\\nR = %.2f k-ohm\\nRf = %d k-ohm\\nC = %.2f micro-F\"%(R1,R/1000,Rf,C*10**6))\n",
+ "print(\"\\n3.Quality factor\\nQ = %.3f\"%Q)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1.The componets for the low-pass filter are as under:\n",
+ "R1_dash = 10 k-ohm\n",
+ "R_dash = 15.9 k-ohm\n",
+ "Rf_dash = 10 k-ohm\n",
+ "C = 0.01 micro-F\n",
+ "\n",
+ "2.The componets for the high pass filter are as under:\n",
+ "R1 = 10 k-ohm\n",
+ "R = 31.83 k-ohm\n",
+ "Rf = 10 k-ohm\n",
+ "C = 0.05 micro-F\n",
+ "\n",
+ "3.Quality factor\n",
+ "Q = 0.351\n"
+ ]
+ }
+ ],
+ "prompt_number": 147
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.18, Page No. 307"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Narrow band pass filter design\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "fc = 2000.0 # cut-off frequency\n",
+ "Af = 10 # voltage gain\n",
+ "Q = 4 # quality factor\n",
+ "\n",
+ "#Calculations\n",
+ "C = 0.01*10**-6 # assumed\n",
+ "R1 = Q/(2*math.pi*fc*C*Af)\n",
+ "R1 = R1/1000 # k-ohm\n",
+ "R2 = Q/(2*math.pi*fc*C*((2*Q**2)-Af))\n",
+ "R2 = R2/1000\n",
+ "R3 = Q/(math.pi*fc*C)\n",
+ "R3 = R3 /1000\n",
+ "fc_new = 1000.0\n",
+ "R2_dash = R2*(fc/fc_new)**2\n",
+ "\n",
+ "#Result\n",
+ "print(\"C1 = C2 = %.2f micro-F\\nR1 = %.3f k-ohm\\nR2 = %.3f k-ohm\\nR3 = %.2f k-ohm\"%(C*10**6,R1,math.floor(R2*1000)/1000,R3))\n",
+ "print(\"We use\\t R1 = 3.3 k-ohm,R2 = 1.5 k-ohm, R3 = 63 k-ohm\")\n",
+ "print(\"\\nNew value of R2 = %.3f k-ohm.\\nWe use\\t R2 = %.1f k-ohm\"%(R2_dash,R2_dash))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C1 = C2 = 0.01 micro-F\n",
+ "R1 = 3.183 k-ohm\n",
+ "R2 = 1.446 k-ohm\n",
+ "R3 = 63.66 k-ohm\n",
+ "We use\t R1 = 3.3 k-ohm,R2 = 1.5 k-ohm, R3 = 63 k-ohm\n",
+ "\n",
+ "New value of R2 = 5.787 k-ohm.\n",
+ "We use\t R2 = 5.8 k-ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 171
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.19, Page No. 308"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Wide band reject filter\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "fh = 100.0 # higher cut-off frequency\n",
+ "fl = 2000.0 # lower cut-off frequency\n",
+ "\n",
+ "# Calculations\n",
+ "# (i) High-pass section\n",
+ "C = 0.01*10**-6 # assumed\n",
+ "R = 1/(2*math.pi*fl*C)\n",
+ "Af1 = 2\n",
+ "x1 = Af1-1 # Rf/R1\n",
+ "R1 = 10 # k-ohm\n",
+ "Rf = x1*R1\n",
+ "#(ii) Low-pass section\n",
+ "C1 = 0.1*10**-6 # assumed\n",
+ "R_dash = 1/(2*math.pi*fh*C1)\n",
+ "Af2 = 2\n",
+ "x2 = Af2-1 # Rf'/R1'\n",
+ "R1_dash = 10 # k-ohm\n",
+ "Rf_dash = x2*R1_dash\n",
+ "#(iii) Summing amplifier\n",
+ "R2 = 10.0 # k-ohm\n",
+ "R3 = R4 = R2\n",
+ "Rom = (R2*R3/(R2+R3))*R4/(R4+(R2*R3/(R2+R3)))\n",
+ "#result\n",
+ "print(\"(i) High Pass section:\\nC = %.2f micro-F\\nR = %.2f k-ohm\\nR1 = %d k-ohm\\nRf = %d k-ohm\\n\"%(C*10**6,R/1000,R1,Rf))\n",
+ "print(\"(ii) Low Pass section:\\nC = %.1f micro-F\\nR = %.3f k-ohm\\nR1 = %d k-ohm\\nRf = %d k-ohm\"%(C1*10**6,R_dash/1000,R1_dash,Rf_dash))\n",
+ "print(\"\\n(iii) Summing amplifier:\\nRom = %f k-ohm\"%(Rom))\n",
+ "print(\"\\nThe completed circuit diagram is shownn in figure 7.47\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i) High Pass section:\n",
+ "C = 0.01 micro-F\n",
+ "R = 7.96 k-ohm\n",
+ "R1 = 10 k-ohm\n",
+ "Rf = 10 k-ohm\n",
+ "\n",
+ "(ii) Low Pass section:\n",
+ "C = 0.1 micro-F\n",
+ "R = 15.915 k-ohm\n",
+ "R1 = 10 k-ohm\n",
+ "Rf = 10 k-ohm\n",
+ "\n",
+ "(iii) Summing amplifier:\n",
+ "Rom = 3.333333 k-ohm\n",
+ "\n",
+ "The completed circuit diagram is shownn in figure 7.47\n"
+ ]
+ }
+ ],
+ "prompt_number": 191
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " example 7.20, Page No. 311"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# #Active notch filter\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "fn = 50 # frequency to be rejected\n",
+ "\n",
+ "#Calculations\n",
+ "C = 0.47*10**-6 # Capacitance, assumed\n",
+ "R = 1/(2*math.pi*fn*C)\n",
+ "\n",
+ "#Result\n",
+ "print(\"C = %.2f micro-F\\nR = %.3f k-ohm. We use %.1f k-ohm\"%(C*10**6,R/1000,R/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C = 0.47 micro-F\n",
+ "R = 6.773 k-ohm. We use 6.8 k-ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 193
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.21, Page No. 313"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# phase shift between the input and output voltages for all pass filter\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "R = 10*10**3 # resistance\n",
+ "C = 0.01*10**-6 # Capacitance\n",
+ "f = 2000.0 # frequency for which phase shift is to be calculated\n",
+ "\n",
+ "#Calculations\n",
+ "fi = -2*math.atan(2*math.pi*R*f*C)\n",
+ "fi = math.ceil(math.degrees(fi)*100)/100\n",
+ "\n",
+ "#Result\n",
+ "print(\"Phase shift = %.2f\u00b0\"%fi)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Phase shift = -102.97\u00b0\n"
+ ]
+ }
+ ],
+ "prompt_number": 199
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.22, Page No.313"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Wide band pass filter\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "fl = 200.0 # lower cut-off frequency\n",
+ "fh = 1000.0 # higher cut-off frequency\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "fc = math.sqrt(fl*fh)\n",
+ "Q = fc/(fh-fl)\n",
+ "\n",
+ "#Result\n",
+ "print(\"fc = %.1f Hz\\nQ = %.3f\\nfilter with Q = 0.8 is more selective.\"%(fc,Q))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fc = 447.2 Hz\n",
+ "Q = 0.559\n",
+ "filter with Q = 0.8 is more selective\n"
+ ]
+ }
+ ],
+ "prompt_number": 203
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.23, Page No. 313"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Wide bandpass filter design\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "f1 = 5*10**3 # cut-off frequency\n",
+ "f2 = 15*10**3 # ciut-off frequency\n",
+ "Af = 2 # Passband gain \n",
+ "\n",
+ "#Calculations\n",
+ "# low pass filter\n",
+ "C_dash = 0.01*10**-6 # assumed\n",
+ "R_dash = 1/(2*math.pi*f2*C_dash)\n",
+ "R_dash = R_dash/1000\n",
+ "Af1 = Af2 = 1.414\n",
+ "x1 = Af2-1 # Rf'/R1'\n",
+ "R1_dash = 10 # k-ohm\n",
+ "Rf_dash = x1*R1_dash\n",
+ "# high pass filter\n",
+ "C = 0.05*10**-6 # assumed\n",
+ "R = 1/(2*math.pi*f1*C)\n",
+ "x2 = Af1-1 # Rf'/R1'\n",
+ "R1 = 10 # k-ohm\n",
+ "Rf = x2*R1\n",
+ "\n",
+ "#Result\n",
+ "print(\"Low pass filter component:\")\n",
+ "print(\"C' = %.2f micro-F\\nR' = %.3f k-ohm\\nR1'= %d k-ohm\\nRf'= %.2f k-ohm\"%(C_dash*10**6,R_dash,R1_dash,Rf_dash))\n",
+ "print(\"\\nHigh pass filter component:\")\n",
+ "print(\"C = %.2f micro-F\\nR = %.2f k-ohm\\nR1 = %d k-ohm\\nRf = %.2f k-ohm\"%(C*10**6,R,R1,Rf))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Low pass filter component:\n",
+ "C' = 0.01 micro-F\n",
+ "R' = 1.061 k-ohm\n",
+ "R1'= 10 k-ohm\n",
+ "Rf'= 4.14 k-ohm\n",
+ "\n",
+ "High pass filter component:\n",
+ "C = 0.05 micro-F\n",
+ "R = 636.62 k-ohm\n",
+ "R1 = 10 k-ohm\n",
+ "Rf = 4.14 k-ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 216
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.24, Page No. 317"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# output waveform of circuit in fig.7.54\n",
+ "\n",
+ "%matplotlib inline\n",
+ "import matplotlib.pyplot as plt\n",
+ "from numpy import arange,sin,pi\n",
+ "t = arange(0.0,2,0.01)\n",
+ "t1 = arange(0.0,2.0,0.01)\n",
+ "t2 = arange(0.0,1.002,0.01)\n",
+ "t3 = arange(1.0,2,0.01)\n",
+ "t4 = arange(-15.0,15.0,0.01)\n",
+ "\n",
+ "S = sin(math.pi*t)\n",
+ "plt.axis([0,2.0,-16,16])\n",
+ "\n",
+ "plt.plot(t1,t1*0/t1,'b')\n",
+ "plt.plot(t4/t4,t4,'g')\n",
+ "plt.plot(t2,15*t2/t2,'g')\n",
+ "plt.plot(t3,-15*t3/t3,'g')\n",
+ "plt.plot(t,S,'r')\n",
+ "plt.title(\"Output of the circuit shown in fig. 7.54\")\n",
+ "plt.text(-0.3,14.8,'+Vsat')\n",
+ "plt.text(-0.3,-15.2,'-Vsat')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "pyout",
+ "prompt_number": 274,
+ "text": [
+ "<matplotlib.text.Text at 0xef879e8>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xed83f98>"
+ ]
+ }
+ ],
+ "prompt_number": 274
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.25, Page No. 317"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Cut-off frequency\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "C = 0.1*10**-6 # capacitance\n",
+ "R = 10*10**3 # Resistance\n",
+ "\n",
+ "#Calculations\n",
+ "fh = 1/(2*math.pi*C*R)\n",
+ "\n",
+ "#Result\n",
+ "print(\"cut-off frequency = %.4f Hz\"%fh)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "cut-off frequency = 159.1549 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 275
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.26, Page No. 317"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# first order low pass filter design(refer fig 7.56)\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "fc = 2000.0 # cut-off frequency\n",
+ "Af = 2 # passband gain\n",
+ "\n",
+ "#Calculations\n",
+ "C = 0.01*10**-6 # Capacitance, assumed\n",
+ "R = 1/(2*math.pi*fc*C)\n",
+ "R = R/1000 # k-ohm\n",
+ "R = math.floor(R*10**3)/1000\n",
+ "x = Af -1 # Rf/R1\n",
+ "R1 = 10 # k-ohm\n",
+ "Rf = x*R1\n",
+ "\n",
+ "#Result\n",
+ "print(\"C = %.2f micro-F\\nR = %.3f k-ohm\\nR1 = %d k-ohm\\nRf = %d k-ohm\"%(C*10**6,R,R1,Rf))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C = 0.01 micro-F\n",
+ "R = 7.957 k-ohm\n",
+ "R1 = 10 k-ohm\n",
+ "Rf = 10 k-ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 284
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file |