{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Chapter 7 Filters and Rectifiers"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Example 7.1 Pg 232"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The resistor value is = 1.59 k ohm \n"
]
}
],
"source": [
"from __future__ import division\n",
"from math import pi, sqrt\n",
"# Design active low filter with cut-off frequency 10 kHz\n",
"fc = 10 # # kHz\n",
"C = 0.01 # #uF # we assume\n",
"\n",
"# the cut-off frequency of active low pass filter is defined as\n",
"# fc = (1/2*pi*R3*C)#\n",
"\n",
"# R3 can be calculated as\n",
"R3 = (1/(2*pi*fc*C))#\n",
"print 'The resistor value is = %0.2f'%R3,' k ohm '"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Example 7.2 Pg 233"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The resistor value is = 106 ohm \n",
"The pass band gain is = 1.50 \n"
]
}
],
"source": [
"from __future__ import division\n",
"from math import pi, sqrt\n",
"# Design active low filter with cut-off frequency 15 kHz\n",
"fc = 15*10**3 # # Hz \n",
"C = 0.1*10**-6 # #F # we assume\n",
"\n",
"# the cut-off frequency of active low pass filter is defined as\n",
"# fc = (1/2*pi*R3*C)#\n",
"\n",
"# R3 can be calculated as\n",
"R3 = (1/(2*pi*fc*C))#\n",
"print 'The resistor value is = %0.f'%R3,' ohm '\n",
"\n",
"# the pass band gain of filter is given by\n",
"# Af = 1+(R2/R1)#\n",
"# assume that the inverting terminal resistor R2=0.5*R1#\n",
"# in Af equation if we put R2=0.5R1 in R1 R1 cancellout each other \n",
"Af = 1+(0.5)\n",
"print 'The pass band gain is = %0.2f'%Af,' '"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Example 7.3 Pg 234"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The resistor value is = 159 Kohm \n",
"The resistor R2 value is = 900.00 k ohm \n",
"The magnitude of an active low pass filter is = 1.96 \n",
"The phase angle of the filter is = -78.69 \n"
]
}
],
"source": [
"from __future__ import division\n",
"from math import pi, sqrt\n",
"# Design active low filter with cut-off frequency 20 kHz\n",
"fc = 20 # # kHz \n",
"f = 100 # # frequency of filter\n",
"Af = 10 # # desired pass band gain\n",
"C = 0.05 # #nF # we assume\n",
"\n",
"# the cut-off frequency of active low pass filter is defined as\n",
"# fc = (1/2*pi*R3*C)#\n",
"\n",
"# R3 can be calculated as\n",
"R3 = (1/(2*pi*fc*1e3*C*1e-9))/1e3 # Kohm\n",
"print 'The resistor value is = %0.f'%R3,' Kohm '\n",
"\n",
"# the pass band gain of filter is given by\n",
"# Af = 1+(R2/R1)#\n",
"# assume that the inverting terminal resistor R1= 100 k ohm#\n",
"R1 = 100 # # k ohm\n",
"R2 = (Af*R1)-R1#\n",
"print 'The resistor R2 value is = %0.2f'%R2,' k ohm '\n",
"\n",
"# the magnitude of an active low pass filter is given as\n",
"A = Af/(sqrt(1+(f/fc)**2))#\n",
"print 'The magnitude of an active low pass filter is = %0.2f'%A,' '\n",
"\n",
"#the phase angle of the filter\n",
"from math import atan , degrees\n",
"Angle = -degrees(atan(f/fc))#\n",
"print 'The phase angle of the filter is = %0.2f'%Angle,' '"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Example 7.4 Pg 236"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The frequency of the first order low pass filter is = 2.65 kHz \n",
"The pass band gain of filter is = 13.00 \n"
]
}
],
"source": [
"from __future__ import division\n",
"from math import pi, sqrt\n",
"# to determine the cut-off frequency and pass band gain Af\n",
"R1 = 1 # # k ohm\n",
"R2 = 12 # # k ohm\n",
"R3 = 1.2 # # k ohm\n",
"C = 0.05 # #uF # we assume\n",
"\n",
"# the frequency of the first order low pass filter is defined as\n",
"fc = (1/(2*pi*R3*C))#\n",
"print 'The frequency of the first order low pass filter is = %0.2f'%fc,' kHz '\n",
"\n",
"# the pass band gain of filter is given by\n",
"Af =(1+R2/R1)#\n",
"print 'The pass band gain of filter is = %0.2f'%Af,''"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Example 7.5 Pg 236"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The capacitor of high pass filter is = 25.13 uF \n",
"The second resistor value is = 90.00 K ohm \n"
]
}
],
"source": [
"from __future__ import division\n",
"from math import pi, sqrt\n",
"# to design a first order high pass filter with cut-off frequency 2kHz\n",
"Af = 10 #\n",
"fc = 2 # # kHz \n",
"R3 = 2 # #K ohm # we assume\n",
"R1 = 10 # # k ohm\n",
"# the capacitor of high pass filter is given by\n",
"C = 2*pi*R3*fc#\n",
"print 'The capacitor of high pass filter is = %0.2f'%C,' uF '\n",
"\n",
"# the voltage gain of the high pass filter is\n",
"# Af = 1+(R2/R1)#\n",
"R2 = R1*(Af-1)#\n",
"print 'The second resistor value is = %0.2f'%R2,' K ohm '"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Example 7.6 Pg 237"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The resistance R3 is = 1.59 K ohm \n"
]
}
],
"source": [
"from __future__ import division\n",
"from math import pi, sqrt\n",
"# to design an active high pass filter with cut-off frequency 10kHz\n",
"fc = 10 # # kHz \n",
"C = 0.01 # #uF # we assume\n",
"# the cut-off frequency of active high pass filter is given by\n",
"# fc = 2*pi*R3*C#\n",
"# R3 can be calculated as\n",
"R3 = (1/(2*pi*fc*C))#\n",
"\n",
"print 'The resistance R3 is = %0.2f'%R3,' K ohm '"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Example 7.7 Pg 238"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The resistance R3 is = 64 Kohm \n",
"The pass band gain is = 1.20 \n"
]
}
],
"source": [
"from __future__ import division\n",
"from math import pi, sqrt\n",
"# to design an active high pass filter with cut-off frequency 25kHz\n",
"fc = 25 # # kHz \n",
"C = 0.1 # #nF # we assume\n",
"# the cut-off frequency of active high pass filter is given by\n",
"# fc = 2*pi*R3*C#\n",
"# R3 can be calculated as\n",
"R3 = (1/(2*pi*fc*1e3*C*1e-9)) / 1e3 # Kohm\n",
"print 'The resistance R3 is = %0.f'%R3,' Kohm '\n",
"\n",
"# the desire pass band gain of filter is given by \n",
"#Af = 1+(R2/R1)#\n",
"# assume that the inverting terminal resistor R2=0.2*R1#\n",
"# in Af equation if we put R2=0.2R1 in R1 R1 cancellout each other \n",
"Af = 1+(0.2)\n",
"print 'The pass band gain is = %0.2f'%Af,' '"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Example 7.8 Pg 239"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The resistance R3 is = 159 K ohm \n",
"The resistance R2 is = 700.00 K ohm \n",
"The magnitude of an active high pass filter is = 14.55 \n",
"The phase angle of the filter is = 14.04 degree\n"
]
}
],
"source": [
"from __future__ import division\n",
"from math import pi, sqrt\n",
"## # to design an active high pass filter with cut-off frequency 20kHz \n",
"Af = 15 #\n",
"fc = 20 # #kHz\n",
"f = 80 # # kHz the frequency of filter \n",
"C = 0.05 # #nF # we assume\n",
"# the cut-off frequency of active high pass filter is given by\n",
"# fc = 2*pi*R3*C#\n",
"# R3 can be calculated as\n",
"R3 = (1/(2*pi*fc*C))#\n",
"print 'The resistance R3 is = %0.f'%(R3*1000),' K ohm ' # Round Off Error\n",
"\n",
"# the desire pass band gain of filter is given by \n",
"#Af = 1+(R2/R1)#\n",
"# assume that the inverting terminal resistor R1=50 K ohm#\n",
"R1 = 50 # # K ohm\n",
"R2 = (R1*Af)-(R1)\n",
"print 'The resistance R2 is = %0.2f'%R2,' K ohm '\n",
"\n",
"# the magnitude of an active high pass filter is given as\n",
"A = Af*(f/fc)/(sqrt(1+(f/fc)**2))#\n",
"print 'The magnitude of an active high pass filter is = %0.2f'%A,' '\n",
"\n",
"#the phase angle of the filter\n",
"from numpy import inf\n",
"Angle = degrees(-atan(f/fc)+atan(inf))\n",
"print 'The phase angle of the filter is = %0.2f'%Angle,' degree' # Round Off Error"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Example 7.9 Pg 241"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The lower cut-off frequency FLC of band pass filter is = 159.2 Hz \n",
"The upper cut-off frequency FUC of band pass filter is = 15.92 kHz \n"
]
}
],
"source": [
"from __future__ import division\n",
"from math import pi, sqrt\n",
"# to calculate upper and lower cut-off frequency of the band pass filter\n",
"R1 = 10*10**3 # #K ohm\n",
"R2 = 10 # #K ohm\n",
"C1 = 0.1*10**-6 # # uF\n",
"C2 = 0.001 # #uF\n",
"\n",
"# the lower cut-off frequency of band pass filter is\n",
"fLC = 1/(2*pi*R1*C1)#\n",
"print 'The lower cut-off frequency FLC of band pass filter is = %0.1f'%fLC,' Hz '\n",
"\n",
"# The upper cut-off frequency of band pass filter is\n",
"fUC = 1/(2*pi*R2*C2)#\n",
"print 'The upper cut-off frequency FUC of band pass filter is = %0.2f'%fUC,' kHz '"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Example 7.10 Pg 242"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The resistance R3 Value is = 7.96 M ohm \n",
"The resistance R6 value is = 1.59 M ohm \n"
]
}
],
"source": [
"from __future__ import division\n",
"from math import pi, sqrt\n",
"# to design an active band pass filter with lower cut-off frequency 10 kHz an upper 50 kHz\n",
"fL = 10 # # kHz\n",
"fH = 50 # # kHz\n",
"C1 = 0.002 # # nF\n",
"C2 = 0.002 # # nF\n",
"\n",
"# the lower cut-off frequency of band pass filter is\n",
"# fL = 1/(2*pi*R3*C1)#\n",
"R3 = 1/(2*pi*fL*C1)#\n",
"print 'The resistance R3 Value is = %0.2f'%R3,' M ohm '\n",
"\n",
"# The upper cut-off frequency of band pass filter is\n",
"# fH = 1/(2*pi*R6*C2)#\n",
"R6 = 1/(2*pi*fH*C2)#\n",
"print 'The resistance R6 value is = %0.2f'%R6,' M ohm '"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Example 7.11 Pg 243"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The resistance R3 Value is = 7.96 M ohm \n",
"The resistance R6 value is = 3.98 M ohm \n",
"The desire pass band gain of filter is = 15 \n"
]
}
],
"source": [
"from __future__ import division\n",
"from math import pi, sqrt\n",
"# to design an active band pass filter with lower cut-off frequency 20 kHz an upper 40 kHz\n",
"fL = 20 # # kHz\n",
"fH = 40 # # kHz\n",
"# the inverting terminal resistance 2R1=R2 and 4R4=R5\n",
"C1 = 0.001 # # nF\n",
"C2 = 0.001 # # nF\n",
"\n",
"# the lower cut-off frequency of band pass filter is\n",
"# fL = 1/(2*pi*R3*C1)#\n",
"R3 = 1/(2*pi*fL*C1)#\n",
"print 'The resistance R3 Value is = %0.2f'%R3,' M ohm '\n",
"\n",
"# The upper cut-off frequency of band pass filter is\n",
"# fH = 1/(2*pi*R6*C2)#\n",
"R6 = 1/(2*pi*fH*C2)#\n",
"print 'The resistance R6 value is = %0.2f'%R6,' M ohm '\n",
"\n",
"# the desire pass band gain of filter is defined as\n",
"R1 = 1 # # M ohm we assume\n",
"#we define inverting terminal resistance 2R1=R2\n",
"R2 = 2 # # M ohm\n",
"# then\n",
"R4 = 1 # #M ohm\n",
"R5 = 4 # # M ohm\n",
"Af = (1+(R2/R1))*(1+(R5/R4))#\n",
"print 'The desire pass band gain of filter is = %d'%Af,' '"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Example 7.12 Pg 244"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The resistance R3 Value is = 7.96 M ohm \n",
"The resistance R6 value is = 1.99 M ohm \n",
"The desire pass band gain of filter is = 15.00 \n",
"The magnitude of gain of band pass filter is = 11.49 \n",
"The phase angle of gain of band pass filter is = 50 degree\n"
]
}
],
"source": [
"from __future__ import division\n",
"from math import pi, sqrt\n",
"# to design an active band pass filter with lower cut-off frequency 20 kHz an upper 80 kHz\n",
"f = 100 # # kHz the frequency of band pass filter\n",
"fL = 20 # # kHz\n",
"fH = 80 # # kHz\n",
"# the inverting terminal resistance R1=0.5*R2 and R4=0.25*R5\n",
"C1 = 0.001 # # nF\n",
"C2 = 0.001 # # nF\n",
"\n",
"# the lower cut-off frequency of band pass filter is\n",
"# fL = 1/(2*pi*R3*C1)#\n",
"R3 = 1/(2*pi*fL*C1)#\n",
"print 'The resistance R3 Value is = %0.2f'%R3,' M ohm '\n",
"\n",
"# The upper cut-off frequency of band pass filter is\n",
"# fH = 1/(2*pi*R6*C2)#\n",
"R6 = 1/(2*pi*fH*C2)#\n",
"print 'The resistance R6 value is = %0.2f'%R6,' M ohm ' # Round Off Error\n",
"\n",
"# the desire pass band gain of filter is defined as\n",
"R1 = 1 # # M ohm we assume\n",
"#we define inverting terminal resistance R1=0.5*R2\n",
"R2 = 2 # # M ohm\n",
"# then\n",
"R4 = 1 # #M ohm\n",
"R5 = 4 # # M ohm\n",
"Af = (1+(R2/R1))*(1+(R5/R4))#\n",
"print 'The desire pass band gain of filter is = %0.2f'%Af,' '\n",
"\n",
"# the magnitude of gain of band pass filter is given as\n",
"A = Af*(f**2/(fL*fH))/((sqrt(1+(f/fL)**2))*(sqrt(1+(f/fH)**2)))#\n",
"print 'The magnitude of gain of band pass filter is = %0.2f'%A,' ' # Round Off Error\n",
"\n",
"#the phase angle of the filter\n",
"from numpy import inf\n",
"Angle = degrees(2*atan(inf)-atan(f/fL)-atan(f/fH))\n",
"print 'The phase angle of gain of band pass filter is = %0.f'%Angle,'degree' # Round Off Error"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Example 7.13 Pg 247"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The output of the half wave precision rectifier Vo is = -20.00 V \n"
]
}
],
"source": [
"from __future__ import division\n",
"# to determine the output voltage of the precision rectifier circuit\n",
"Vi = 10 # #V i/p volt\n",
"R1 = 20 # # K ohm\n",
"R2 = 40 # # K ohm\n",
"Vd = 0.7 # # V the diode voltage drop\n",
"\n",
"# the output of the half wave precision rectifier is defined as\n",
"# Vo = -(R2/R1)*Vi # for Vi < 0\n",
"# = 0 otherwise\n",
"# i.e for Vi > 0\n",
"# Vo = 0\n",
"# for Vi < 0\n",
"Vo = -(R2/R1)*Vi\n",
"print 'The output of the half wave precision rectifier Vo is = %0.2f'%Vo,' V '"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Example 7.14 Pg 247"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The output of the half wave precision rectifier Vo is = -15.00 V \n",
"The output of the half wave precision rectifier Vo is = 15.00 V \n"
]
}
],
"source": [
"from __future__ import division\n",
"# to determine the output voltage of the precision rectifier circuit for i/p voltage a) Vi = 5 b) Vi = -5\n",
"Vi = 5 # #V i/p volt\n",
"R1 = 5 # # K ohm\n",
"R2 = 15 # # K ohm\n",
"Vd = 0.7 # # V the diode voltage drop\n",
"\n",
"# the output of the half wave precision rectifier is defined as\n",
"# Vo = -(R2/R1)*Vi # for Vi < 0\n",
"# = 0 otherwise\n",
"\n",
"# for Vi = 5 V\n",
"# i.e for Vi > 0\n",
"# Vo = 0\n",
"# for Vi < 0\n",
"Vo = -(R2/R1)*Vi#\n",
"print 'The output of the half wave precision rectifier Vo is = %0.2f'%Vo,' V '\n",
"\n",
"# for Vi = -5 V\n",
"# i.e for Vi > 0\n",
"# Vo = 0\n",
"# for Vi < 0\n",
"Vi =-5 # # V\n",
"Vo = -(R2/R1)*Vi#\n",
"print 'The output of the half wave precision rectifier Vo is = %0.2f'%Vo,' V '"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Example 7.15 Pg 248"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The gain of precision full wave rectifier A is = 6.00 \n",
"The output voltage Vo is = 42.00 V \n",
"The output voltage Vo is = 42.00 V \n"
]
}
],
"source": [
"from __future__ import division\n",
"# to determine the output voltage of the precision rectifier circuit for i/p voltage a) Vi = 7 b) Vi = -7\n",
"Vi = 7 # #V i/p volt\n",
"R1 = 5 # # K ohm\n",
"R3 = 5 # # K ohm\n",
"R4 = 5 # # K ohm\n",
"R2 = 15 # # K ohm\n",
"R5 = 15 # # K ohm\n",
"Vd = 0.7 # # V the diode voltage drop\n",
"\n",
"# the output of the full wave precision rectifier is defined as\n",
"# Vo = -A*Vi # for Vi < 0 equation 1\n",
"# = A*Vi # otherwise equation 2\n",
"\n",
"# or Vo = abs(A*Vi) #\n",
"\n",
"# The gain of precision full wave rectifier\n",
"A = (((R2*R5)/(R1*R3))-(R5/R4)) #\n",
"print 'The gain of precision full wave rectifier A is = %0.2f'%A,' '\n",
"\n",
"\n",
"# for Vi = 7 V the output voltage is\n",
"Vi = 7 #\n",
"Vo = -A*Vi # # from equation 1\n",
"Vo = A*Vi # # from equation 2\n",
"Vo = abs(A*Vi) #\n",
"print 'The output voltage Vo is = %0.2f'%Vo,' V '\n",
"\n",
"# for Vi = -7 V the output voltage is\n",
"Vi = -7 #\n",
"Vo = -A*Vi # # from equation 1\n",
"Vo = A*Vi # # from equation 2\n",
"Vo = abs(A*Vi) #\n",
"print 'The output voltage Vo is = %0.2f'%Vo,' V '"
]
}
],
"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.9"
}
},
"nbformat": 4,
"nbformat_minor": 0
}