summaryrefslogtreecommitdiff
path: root/OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter7.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter7.ipynb')
-rw-r--r--OpAmps_And_Linear_Integrated_Circuits_by_Gayakwad/Chapter7.ipynb1543
1 files changed, 1543 insertions, 0 deletions
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
+}