summaryrefslogtreecommitdiff
path: root/Integrated_Circuits_by_Dr._Sanjay_Sharma/Ch_03.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'Integrated_Circuits_by_Dr._Sanjay_Sharma/Ch_03.ipynb')
-rw-r--r--Integrated_Circuits_by_Dr._Sanjay_Sharma/Ch_03.ipynb478
1 files changed, 478 insertions, 0 deletions
diff --git a/Integrated_Circuits_by_Dr._Sanjay_Sharma/Ch_03.ipynb b/Integrated_Circuits_by_Dr._Sanjay_Sharma/Ch_03.ipynb
new file mode 100644
index 00000000..c582fb8a
--- /dev/null
+++ b/Integrated_Circuits_by_Dr._Sanjay_Sharma/Ch_03.ipynb
@@ -0,0 +1,478 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter : 3 - Op-amp with Negative Feedback"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.1 : Page No - 115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given data\n",
+ "A = 2*10**5 \n",
+ "R_F = 4.7*10**3 # in ohm\n",
+ "R1 = 470 # in ohm\n",
+ "K = R_F/(R1+R_F) \n",
+ "B = R1/(R1+R_F) \n",
+ "A_F = -(A*R_F)/(R1+R_F+(R1*A)) \n",
+ "print \"The closed loop voltage gain = %0.f\" %A_F \n",
+ "R_in = 2 # in M ohm\n",
+ "R_in = R_in * 10**6 # in ohm\n",
+ "R_inf = R1 + ( (R_F*R_in)/(R_F+R_in + (A*R_in)) ) # in ohm\n",
+ "print \"Input resistance = %0.3f \u03a9\" %R_inf \n",
+ "R_o = 75 # in ohm\n",
+ "R_of = R_o/(1+(A*B)) # in ohm\n",
+ "R_of = R_of * 10**3 # in m\u03a9\n",
+ "print \"Output Resistance = %0.2f m\u03a9\" %R_of \n",
+ "f_o = 5 # Hz\n",
+ "f_f = f_o*(1+(A*B)) # in Hz\n",
+ "f_f = f_f *10**-3 # in kHz\n",
+ "print \"Band width with feedback = %0.3f kHz\" %f_f \n",
+ "\n",
+ "# Note: In the book, the unit of output resistant is wrong it will be m\u03a9 (not M\u03a9)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The closed loop voltage gain = -10\n",
+ "Input resistance = 470.023 \u03a9\n",
+ "Output Resistance = 4.12 m\u03a9\n",
+ "Band width with feedback = 90.914 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2 : Page No - 116"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "#Given data\n",
+ "A_F = -30 \n",
+ "R_F = 1 # in M ohm\n",
+ "R1 = -(R_F/A_F) # in Mohm\n",
+ "R_i = R1 # in Mohm\n",
+ "print \"Input resistance = %0.2f k\u03a9\" %(R_i*10**3) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Input resistance = 33.33 k\u03a9\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.4 : Page No - 120"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given data\n",
+ "A_F = 61 \n",
+ "R1 = 1 # in k ohm\n",
+ "R1 = R1 * 10**3 # in ohm\n",
+ "R_F = (A_F-1)*R1 # in ohm\n",
+ "R_F = R_F * 10**-3 # k ohm\n",
+ "print \"The value of feedback resistance = %0.f k\u03a9\" %R_F "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of feedback resistance = 60 k\u03a9\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.5 : Page No - 120"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given data\n",
+ "A = 2*10**5 \n",
+ "R1 = 1 # in k ohm\n",
+ "R1 = R1 *10**3 # in ohm\n",
+ "R_F = 10 # in k ohm\n",
+ "R_F = R_F * 10**3 # in ohm\n",
+ "B = R1/(R1+R_F) \n",
+ "R_i = 2 # in M ohm\n",
+ "R_i = R_i * 10**6 # in ohm\n",
+ "R_o = 75 # in ohm\n",
+ "A_F = A/(1+(A*B)) \n",
+ "print \"The closed loop gain = %0.3f\" %A_F \n",
+ "R_if = R_i * (1+(A*B)) # in ohm\n",
+ "print \"Input resistance = %0.2f G\u03a9\" %(R_if*10**-9) \n",
+ "R_of = R_o/(1+(A*B)) # in ohm\n",
+ "R_of = R_of * 10**3 # in m\u03a9\n",
+ "print \"The output resistance = %0.2f m\u03a9\" %R_of \n",
+ "f_o = 5 # in Hz\n",
+ "f_f = f_o*(1+(A*B)) # in Hz\n",
+ "f_f = f_f * 10**-3 # in kHz ... correction....\n",
+ "print \"Bandwidth with feedback = %0.2f kHz\" %f_f "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The closed loop gain = 10.999\n",
+ "Input resistance = 36.37 G\u03a9\n",
+ "The output resistance = 4.12 m\u03a9\n",
+ "Bandwidth with feedback = 90.91 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6 : Page No - 121"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given data\n",
+ "A =2*10**5 \n",
+ "R_i = 2 # in M ohm\n",
+ "R1 = 1 # in ohm \n",
+ "R_o= 75 # in ohm\n",
+ "R_F = 1 # in ohm\n",
+ "B = R1/(R1+R_F) \n",
+ "A_F = -1 \n",
+ "print \"The voltage gain = %0.f\" %A_F \n",
+ "R_if = 330 # in ohm\n",
+ "print \"Input resistance = %0.f \u03a9\" %R_if \n",
+ "R_of = R_o/(A/2) # in ohm\n",
+ "print \"Output resistance = %0.5f \u03a9\" %R_of \n",
+ "f_o = 5 # in Hz\n",
+ "f_F = (A/2)*f_o # in Hz\n",
+ "f_F = f_F * 10**-6 # in MHz\n",
+ "print \"The bandwidth = %0.1f MHz\" %f_F "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The voltage gain = -1\n",
+ "Input resistance = 330 \u03a9\n",
+ "Output resistance = 0.00075 \u03a9\n",
+ "The bandwidth = 0.5 MHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7 : Page No - 122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given data\n",
+ "A = 2*10**5 \n",
+ "R_i = 2 #in M ohm\n",
+ "R_i = 2*10**6 # in ohm\n",
+ "R_o = 75 #in ohm\n",
+ "f_o = 5 # in Hz\n",
+ "V_CC = 15 # in V\n",
+ "V_EE = -15 # in V\n",
+ "R1 = 1 # in k ohm\n",
+ "R1 = R1 * 10**3 # in ohm\n",
+ "R_F = 10 # in k ohm\n",
+ "R_F = R_F * 10**3 # in ohm\n",
+ "OVS= 13 # output voltage swing in V in \u00b1\n",
+ "B = R1/(R1+R_F) \n",
+ "A_B = A*B \n",
+ "A_B1 = 1+(A*B) \n",
+ "A_F = (1+(R_F/R1)) \n",
+ "print \"Part (i) For non-inverting amplifier :-\"\n",
+ "print \"The value of A_F = %0.f\" %A_F \n",
+ "R_iF = R_i * (A_B1) # in ohm\n",
+ "print \"The value of R_iF = %0.4f G\u03a9\" %(R_iF*10**-9) \n",
+ "R_OF = R_o/(A_B1) # in ohm\n",
+ "print \"The value of R_OF = %0.5f ohm\" %R_OF \n",
+ "f_F = f_o*A_B1 # in Hz\n",
+ "f_F =f_F * 10**-3 # in kHz\n",
+ "print \"The value of f_F = %0.2f kHz\" %f_F \n",
+ "V_ooT= OVS/(1+A*B) # in V\n",
+ "print \"The value of VooT = \u00b1\",round(V_ooT,6),\"volts = \u00b1\",round(V_ooT*10**3,3),\" mV\"\n",
+ "\n",
+ "print \"\\nPart (ii) For inverting amplifier\"\n",
+ "R_F = 4.7 # in k ohm\n",
+ "R_F = R_F* 10**3 # in ohm\n",
+ "R_1 = 470 # in ohm\n",
+ "A_F = -(R_F)/R_1 \n",
+ "print \"The value of A_F = %0.f\" %A_F \n",
+ "R_iF = R_1# in ohm\n",
+ "print \"The value of R_iF = %0.f \u03a9\" %R_iF \n",
+ "R_OF = R_o/(A_B1) # in ohm\n",
+ "print \"The value of R_OF = %0.5f \u03a9\" %R_OF \n",
+ "f_F = f_o*A_B1 # in Hz\n",
+ "f_F =f_F * 10**-3 # in kHz\n",
+ "print \"The value of f_F = %0.2f kHz\" %f_F \n",
+ "V_ooT = OVS/A_B1 # in mV\n",
+ "print \"The value of VooT = \u00b1\",round(V_ooT*10**3,3),\" mV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part (i) For non-inverting amplifier :-\n",
+ "The value of A_F = 11\n",
+ "The value of R_iF = 36.3656 G\u03a9\n",
+ "The value of R_OF = 0.00412 ohm\n",
+ "The value of f_F = 90.91 kHz\n",
+ "The value of VooT = \u00b1 0.000715 volts = \u00b1 0.715 mV\n",
+ "\n",
+ "Part (ii) For inverting amplifier\n",
+ "The value of A_F = -10\n",
+ "The value of R_iF = 470 \u03a9\n",
+ "The value of R_OF = 0.00412 \u03a9\n",
+ "The value of f_F = 90.91 kHz\n",
+ "The value of VooT = \u00b1 0.715 mV\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8 : Page No - 123"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given data\n",
+ "R1 = 5 # in k ohm\n",
+ "R_F = 500 # in k ohm\n",
+ "V_in = 0.1 # in V\n",
+ "A_F = -(R_F/R1) \n",
+ "print \"Voltage gain = %0.f\" %A_F \n",
+ "R_i = R1 # in k ohm\n",
+ "print \"The Input resistance = %0.f k\u03a9\" %R_i \n",
+ "R_o = 0 # in ohm\n",
+ "print \"Output resistance = %0.f \u03a9\" %R_o \n",
+ "V_out = A_F*V_in # in V\n",
+ "print \"Output voltage = %0.f V\" %V_out \n",
+ "I_in = V_in/(R1*10**3) # in A\n",
+ "I_in = I_in * 10**3 # in mA\n",
+ "print \"Input current = %0.2f mA\" %I_in "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage gain = -100\n",
+ "The Input resistance = 5 k\u03a9\n",
+ "Output resistance = 0 \u03a9\n",
+ "Output voltage = -10 V\n",
+ "Input current = 0.02 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.9 : Page No - 123"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given data\n",
+ "R_F = 1 # in M ohm\n",
+ "R_in = 1 # in M ohm\n",
+ "V_in = 1 # in V (assumed)\n",
+ "V_out = -(R_F/R_in)*V_in \n",
+ "A_v = V_out/V_in \n",
+ "print \"The value of A_v = %0.f\" %A_v \n",
+ "I_in = 1 # in A\n",
+ "I_out = I_in # in A\n",
+ "A_in = I_out/I_in \n",
+ "print \"The value of A_in = %0.f\" %A_in \n",
+ "A_P = abs(A_v*A_in) \n",
+ "print \"The value of A_P = %0.f\" %A_P"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of A_v = -1\n",
+ "The value of A_in = 1\n",
+ "The value of A_P = 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.10 : Page No - 123"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given data\n",
+ "R_F = 1 # in M ohm\n",
+ "R_F = R_F * 10**6 # in ohm\n",
+ "Av= -30 \n",
+ "R1 = R_F/abs(Av) # in ohm\n",
+ "R1 = R1 * 10**-3 # in k ohm\n",
+ "print \"The value of R_F = %0.f M\u03a9 \" %(R_F*10**-6)\n",
+ "print \"The value of R1 = %0.f k\u03a9\" %R1 "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R_F = 1 M\u03a9 \n",
+ "The value of R1 = 33 k\u03a9\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.11 : Page No - 124"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given data\n",
+ "A_v = -8 \n",
+ "V_in= -1 # in V\n",
+ "I1 = 15 # in \u00b5A\n",
+ "I1 = I1 * 10**-6 # in A\n",
+ "R1 = -(V_in)/I1 # in ohm\n",
+ "R1 = R1 * 10**-3 # in k ohm\n",
+ "print \"Minimum value of R1 = %0.2f k\u03a9 (standard value 68 k\u03a9)\" %R1 \n",
+ "R1= 68 # kohm (Use standard value)\n",
+ "R_F = -(A_v)*R1 # in k ohm\n",
+ "print \"The minimum value of R_F = %0.f k\u03a9\" %R_F \n",
+ "\n",
+ "# Note: There is calculation error in the book to find the value of R_F so the answer in the book is wrong."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum value of R1 = 66.67 k\u03a9 (standard value 68 k\u03a9)\n",
+ "The minimum value of R_F = 544 k\u03a9\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file