diff options
32 files changed, 12188 insertions, 0 deletions
diff --git a/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter10.ipynb b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter10.ipynb new file mode 100644 index 00000000..bb1c322b --- /dev/null +++ b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter10.ipynb @@ -0,0 +1,88 @@ +{
+ "metadata": {
+ "name": "chapter10.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10: Travelling Wave and Broadband Antennas"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.1, Page no. 573"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given example parameters have to be found in terms of lambda, we assume lamda = 50\n",
+ "lamda0=50\n",
+ "N=10.0\n",
+ "\n",
+ "C=lamda0\n",
+ "print \"Circumference:\",C\n",
+ "\n",
+ "alpha=13\n",
+ "print \"Optimum pitch angle:\",alpha\n",
+ "\n",
+ "S=C*tan(alpha*pi/180)\n",
+ "print \"Seperation between turns:\",S\n",
+ "\n",
+ "L0=sqrt(S**2+C**2)\n",
+ "print \"Length of single turn:\",L0\n",
+ "\n",
+ "vh=L0/lamda0\n",
+ "v0=(S/lamda0)+1\n",
+ "p_end=vh/v0\n",
+ "print \"Relative wave velocity of ordinary end-fire antenna:\",p_end\n",
+ "\n",
+ "p_wood=vh/((S/lamda0)+((2*N+1)/(2*N)))\n",
+ "print \"Relative wave velocity of Hansen-Woodyard end-fire antenna:\",p_wood\n",
+ "\n",
+ "HPBW=((52*lamda0)**(1.5))/(C*sqrt(N*S))\n",
+ "print \"Half-power Beamwidth:\",HPBW\n",
+ "\n",
+ "D0=15*N*C**2*S/lamda0**3\n",
+ "print \"Directivity:\",10*log10(D0),\"dB\"\n",
+ "\n",
+ "AR=(2*N+1)/(2*N)\n",
+ "print \"Axial Ratio:\",10*log10(AR)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Circumference: 50\n",
+ "Optimum pitch angle: 13\n",
+ "Seperation between turns: 11.5434095563\n",
+ "Length of single turn: 51.3152053897\n",
+ "Relative wave velocity of ordinary end-fire antenna: 0.833805045246\n",
+ "Relative wave velocity of Hansen-Woodyard end-fire antenna: 0.801256612432\n",
+ "Half-power Beamwidth: 246.787390223\n",
+ "Directivity: 15.3945535927 dB\n",
+ "Axial Ratio: 0.211892990699\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter11.ipynb b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter11.ipynb new file mode 100644 index 00000000..d30fca32 --- /dev/null +++ b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter11.ipynb @@ -0,0 +1,106 @@ +{
+ "metadata": {
+ "name": "chapter 11.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11: Frequency Independent Antennas, Antenna Miniaturization and Fractal Antennas"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.1, Page No. 634"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import scipy\n",
+ "import math\n",
+ "#For a given D0 of 8dB optimum sigma is 0.157\n",
+ "\n",
+ "sigma=0.157\n",
+ "tau=0.865\n",
+ "\n",
+ "alpha=math.degrees(math.atan((1-tau)/(4*sigma)))\n",
+ "print \"Angle between edges:\",alpha\n",
+ "\n",
+ "B_ar=1.1+7.7*(1-tau)**2*(1/math.tan(math.radians(alpha)))\n",
+ "print \"Active Region Bandwidth:\",B_ar\n",
+ "\n",
+ "f_max=(216000000.0)\n",
+ "f_min=(54000000.0)\n",
+ "B=f_max/f_min\n",
+ "B_s=B*B_ar\n",
+ "print \"Designed Bandwidth:\",B_s\n",
+ "\n",
+ "v=300000000\n",
+ "lamda_max=v/f_min\n",
+ "print \"Maximum wavelength:\",lamda_max,\"m\"\n",
+ "\n",
+ "L=(lamda_max/4)*(1-1/B_s)*(math.cos(math.radians(alpha)))/(math.sin(math.radians(alpha)))\n",
+ "print \"Total length of structure:\",L,\"m\"\n",
+ "\n",
+ "N=1+(log(B_s)/(log(1/tau)))\n",
+ "print \"Number of elements:\",int(N)\n",
+ "\n",
+ "sigma_1=sigma/sqrt(tau)\n",
+ "print \"Relative mean spacing:\",sigma_1\n",
+ "\n",
+ "def toFeet(m):\n",
+ " return m*3.2804\n",
+ "\n",
+ "l_max=toFeet(lamda_max)/2\n",
+ "ratio=l_max*int(alpha)/0.75\n",
+ "\n",
+ "Z_a=120*(log(ratio)-2.25)\n",
+ "print \"Average characteristic impedance of elements:\",Z_a,\"ohms\"\n",
+ "\n",
+ "R_in=50.0\n",
+ "ratio_2=Z_a/R_in\n",
+ "\n",
+ "Z0=1.2*R_in\n",
+ "print \"Average characteristic impedance of feeder line:\",Z0,\"ohms\"\n",
+ "\n",
+ "s=(3.0/4)*cosh(Z0/120.0)\n",
+ "print \"Center-to-center spacing of feeder conductors:\",s,\"in.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Angle between edges: 12.1321360732\n",
+ "Active Region Bandwidth: 1.752806\n",
+ "Designed Bandwidth: 7.011224\n",
+ "Maximum wavelength: 5.55555555556 m\n",
+ "Total length of structure: 5.53939644496 m\n",
+ "Number of elements: 14\n",
+ "Relative mean spacing: 0.168807445799\n",
+ "Average characteristic impedance of elements: 327.864640314 ohms\n",
+ "Average characteristic impedance of feeder line: 60.0 ohms\n",
+ "Center-to-center spacing of feeder conductors: 0.845719473905 in.\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter12.ipynb b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter12.ipynb new file mode 100644 index 00000000..9b6063a3 --- /dev/null +++ b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter12.ipynb @@ -0,0 +1,181 @@ +{
+ "metadata": {
+ "name": "chapter 12.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12: Aperture Antennas"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.2, Page no. 675"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Assume lamda = 50\n",
+ "lamda=50.0\n",
+ "a=3*lamda\n",
+ "b=2*lamda\n",
+ "n=1\n",
+ "\n",
+ "theta_1=114.6*(math.asin(n*lamda/b))\n",
+ "print \"First Null Beamwidth:\",theta_1,\"deg\"\n",
+ "\n",
+ "theta_h=114.6*math.asin(0.443*lamda/b)\n",
+ "print \"Half-power beamwidth:\",theta_h,\"deg\"\n",
+ "\n",
+ "theta_s=114.6*math.asin(1.43*lamda/b)\n",
+ "print \"First Sidelobe Beamwidth:\",theta_s,\"deg\"\n",
+ "\n",
+ "E_s=0.217\n",
+ "print \"Maximum of first side lobe:\",20*log10(E_s),\"dB\"\n",
+ "\n",
+ "D0=4*pi*a*b/lamda**2\n",
+ "print \"Maximum directivity:\",10*log10(D0),\"dB\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "First Null Beamwidth: 60.0044196836 deg\n",
+ "Half-power beamwidth: 25.5961863013 deg\n",
+ "First Sidelobe Beamwidth: 91.2931226067 deg\n",
+ "Maximum of first side lobe: -13.270805323\n",
+ "Maximum directivity: 18.7736111441 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.4, Page no. 683"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "lamda=50.0\n",
+ "\n",
+ "#For a=b=20*lamda\n",
+ "print \"For a=b=20*lamda, the efficiency for the uniform aperture is 94%.\"\n",
+ "\n",
+ "a=b=3*lamda\n",
+ "k=2*pi/lamda\n",
+ "theta1=10*pi/180\n",
+ "u=(k*a/2)*sin(theta1)\n",
+ "\n",
+ "print \"For u = %f, the efficiency is 58.\"%u"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For a=b=20*lamda, the efficiency for the uniform aperture is 94%.\n",
+ "For u = 1.636596, the efficiency is 58.\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.5, Page no. 696"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "lamda=50.0\n",
+ "theta=30*pi/180\n",
+ "a_sq=b_sq=lamda/(2*sin(theta))\n",
+ "D0=pi/sin(theta)**2\n",
+ "print \"Directivity of square patch is : %f dB\" %(10*log10(D0))\n",
+ "\n",
+ "a_cir=lamda/(3.413*sin(theta))\n",
+ "D0cir=(1.079*pi)/(sin(theta)**2)\n",
+ "print \"Directivity of circular patch is : %f dB\" %(10*log10(D0cir))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Directivity of square patch is : 10.992099 dB\n",
+ "Directivity of circular patch is : 11.322313 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.6, Page no. 699"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "Zc=73+42.5j #Characteristic impedance\n",
+ "eta=376.7\n",
+ "\n",
+ "Zs=eta**2/(4*Zc)\n",
+ "print \"Terminal(input) impedance od the slot:\",Zs,\"Ohms\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Terminal(input) impedance od the slot: (362.948424022-211.305589328j) Ohms\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter13.ipynb b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter13.ipynb new file mode 100644 index 00000000..4a698177 --- /dev/null +++ b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter13.ipynb @@ -0,0 +1,331 @@ +{
+ "metadata": {
+ "name": "chapter 13.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13: Horn Antennas"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.1, Page no. 742"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#assume lamda=50\n",
+ "lamda=50.0\n",
+ "\n",
+ "#Given\n",
+ "delta_phi_max=56.72\n",
+ "a=0.5*lamda\n",
+ "b=0.25*lamda\n",
+ "b1=2.75*lamda\n",
+ "k=2*pi/lamda\n",
+ "rho_1=(k*b1**2)/(4*2*(delta_phi_max*pi/180))\n",
+ "\n",
+ "flare_ang=2*math.degrees(math.atan((b1/2)/rho_1))\n",
+ "print \"Total flare angle:\",flare_ang,\"deg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total flare angle: 25.8153672096 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.2, Page no. 750"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "lamda=50.0\n",
+ "a=0.5*lamda\n",
+ "b=0.25*lamda\n",
+ "b1=0.275*lamda\n",
+ "rho_1=6*lamda #From example 13.1\n",
+ "s=b1**2/(8*lamda*rho_1)\n",
+ "\n",
+ "#for the above s, theta = 90 and normalized field of -20dB\n",
+ "theta=90\n",
+ "En=-20\n",
+ "\n",
+ "E_theta_dB=En+20.0*log10((1+cos(theta*pi/180))/2.0)\n",
+ "E_theta=10**(E_theta_dB/20)\n",
+ "\n",
+ "print \"Normalized voltage ratio:\",E_theta"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Normalized voltage ratio: 0.05\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.3, Page no. 755"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "lamda=50.0\n",
+ "a=0.5*lamda\n",
+ "b=0.25*lamda\n",
+ "b1=2.75*lamda\n",
+ "rho_1=6*lamda\n",
+ "\n",
+ "x=b1/sqrt(2*lamda*rho_1)\n",
+ "\n",
+ "C2_x=0.518\n",
+ "S2_x=0.0576\n",
+ "\n",
+ "DE=((64*a*rho_1)/(pi*lamda*b1))*(C2_x+S2_x)\n",
+ "print \"Directivity:\",10*log10(DE),\"dB\"\n",
+ "\n",
+ "rho_e=sqrt(rho_1**2+(b1**2)/2)\n",
+ "B=(b1/lamda)*sqrt(50/(rho_e/lamda))\n",
+ "print \"B=\",B\n",
+ "\n",
+ "#for the above value of B, GE=73.5\n",
+ "GE=73.5\n",
+ "DE1=(a/lamda)*(GE/sqrt(50/(rho_e/lamda)))\n",
+ "print \"Directivity:\",10*log10(DE1),\"dB\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Directivity: 11.0693944744 dB\n",
+ "B= 7.74280086072\n",
+ "Directivity: 11.1569194759 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.4, Page no. 768"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given\n",
+ "lamda=50.0\n",
+ "a=0.5*lamda\n",
+ "b=0.25*lamda\n",
+ "a1=5.5*lamda\n",
+ "rho_2=6*lamda\n",
+ "\n",
+ "u=(1/sqrt(2))*((sqrt(lamda*rho_2)/a1)+(a1/(sqrt(lamda*rho_2))))\n",
+ "v=(1/sqrt(2))*((sqrt(lamda*rho_2)/a1)-(a1/(sqrt(lamda*rho_2))))\n",
+ "\n",
+ "C_u=0.394 #Values are from appendix\n",
+ "C_v=-0.659\n",
+ "S_u=0.373\n",
+ "S_v=-0.669\n",
+ "\n",
+ "D_h=(4*pi*b*rho_2/(a1*lamda))*((C_u-C_v)**2+(S_u-S_v)**2)\n",
+ "print \"Directivity:\",10*log10(D_h),\"dB\"\n",
+ "\n",
+ "rho_h=sqrt(rho_2**2+(a1/2)**2)\n",
+ "x=sqrt(50/(rho_h/lamda))\n",
+ "A=(a1/lamda)*x\n",
+ "\n",
+ "#for the above value of A G_h=91.8\n",
+ "G_h=91.8\n",
+ "D_h1=(b/lamda)*(G_h/x)\n",
+ "print \"Directivity:\",10*log10(D_h1),\"dB\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Directivity: 8.76288465322 dB\n",
+ "Directivity: 9.21075886566 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.5, Page no. 779"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "lamda=50.0\n",
+ "rho_1=rho_2=6*lamda\n",
+ "a1=5.5*lamda\n",
+ "b1=2.75*lamda\n",
+ "a=0.5*lamda\n",
+ "b=0.25*lamda\n",
+ "\n",
+ "rho_e=6.1555*lamda #From previous\n",
+ "rho_h=6.6*lamda #examples\n",
+ "\n",
+ "p_e=(b1-b)*(sqrt((rho_e/b1)**2-(1/4)))\n",
+ "p_h=(a1-a)*(sqrt((rho_h/a1)**2-(1/4)))\n",
+ "print \"The values of rho-e and rho-h are not equal.\"\n",
+ "\n",
+ "DE=12.79 #Using previous example values\n",
+ "DH=7.52\n",
+ "\n",
+ "Dp=(pi*lamda**2/(32*a*b))*DE*DH\n",
+ "print \"Directivity: %f dB\" % (10*log10(Dp))\n",
+ "\n",
+ "DE1=12.89\n",
+ "DH1=8.338\n",
+ "Dp1=(pi*lamda**2/(32*a*b))*DE1*DH1\n",
+ "print \"Directivity: %f dB\" % (10*log10(Dp1))\n",
+ "\n",
+ "s=b1**2/(8*lamda*rho_1)\n",
+ "t=a1**2/(8*lamda*rho_2)\n",
+ "print \"The values of s and t are %f, %f\" %(s,t)\n",
+ "LE=0.20\n",
+ "LH=2.75\n",
+ "print \"For the given values of s and t, LE=%f dB and LH=%f dB\" %(LE,LH)\n",
+ "\n",
+ "Dp2=10*(1.008+log10(a1*b1/lamda**2))-(LE+LH)\n",
+ "print \"Directivity: %f dB\" %Dp2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The values of rho-e and rho-h are not equal.\n",
+ "Directivity: 18.781783 dB\n",
+ "Directivity: 19.264047 dB\n",
+ "The values of s and t are 0.157552, 0.630208\n",
+ "For the given values of s and t, LE=0.200000 dB and LH=2.750000 dB\n",
+ "Directivity: 18.926954 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.6, Page no. 782"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "G0_db=22.6\n",
+ "G0=10**(G0_db/10)\n",
+ "\n",
+ "f=11*10**9\n",
+ "v=30000000000.0\n",
+ "lamda=v/f\n",
+ "\n",
+ "a=0.8382*lamda\n",
+ "b=0.3725*lamda\n",
+ "\n",
+ "#The Value x1 is calculated on a trial and error basis\n",
+ "x=11.1157\n",
+ "\n",
+ "rho_e=x*lamda\n",
+ "rho_h=lamda*(G0**2/(8*pi**3))*(1/x)\n",
+ "print \"The values of rho-e and rho-h are %f and %f.\" %(rho_e,rho_h)\n",
+ "\n",
+ "a1=(G0/(2*pi))*sqrt(3/(2*pi*x))*lamda\n",
+ "b1=sqrt(2*x)*lamda\n",
+ "\n",
+ "print \"Corresponding values of a1 and b1: %f cm, %f cm\" %(a1,b1)\n",
+ "\n",
+ "p_e=(b1-b)*(sqrt((rho_e/b1)**2-(1/4)))\n",
+ "p_h=(a1-a)*(sqrt((rho_h/a1)**2-(1/4)))\n",
+ "print \"Values of pE and pH: %f cm, %f cm\" %(p_e,p_h)\n",
+ "\n",
+ "G0_1=(2*pi/lamda**2)*sqrt(3*lamda*rho_h)*sqrt(2*lamda*rho_e)\n",
+ "print \"Directivity:\",10*log10(G0_1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The values of rho-e and rho-h are 30.315545 and 32.753080.\n",
+ "Corresponding values of a1 and b1: 16.370087 cm, 12.859142 cm\n",
+ "Values of pE and pH: 27.920530 cm, 28.179278 cm\n",
+ "Directivity: 22.4998569101\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter14.ipynb b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter14.ipynb new file mode 100644 index 00000000..83f7a4dd --- /dev/null +++ b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter14.ipynb @@ -0,0 +1,267 @@ +{
+ "metadata": {
+ "name": "chapter 14.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14: Microstrip Antennas"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.1, Page no. 820"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Given\n",
+ "h=0.1588\n",
+ "epsilon=2.2\n",
+ "v=3*10**8\n",
+ "f=10*10**9\n",
+ "\n",
+ "W=(float(v)/(2*f))*(math.sqrt(2/(epsilon+1)))\n",
+ "W_cm=W*100\n",
+ "print \"Width of the patch:\",W_cm,\"cm\"\n",
+ "\n",
+ "epsilon_eff=((epsilon+1)/2.0)+((epsilon-1)/2.0)*(1.0+12.0*h/W)**(-0.5)\n",
+ "print \"Effective dielectric constant:\",epsilon_eff\n",
+ "\n",
+ "delta_L=(h*0.412*(epsilon_eff+0.3)*((W/h)+0.264))/((epsilon_eff-0.258)*((W/h)+0.8))\n",
+ "print \"Extended incremental length of the patch:\",delta_L,\"cm\"\n",
+ "\n",
+ "lamda=v*100/f\n",
+ "L=(lamda/2)-(2*delta_L)\n",
+ "print \"Actual length of patch:\",L,\"cm\"\n",
+ "\n",
+ "L_e=L+2*delta_L\n",
+ "print \"Effective length of the patch:\",L_e,\"cm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Width of the patch: 1.18585412256 cm\n",
+ "Effective dielectric constant: 1.64718499279\n",
+ "Extended incremental length of the patch: 0.0355084748459 cm\n",
+ "Actual length of patch: 0.928983050308 cm\n",
+ "Effective length of the patch: 1.0 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.2, Page No. 825"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import scipy.integrate\n",
+ "import math\n",
+ "def S_i(a):\n",
+ " temp=scipy.integrate.quad(lambda x:sin(x)/x,0,a)\n",
+ " return temp[0]\n",
+ "\n",
+ "def J0(s):\n",
+ " temp=scipy.integrate.quad(lambda x:cos(s*sin(x)),0,pi)\n",
+ " temp=(1/pi)*temp[0]\n",
+ " return temp\n",
+ " \n",
+ "\n",
+ "#Given\n",
+ "v=3*10**10\n",
+ "f=10*10**9\n",
+ "L=0.906\n",
+ "W=1.186\n",
+ "h=0.1588\n",
+ "epsilon=2.2\n",
+ "\n",
+ "lamda_0=v/f\n",
+ "k0=(2*pi)/lamda_0\n",
+ "X=k0*W\n",
+ "I1=-2+cos(X)+X*S_i(X)+sin(X)/X\n",
+ "G1=I1/(120*pi**2)\n",
+ "\n",
+ "temp=scipy.integrate.quad(lambda x:(((sin(k0*W*cos(x)/2)/cos(x))**2)*J0(k0*L*sin(x))*sin(x)**3),0,pi)\n",
+ "G12=(1/(120*pi**2))*temp[0]\n",
+ "\n",
+ "Rin=1/(2*(G1+G12))\n",
+ "print \"Input Impedance:\",Rin,\"ohms\"\n",
+ "\n",
+ "R=50.0\n",
+ "y0=(L/pi)*(math.acos(sqrt(R/Rin)))\n",
+ "print \"The position of the inset feed point where input impedance is 50 ohms:\",y0,\"cm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1.86272719218\n",
+ "Input Impedance: 228.350793292 ohms\n",
+ "The position of the inset feed point where input impedance is 50 ohms: 0.312568937286 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.3, Page no. 843"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#All these values are taken or calculated from the previous examples\n",
+ "lamda=50.0\n",
+ "v=3*10**10\n",
+ "f=10*10**9\n",
+ "L=0.906\n",
+ "W=1.186\n",
+ "h=0.1588\n",
+ "epsilon=2.2\n",
+ "lamda_0=v/f\n",
+ "G1=0.00157\n",
+ "G12=0.00061683\n",
+ "I1=1.863\n",
+ "\n",
+ "g_12=G12/G1\n",
+ "D_AF=2/(1+g_12)\n",
+ "D0=((2*pi*W)/lamda_0)**2*(1/I1)\n",
+ "D2=D0*D_AF\n",
+ "print \"Directivity:\",10*log10(D2),\"dB\"\n",
+ "\n",
+ "I2=3.59801\n",
+ "D_2=((2*pi*W)/lamda_0)**2*(pi/I2)\n",
+ "print \"Directivity:\",10*log10(D_2),\"dB\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Directivity: 6.77188375387 dB\n",
+ "Directivity: 7.31374111976 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.4, Page no. 847"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given\n",
+ "epsilon=2.2\n",
+ "h=0.1588\n",
+ "fr=10*10**9\n",
+ "\n",
+ "F=(8.791*10**9)/(fr*sqrt(epsilon))\n",
+ "\n",
+ "a=F/(1+((2*h)/(pi*epsilon*F))*((log(pi*F/(2*h))+1.7726)))**0.5\n",
+ "print \"Actual radius of the microstrip patch antenna: %f cm\"% a"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Actual radius of the microstrip patch antenna: 0.524986 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.5, Page no. 864"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given\n",
+ "fc=10*10**9\n",
+ "h=0.1588\n",
+ "frac_bw=0.05\n",
+ "VSWR=2\n",
+ "\n",
+ "Qt=(VSWR-1)/(frac_bw*VSWR**0.5)\n",
+ "print \"The total Quality Factor: %f\" % Qt\n",
+ "\n",
+ "f1=fc/(sqrt(1+(1/Qt)))\n",
+ "f2=fc*(sqrt(1+(1/Qt)))\n",
+ "\n",
+ "print \"The resonant frequencies are : %f GHz, %f GHz\" %(f1/10**9,f2/10**9)\n",
+ "\n",
+ "rel_ratio=1+1/Qt\n",
+ "\n",
+ "print \"The relative ratio is %f. Thus the patch is nearly square,\" % rel_ratio"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The total Quality Factor: 14.142136\n",
+ "The resonant frequencies are : 9.664156 GHz, 10.347515 GHz\n",
+ "The relative ratio is 1.070711. Thus the patch is nearly square,\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter15.ipynb b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter15.ipynb new file mode 100644 index 00000000..85271fe2 --- /dev/null +++ b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter15.ipynb @@ -0,0 +1,113 @@ +{
+ "metadata": {
+ "name": "chapter 15.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 15: Reflector Antennas"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.3, Page no. 923"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import scipy.integrate\n",
+ "#Given\n",
+ "d=10.0\n",
+ "fd_ratio=0.5\n",
+ "f=3*10**9\n",
+ "v=3*10**8\n",
+ "lamda=float(v)/f\n",
+ "theta=math.atan((0.5*fd_ratio)/(fd_ratio**2-(1/16.)))\n",
+ "\n",
+ "eff=24*((sin(theta/2))**2+log(cos(theta/2)))**2*(1/tan(theta/2))**2\n",
+ "print \"Aperture Efficiency: %d\" %(100*eff)\n",
+ "\n",
+ "D=eff*((pi*d)/lamda)**2\n",
+ "print \"Total directivity: %f dB\" %(10*log10(D))\n",
+ "\n",
+ "spill_eff=(scipy.integrate.quad(lambda x:(cos(x*pi/180)**2)*sin(x*pi/180),0,53.13)[0])/(scipy.integrate.quad(lambda x:(cos(x*pi/180)**2)*sin(x*pi/180),0,90)[0])\n",
+ "print \"Spillover efficiency : %f \" %(100*spill_eff)\n",
+ "\n",
+ "taper_eff=2*eff/1.568\n",
+ "print \"Taper efficiency: %f\" %(100*taper_eff)\n",
+ "\n",
+ "m=pi/8\n",
+ "direc=(1-(m**2)/2)**2*D\n",
+ "print \"directivity for phase error of pi/8 : %f dB\" %(10*log10(direc))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Aperture Efficiency: 75\n",
+ "Total directivity: 48.697528 dB\n",
+ "Spillover efficiency : 78.399846 \n",
+ "Taper efficiency: 95.749602\n",
+ "directivity for phase error of pi/8 : 48.000562 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.4, Page no 936"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "v=3*3.28083*10**8\n",
+ "f=11.2*10**9\n",
+ "lamda=v/f\n",
+ "print \"wavelength: %f ft\" %lamda\n",
+ "delta=lamda/16\n",
+ "R=5\n",
+ "a=((14.7*(delta/lamda)*R**4)/(R/lamda))**(0.25)\n",
+ "print \"Maximum permissible aperture: %f feet\"%a"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength: 0.087879 ft\n",
+ "Maximum permissible aperture: 1.782373 feet\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter16.ipynb b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter16.ipynb new file mode 100644 index 00000000..ecd947d2 --- /dev/null +++ b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter16.ipynb @@ -0,0 +1,63 @@ +{
+ "metadata": {
+ "name": "chapter 16.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 16: Smart Antennas"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.1, Page no. 966"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#in this example we have to solve a system of linear equations\n",
+ "\n",
+ "w=np.mat('1 1;0.7071-0.7071j 0.7071+0.7071j')\n",
+ "a=np.array([1,0])\n",
+ "\n",
+ "x=np.linalg.solve(w,a)\n",
+ "print \"The optimum values of w1 and w2 which guarantee maximum signal-to-interference ratio at theta=0:\",x"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The optimum values of w1 and w2 which guarantee maximum signal-to-interference ratio at theta=0: [ 0.5-0.5j 0.5+0.5j]\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter2.ipynb b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter2.ipynb new file mode 100644 index 00000000..0a847bfb --- /dev/null +++ b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter2.ipynb @@ -0,0 +1,600 @@ +{
+ "metadata": {
+ "name": "chapter 2.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2: Fundamental Parameters of Antennas"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1, Page 37"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from scipy.integrate import quad,dblquad\n",
+ "\n",
+ "#formula for beam solid angle theta_a=double_integration of d_omega\n",
+ "theta_a=quad(lambda x:1,0,2*pi)[0]*quad(lambda x:sin(x),0,pi/6)[0]\n",
+ "print 'Exact Beam Solid Angle:',theta_a,'steradians'\n",
+ "\n",
+ "#formula for approx angle=delta1*delta2\n",
+ "delta1=pi/3\n",
+ "delta2=pi/3\n",
+ "theta_a1=delta1*delta2\n",
+ "theta_a1=delta1**2\n",
+ "print 'Approximate Beam Solid Angle:',theta_a1,'steradians'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Exact Beam Solid Angle: 0.841787214477 steradians\n",
+ "Approximate Beam Solid Angle: 1.09662271123 steradians\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.7, Page 52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import scipy\n",
+ "\n",
+ "#The half power point of the pattern occurs at 60 degrees. Therefore theta_1r=2*pi/3\n",
+ "theta_1r=(2*pi)/3\n",
+ "theta_2r=(2*pi)/3\n",
+ "\n",
+ "#Given U=B0*cos(theta)\n",
+ "exact_theta_a=dblquad(lambda x,y:cos(x)*sin(x), 0, (2*pi), lambda x:0, lambda x:(pi/2))\n",
+ "print 'Exact Beam Solid Angle:',exact_theta_a[0],'steradians'\n",
+ "\n",
+ "#Formula for approx theta = theta_1r*theta_2r\n",
+ "approx_theta_a=theta_1r*theta_2r\n",
+ "print 'Approximate Beam Solid Angle:',approx_theta_a,'steradians'\n",
+ "\n",
+ "#formula for exact directivity=4*pi/exact_beam_angle\n",
+ "exact_direct=((4*pi)/(exact_theta_a[0]))\n",
+ "\n",
+ "#formula for approx directivity=4*pi/approx_beam_angle\n",
+ "approx_direct=((4*pi)/(approx_theta_a))\n",
+ "\n",
+ "#exact directivity in dB\n",
+ "exact_direct_db=10*log10(exact_direct)\n",
+ "\n",
+ "#approx directivity in dB\n",
+ "approx_direct_db=10*log10(approx_direct)\n",
+ "\n",
+ "print 'Exact directivity:',exact_direct_db,'dB'\n",
+ "print 'Approx. directivity:',approx_direct_db,'dB'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Exact Beam Solid Angle: 3.14159265359 steradians\n",
+ "Approximate Beam Solid Angle: 4.38649084493 steradians\n",
+ "Exact directivity: 6.02059991328 dB\n",
+ "Approx. directivity: 4.57092636745 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.8, Page 58"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import scipy\n",
+ "\n",
+ "#Maximum intensity\n",
+ "u_max=1\n",
+ "\n",
+ "#Calculation of radiated power\n",
+ "p_rad=dblquad(lambda x,y:(sin(x)**2)*sin(x),0,2*pi,lambda x:0,lambda x:pi)\n",
+ "print 'Radiated Power:',p_rad[0],'W'\n",
+ "\n",
+ "#Calulation of maximum directivity\n",
+ "D0=(4*pi)/(p_rad[0])\n",
+ "\n",
+ "#Directivity in dB\n",
+ "D0_db=10*log10(D0)\n",
+ "print 'Directivity:',D0_db,'dB'\n",
+ "\n",
+ "deg=90\n",
+ "\n",
+ "#Calculation od directivity\n",
+ "D0_1=101/(deg-0.0027*deg**2)\n",
+ "D0_1_db=10*log10(D0_1)\n",
+ "print 'Directivity:',D0_1_db,'dB'\n",
+ "\n",
+ "#Calculation of directivity\n",
+ "D0_2=(-172.4)+(191*sqrt((0.818+(1/deg))))\n",
+ "D0_2_db=10*log10(D0_2)\n",
+ "print 'Directivity:',D0_2,'dB'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Radiated Power: 8.37758040957 W\n",
+ "Directivity: 1.76091259056 dB\n",
+ "Directivity: 1.70982984843 dB\n",
+ "Directivity: 0.346803154212 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.9(a), Page 61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import scipy\n",
+ "\n",
+ "B0=1\n",
+ "#Maximum intensity\n",
+ "u_max=1\n",
+ "\n",
+ "#Array containing angles in radians\n",
+ "a=sin(array([10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180])*pi/180)**2\n",
+ "\n",
+ "#Calculation of radiated power\n",
+ "p_rad1=B0*((pi/18)**2)*sum(a)*sum(a)\n",
+ "print 'Power Radiated:',p_rad1,'W'\n",
+ "\n",
+ "#Calculation of directivity\n",
+ "D0=(4*pi)/(p_rad1)\n",
+ "\n",
+ "print 'Directivity using numerical techniques:',D0\n",
+ "\n",
+ "#Calu=culation of radiated power\n",
+ "a=quad(lambda x:sin(x)**2,0,pi)\n",
+ "b=quad(lambda x:sin(x)**2,0,pi)\n",
+ "p_rad2=a[0]*b[0]\n",
+ "\n",
+ "#Directivity\n",
+ "D01=(4*pi)/(p_rad2)\n",
+ "\n",
+ "print 'Directivity:',D01"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power Radiated: 2.46740110027 W\n",
+ "Directivity using numerical techniques: 5.09295817894\n",
+ "Directivity: 5.09295817894\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.9(b), Page 63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import scipy\n",
+ "\n",
+ "\n",
+ "B0=1\n",
+ "\n",
+ "#Maximum intensity\n",
+ "u_max=1\n",
+ "\n",
+ "#Arrays containing angles in radians\n",
+ "a=sin(array([5,15,25,35,45,55,65,75,85])*pi/180)**2\n",
+ "b=sin(array([5,15,25,35,45,55,65,75,85])*pi/180)**2\n",
+ "\n",
+ "#Calculation of radiated power\n",
+ "p_rad=B0*((pi/18)**2)*(2*sum(a))*(2*sum(b))\n",
+ "\n",
+ "#Calculation of directivity\n",
+ "D0=(4*pi*u_max)/(p_rad)\n",
+ "\n",
+ "print 'Directivity using 18 divisions:',D0"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Directivity using 18 divisions: 5.09295817894\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.10, Page 68"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import scipy\n",
+ "\n",
+ "#maximum intensuty\n",
+ "u_max=1\n",
+ "B0=1\n",
+ "\n",
+ "#Input impedance in Ohms\n",
+ "inp_imp=73\n",
+ "#Characteristic impedance in Ohms\n",
+ "char_imp=50\n",
+ "\n",
+ "#Calculation of radiated power\n",
+ "p_rad=B0*quad(lambda x:1,0,2*pi)[0]*quad(lambda x:sin(x)**4,0,pi)[0]\n",
+ "\n",
+ "#Calulation of directivity\n",
+ "D0=(4*pi*u_max)/(p_rad)\n",
+ "\n",
+ "#conduction & dielectric efficiency ecd=1 since antenna is loseless\n",
+ "ecd=1\n",
+ "\n",
+ "#Maximum Gain\n",
+ "G0=ecd*D0\n",
+ "G0_db=10*log10(G0)\n",
+ "\n",
+ "#Reflection Coefficient Tau\n",
+ "tau=float(inp_imp-char_imp)/float(inp_imp+char_imp)\n",
+ "\n",
+ "#Reflection efficiency=1-tau**2\n",
+ "er=1-tau**2\n",
+ "er_db=10*log10(er)\n",
+ "\n",
+ "#Total efficiency\n",
+ "e0=er*ecd\n",
+ "e0_db=10*log10(e0)\n",
+ "\n",
+ "#Absolute Gain\n",
+ "G0_abs=e0*D0\n",
+ "G0abs_db=10*log10(G0_abs)\n",
+ "\n",
+ "print 'Maximum Gain:',G0_db\n",
+ "\n",
+ "print 'Reflection efficiency:',er_db\n",
+ "\n",
+ "print 'Total efficiency:',e0_db\n",
+ "\n",
+ "print 'Absolute Gain:',G0abs_db"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum Gain: 2.29848855242\n",
+ "Reflection efficiency: -0.154573670944\n",
+ "Total efficiency: -0.154573670944\n",
+ "Absolute Gain: 2.14391488148\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.11, Page 77"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import scipy\n",
+ "\n",
+ "#unit vector of the wave\n",
+ "rho_w=array([1,0])\n",
+ "\n",
+ "#unit vector of the electric field\n",
+ "rho_a=array([1/sqrt(2),1/sqrt(2)])\n",
+ "\n",
+ "#Polarization factor\n",
+ "PLF=abs(dot(rho_w,rho_a))**2\n",
+ "print 'Polarization Factor:',PLF"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.12, Page 78"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import scipy\n",
+ "\n",
+ "#unit vector of the wave\n",
+ "rho_w=array([1/sqrt(2),1/sqrt(2)])\n",
+ "\n",
+ "#unit vector of the electric field\n",
+ "rho_a=array([1/sqrt(2),-1/sqrt(2)])\n",
+ "\n",
+ "#Polarization Factor\n",
+ "PLF=abs(dot(rho_w,rho_a))**2\n",
+ "\n",
+ "print 'Polarization Factor:',PLF"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 57
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.13, Page 86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import scipy\n",
+ "\n",
+ "#Radiation Resistance\n",
+ "rad_res=73\n",
+ "\n",
+ "#Frequency of antenna\n",
+ "f=10**8\n",
+ "\n",
+ "#Velocity\n",
+ "v=3*10**8\n",
+ "\n",
+ "#Wavelength\n",
+ "lamda=v/f\n",
+ "\n",
+ "#Length of antenna\n",
+ "l=lamda/2\n",
+ "\n",
+ "#Perimeter of the antenna\n",
+ "b=(3*10**-4)*lamda\n",
+ "C=2*pi*b\n",
+ "\n",
+ "#value of omega\n",
+ "w=2*pi*f\n",
+ "\n",
+ "#Constant\n",
+ "mu0=4*pi*10**-7\n",
+ "\n",
+ "#Conductivity\n",
+ "sigma=5.7*10**7\n",
+ "\n",
+ "#High frequency resistance\n",
+ "Rhf=(l/C)*(sqrt((w*mu0)/(2*sigma)))\n",
+ "\n",
+ "#Load resistance\n",
+ "Rl=Rhf/2\n",
+ "\n",
+ "#calculation of conduction & dielectric efficiency\n",
+ "ecd=(rad_res)/(rad_res+Rl)\n",
+ "ecd_db=10*log10(ecd)\n",
+ "\n",
+ "print 'Conduction-dielectric efficiency:',ecd_db"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Conduction-dielectric efficiency: -0.0138216614754\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.16, Page 98 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import scipy\n",
+ "\n",
+ "lamda=1\n",
+ "\n",
+ "#Maximum directivity of transmitter\n",
+ "D0_t_db=16\n",
+ "D0_t=10**(float(D0_t_db)/10)\n",
+ "\n",
+ "#Maximum directivity of receiver\n",
+ "D0_r_db=20\n",
+ "D0_r=10**(D0_r_db/10)\n",
+ "\n",
+ "#Reflection coeficients of transmitter and receiver\n",
+ "tau_r=0.1\n",
+ "tau_t=0.2\n",
+ "\n",
+ "#Power at transmitter\n",
+ "P_t=2\n",
+ "\n",
+ "#Calculation of Power to the receiver\n",
+ "P_r=(1-tau_r**2)*(1-tau_t**2)*((lamda/(4*pi*100*lamda))**2)*D0_t*D0_r*P_t\n",
+ "print 'Power delivered to the load of receiver:',P_r,'W'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power delivered to the load of receiver: 0.00479199874075 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.18, Page 108"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import scipy\n",
+ "\n",
+ "#antenna temp at receiver terminals\n",
+ "Ta=150\n",
+ "\n",
+ "#physical temp of transmission line\n",
+ "T0=300\n",
+ "\n",
+ "#thermal efficiency of the antennna\n",
+ "eA=0.99\n",
+ "\n",
+ "#antenna physical temperature\n",
+ "Tp=300\n",
+ "l=1\n",
+ "\n",
+ "#antenna temp at antenna terminals due to physical temperature\n",
+ "T_ap=Tp*(1/eA-1)\n",
+ "\n",
+ "#Loss of waveguide in dB/m\n",
+ "alpha_db=0.13\n",
+ "\n",
+ "#Loss of waveguide in Np/m\n",
+ "alpha_np=alpha_db/0.868\n",
+ "\n",
+ "#Calulation of effective temperature\n",
+ "T_A=Ta*exp(-l*alpha_np*2)+T_ap*exp(-l*alpha_np*2)+T0*(1-exp(-l*alpha_np*2))\n",
+ "print 'Effective temperature:',T_A,'K'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Effective temperature: 191.071984919 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter4.ipynb b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter4.ipynb new file mode 100644 index 00000000..bad6ca64 --- /dev/null +++ b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter4.ipynb @@ -0,0 +1,145 @@ +{
+ "metadata": {
+ "name": "chapter 4.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4. Linear Wire Antennas"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.1, Page 156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#lambda is very small\n",
+ "lamda=0.0001\n",
+ "\n",
+ "#Length of infinitesimal dipole\n",
+ "l=lamda/50\n",
+ "\n",
+ "#Calculation of radiation resistance\n",
+ "R_r=80*(pi**2)*(l/lamda)**2\n",
+ "\n",
+ "print 'Radiation resisitance:',R_r,'Ohms'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Radiation resisitance: 0.315827340835\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3, Page 168"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Lamda is a variable value in this example and therefore we will write a function to calculate the differences by passing different values of lambda\n",
+ "\n",
+ "def phase_diff(z,r,lamda):\n",
+ " R1=sqrt(z**2+r**2)\n",
+ " R2=r\n",
+ " phase_diff=(2*pi/lamda)*(R1-R2)\n",
+ " print 'The phase difference is:',phase_diff,'radians.'\n",
+ " \n",
+ " \n",
+ "def amp_diff(z,r,lamda):\n",
+ " R1=sqrt(z**2+r**2)\n",
+ " R2=r\n",
+ " amp_diff=(1/R1)-(1/R2)\n",
+ " print 'The amplitude difference is:',amp_diff\n",
+ " \n",
+ "#We will assume lamda = 50\n",
+ "lamda=50\n",
+ "\n",
+ "#Given\n",
+ "l=5*lamda\n",
+ "r=60*lamda\n",
+ "\n",
+ "#z=2.5lamda at 90 degree\n",
+ "z=2.5*lamda\n",
+ "\n",
+ "phase_diff(z,r,lamda)\n",
+ "amp_diff(z,r,lamda)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The phase difference is: 0.327107322652 radians.\n",
+ "The amplitude difference is: 0.000333044357697\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4, Page 194"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given is the input resistance of dipole\n",
+ "R=50\n",
+ "\n",
+ "#Calculation of gain G\n",
+ "G=pow(float(R)/24.7,1/2.5)\n",
+ "\n",
+ "print G"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1.32589526731\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter5.ipynb b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter5.ipynb new file mode 100644 index 00000000..b0a3023c --- /dev/null +++ b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter5.ipynb @@ -0,0 +1,189 @@ +{
+ "metadata": {
+ "name": "chapter 5.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5. Loop Antennas"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.1, Page 239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Assuming lamda = 50\n",
+ "lamda=50\n",
+ "\n",
+ "#Given radius = lamda/25\n",
+ "radius=lamda/25\n",
+ "\n",
+ "def rad_res(radius,turns,lamda):\n",
+ " S=pi*radius**2\n",
+ " res=31171*turns**2*S**2/lamda**4\n",
+ " print 'Radiation resistance for %d turns is: %f Ohms'%(turns,res)\n",
+ " \n",
+ "rad_res(radius,1,lamda)\n",
+ "rad_res(radius,8,lamda)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Radiation resistance for 1 turns is: 0.787572 Ohms\n",
+ "Radiation resistance for 8 turns is: 50.404629 Ohms\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given data is radius of loop and wire, frequency, conductivity\n",
+ "\n",
+ "lamda=50.0\n",
+ "\n",
+ "a=lamda/25\n",
+ "b=lamda*10**-4\n",
+ "f=100*10**6\n",
+ "space=4*10**-4*lamda\n",
+ "cond=5.7*10**7\n",
+ "omega=2*pi*f\n",
+ "mu_0=4*pi*10**-7\n",
+ "rad_res1=0.788\n",
+ "rad_res50=50.43\n",
+ "\n",
+ "Rl=(a/b)*sqrt(omega*mu_0/(2*cond))\n",
+ "ecd1=rad_res1/(rad_res1+Rl)\n",
+ "print \"Radiation efficiency of a single turn loop antenna is : %f\"%(ecd1*100)\n",
+ "\n",
+ "N=8\n",
+ "Rp_R0=0.38\n",
+ "R_ohmic=(N*a/b)*sqrt(omega*mu_0/(2*cond))*(1+Rp_R0)\n",
+ "ecd2=rad_res50/(rad_res50+R_ohmic)\n",
+ "print \"Radiation efficiency of an 8 turn loop antenna is : %f\"%(ecd2*100)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Radiation efficiency of a single turn loop antenna is : 42.809924\n",
+ "Radiation efficiency of an 8 turn loop antenna is : 81.270876\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.3, Page 243"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "lamda=50\n",
+ "\n",
+ "#Radius\n",
+ "a=lamda/25\n",
+ "\n",
+ "S=pi*a**2\n",
+ "\n",
+ "print 'Physical area of loop:',S\n",
+ "\n",
+ "#Effective aperture\n",
+ "Aem=(3*lamda**2)/(8*pi)\n",
+ "\n",
+ "comp=Aem/S\n",
+ "\n",
+ "print 'Electrically the loop is',comp,'times bigger than physical area,'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Physical area of loop: 12.5663706144\n",
+ "Electrically the loop is 23.7471524162 times bigger than physical area,\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.4, Page no. 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To design a resonant loop antenna omega=12 & circumference=1.125*lamda\n",
+ "omega=12\n",
+ "f=100*10**6\n",
+ "v=3*10**8\n",
+ "lamda=v/f\n",
+ "circum=1.125*lamda\n",
+ "a=circum/(2*pi)\n",
+ "print \"The radius of the loop is: %f m\"%(a)\n",
+ "\n",
+ "b=(2*pi*a)/(exp(omega/2.0))\n",
+ "print \"The radius of the wire is : %f m\"%b\n",
+ "\n",
+ "print \"The axial directivity is calculated as 3.6 dB.\"\n",
+ "print \"There is no need of a lumped element to resonate the radiator, since the antenna is self-resonant.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The radius of the loop is: 0.537148 m\n",
+ "The radius of the wire is : 0.008366 m\n",
+ "The axial directivity is calculated as 3.6 dB.\n",
+ "There is no need of a lumped element to resonate the radiator, since the antenna is self-resonant.\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter6.ipynb b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter6.ipynb new file mode 100644 index 00000000..29d7ea0a --- /dev/null +++ b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter6.ipynb @@ -0,0 +1,427 @@ +{
+ "metadata": {
+ "name": "chapter 6.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6. Arrays: Linear, Planar and Circular"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.1, Page No. 286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#We know that E=cos(theta)*cos(pi*cos(theta)/4)\n",
+ "#To find the nulls we equate the above equation with 0 at null angle\n",
+ "theta_b0=math.acos(0)\n",
+ "print \"Nulls for beta equal to 0: %d deg\" %(math.degrees(theta_b0))\n",
+ "\n",
+ "theta_b_pi_2_p=math.acos(0)\n",
+ "print \"Nulls for beta equal to +pi/2: %d deg\" %(math.degrees(theta_b_pi_2_p))\n",
+ "\n",
+ "theta_b_pi_2_n=math.acos(0)\n",
+ "theta_b_pi_2_n2=math.acos(1+(4/pi)*(-pi/2))\n",
+ "print \"Nulls for beta equal to -pi/2: %d deg %d deg\" %(math.degrees(theta_b_pi_2_n),math.degrees(theta_b_pi_2_n2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Nulls for beta equal to 0: 90 deg\n",
+ "Nulls for beta equal to +pi/2: 90 deg\n",
+ "Nulls for beta equal to -pi/2: 90 deg 180 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.2, Page No. 290"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "#To find the nulls we have to equate E=cos(theta)*cos(0.5*(k*d*cos(theta)+beta))\n",
+ "theta_n=math.acos(0)\n",
+ "print \"Nulls occur at : %d deg\" %math.degrees(theta_n)\n",
+ "\n",
+ "#lamda=50.0\n",
+ "#d=lamda/2\n",
+ "#beta=pi/2\n",
+ "#theta_n1=np.zeros(11)\n",
+ "#n=np.linspace(0,10,11,'int')\n",
+ "#for i in range(0,11):\n",
+ " # theta_n1[i]=math.acos((lamda/(2*pi*d))*(-beta+(2*int(n[i])+1)*pi))\"\"\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Nulls occur at : 90 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3, Page No. 315"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Let us assume lambda = 50\n",
+ "lamda=50\n",
+ "N=10\n",
+ "d=lamda/4\n",
+ "\n",
+ "D0=(2*N)*(float(d)/lamda)\n",
+ "D0_dB=10*log10(D0)\n",
+ "print \"Directivity of the array antenna:\",D0_dB,\"dB\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Directivity of the array antenna: 6.81241237376 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.4, Page No. 317"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#assume lamda = 50\n",
+ "\n",
+ "lamda=50\n",
+ "d=float(lamda)/4\n",
+ "N=10\n",
+ "\n",
+ "D0=(4*N)*(d/lamda)\n",
+ "D0_dB=10*log10(D0)\n",
+ "\n",
+ "print \"Directivity of antenna:\",D0_dB,\"dB\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Directivity of antenna: 10.0 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.5, Page No. 318"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#assume lamda = 50\n",
+ "\n",
+ "lamda=50\n",
+ "d=float(lamda)/4\n",
+ "\n",
+ "D0=1.805*(4*N)*(d/lamda)\n",
+ "D0_dB=10*log10(D0)\n",
+ "\n",
+ "print \"Directivity of Hansen-Woodyard antenna:\",D0_dB,\"dB\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Directivity of Hansen-Woodyard antenna: 12.5647720624 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6, Page No. 319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import scipy\n",
+ "#assume lamda=50\n",
+ "lamda=50.0\n",
+ "\n",
+ "#Given data\n",
+ "theta=30\n",
+ "theta0=theta*pi/180\n",
+ "d=lamda/4\n",
+ "k=(2*pi)/lamda\n",
+ "\n",
+ "beta=-k*d*cos(theta0)\n",
+ "\n",
+ "print \"Progressive phase:\",beta,\"radians\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1.36034952318\n",
+ "Progressive phase: -1.36034952318 radians\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.8, Page No. 331"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given N=10\n",
+ "N=10\n",
+ "#function to calculate HPBW\n",
+ "def hp(N):\n",
+ " return 1.06/(sqrt(N-1))\n",
+ "\n",
+ "HPBW=hp(N)\n",
+ "\n",
+ "print \"Half-power Beamwidth:\",HPBW,\"radians, \",HPBW*180/pi,\"degrees\"\n",
+ "\n",
+ "#directivity given by formula d0=((2N-2)(2N-4)...2)/((2N-3)(2N-5)...1) here N=10\n",
+ "\n",
+ "#Function to calculate the directivity\n",
+ "def d0(N):\n",
+ " nume=numer(N)\n",
+ " deno=denom(N)\n",
+ " return float(nume)/deno\n",
+ "\n",
+ "#Function to calculate the numerator of the above formula\n",
+ "def numer(N):\n",
+ " temp=1\n",
+ " i=2\n",
+ " while(2*N-i)>1:\n",
+ " temp=temp*(2*N-i)\n",
+ " i=i+2\n",
+ " return temp\n",
+ "\n",
+ "#Function to calculate denominator of the above formula\n",
+ "def denom(N):\n",
+ " temp=1\n",
+ " i=3\n",
+ " while(2*N-i)>0:\n",
+ " temp=temp*(2*N-i)\n",
+ " i=i+2\n",
+ " return temp\n",
+ "\n",
+ "\n",
+ "D01=d0(N)\n",
+ "D0_dB=10*log10(D01)\n",
+ "print \"Directivity:\",D0_dB,\"dB\"\n",
+ "\n",
+ "D02=1.77*sqrt(N)\n",
+ "print \"Directivity using other formula:\",10*log10(D02),\"dB\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Half-power Beamwidth: 0.353333333333 radians, 20.2445087613 degrees\n",
+ "Directivity: 7.31724967444 dB\n",
+ "Directivity using other formula: 7.47973266362 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.10, Page No. 343"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import scipy\n",
+ "import math\n",
+ "#Given R0=26db\n",
+ "R0_dB=26.0\n",
+ "\n",
+ "R0=pow(10,(R0_dB/20))\n",
+ "R0=int(math.ceil(R0))\n",
+ "#broadening factor f\n",
+ "f=1+(0.636)*((2.0/R0)*cosh(sqrt(math.acosh(R0)**2-pi**2)))**2\n",
+ "print \"Broadening factor:\",f\n",
+ "\n",
+ "#theta_h from the graph\n",
+ "theta_h=10.17\n",
+ "\n",
+ "beamwidth=theta_h*f\n",
+ "print \"Beamwidth:\",beamwidth,\"deg.\"\n",
+ "\n",
+ "#Assume lamda = 50\n",
+ "lamda=50\n",
+ "L_plus_d=5*lamda\n",
+ "\n",
+ "D0=(2*R0**2)/(1+(R0**2-1)*f*(float(lamda)/L_plus_d))\n",
+ "print \"Directivity:\",D0,\",\",10*log10(D0),\"dB\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Broadening factor: 1.079024504\n",
+ "Beamwidth: 10.9736792057 deg.\n",
+ "Directivity: 9.18419595205 , 9.63041141167 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.11, Page No. 361"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Function to calculate sec(x)\n",
+ "def sec(t):\n",
+ " return sqrt(1+tan(t)**2)\n",
+ "\n",
+ "x=pi/180 #Factor to convert degrees to radians, in-built function is also present\n",
+ "\n",
+ "#this example relies on data of Example 6.10\n",
+ "lamda=50\n",
+ "L_plus_d=5*lamda\n",
+ "theta_x0=theta_y0=10.97 #from example 6.10\n",
+ "\n",
+ "theta_0=30 #Given\n",
+ "theta_h=theta_x0*sec(theta_0*x)\n",
+ "\n",
+ "psi_h=theta_x0\n",
+ "\n",
+ "omega_a=theta_h*psi_h\n",
+ "print \"Solid angle:\",omega_a,\"deg_square\"\n",
+ "\n",
+ "D0x=D0y=9.18 #from ex 6.10\n",
+ "\n",
+ "#Directivity of the array \n",
+ "D0=pi*cos(theta_0*x)*D0x*D0x\n",
+ "\n",
+ "print \"Directivity:\",D0,\", in dB:\",10*log10(D0),\"dB\"\n",
+ "\n",
+ "D01=32400.0/(omega_a)\n",
+ "\n",
+ "print \"Directivity using 6-101:\",D01,\", in dB:\",10*log10(D01),\"dB\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Solid angle: 138.957702019 deg_square\n",
+ "Directivity: 229.279838314 , in dB: 23.6036586679 dB\n",
+ "Directivity using 6-101: 233.164477602 , in dB: 23.6766238675 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter7.ipynb b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter7.ipynb new file mode 100644 index 00000000..a14812ad --- /dev/null +++ b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter7.ipynb @@ -0,0 +1,114 @@ +{
+ "metadata": {
+ "name": "chapter7.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7: Antenna Synthesis and Continuous Sources"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.1, Page no. 392"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#In this example the values of a1,a2,a3,a4 are found\n",
+ "#the values of z1 z2 z3 are substituted in the equation AF=(z-z1)(z-z2)(z-z3)\n",
+ "a1=-1\n",
+ "a2=1\n",
+ "a3=-1\n",
+ "a4=1\n",
+ "print \"The values of a1, a2, a3 and a4 are %d, %d, %d and %d respectively\"%(a1,a2,a3,a4)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The values of a1, a2, a3 and a4 are -1, 1, -1 and 1 respectively\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.3, Page no. 398"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import numpy as np\n",
+ "import scipy.integrate as integrate\n",
+ "a=np.zeros(11)\n",
+ "for m in range(0,11):\n",
+ " a[m]=integrate.quad(lambda x: exp(-1j*m*x) , (-pi/sqrt(2)) , (pi/sqrt(2)))[0]\n",
+ "maxval = a[0]\n",
+ "for i in range(0,11):\n",
+ " if maxval<a[i]:\n",
+ " maxval = a[i]\n",
+ "\n",
+ "print 'Normalized Co-efficients:';\n",
+ "for i in range(0,11):\n",
+ " a[i]=a[i]/maxval\n",
+ " print 'a',i,':',a[i]"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Normalized Co-efficients:\n",
+ "a 0 : 1.0\n",
+ "a 1 : 0.358187786013\n",
+ "a 2 : -0.216954294377\n",
+ "a 3 : 0.0558163210177\n",
+ "a 4 : 0.0577652398568\n",
+ "a 5 : -0.0894712295755\n",
+ "a 6 : 0.0518110265309\n",
+ "a 7 : 0.0101104236117\n",
+ "a 8 : -0.0495750638142\n",
+ "a 9 : 0.0455187541912\n",
+ "a 10 : -0.00996721500244\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter8.ipynb b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter8.ipynb new file mode 100644 index 00000000..ff84f268 --- /dev/null +++ b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter8.ipynb @@ -0,0 +1,184 @@ +{
+ "metadata": {
+ "name": "chapter8.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8: Integral Equations, Moment Method and Self and Mutual impedances"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.1, Page no. 438"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "#given\n",
+ "a=0.001\n",
+ "delta=0.2\n",
+ "N=5\n",
+ "epsilon=8.854*10**-12\n",
+ "V_m=4*pi*epsilon\n",
+ "\n",
+ "z=np.zeros([N,N])\n",
+ "b=np.zeros(N)\n",
+ "\n",
+ "for i in range(0,N):\n",
+ " b[i]=V_m\n",
+ "\n",
+ "def m_eq_n(d,a):\n",
+ " temp=2*log(((d/2.0)+sqrt((a**2)+((d/2)**2)))/(a))\n",
+ " return temp\n",
+ "\n",
+ "def m_less(m,n,d,a):\n",
+ " l_m=abs(d*n-d*m)\n",
+ " d_mn_p=l_m+d/2\n",
+ " d_mn_n=l_m-d/2\n",
+ " \n",
+ " temp=log((d_mn_p+(d_mn_p**2+a**2)**(0.5))/(d_mn_n+(d_mn_n**2+a**2)**(0.5)))\n",
+ " return temp\n",
+ "\n",
+ "def m_grt(m,n,d,a):\n",
+ " l_m=abs(d*n-d*m)\n",
+ " d_mn_p=l_m+d/2\n",
+ " d_mn_n=l_m-d/2\n",
+ " \n",
+ " temp=log(d_mn_p/d_mn_n)\n",
+ " return temp\n",
+ "\n",
+ "for i in range(0,N):\n",
+ " for j in range(0,N):\n",
+ " if i==j:\n",
+ " z[i][j]=m_eq_n(delta,a)\n",
+ " elif abs(i-j) <= 2:\n",
+ " z[i][j]=m_less(i,j,delta,a)\n",
+ " else:\n",
+ " z[i][j]=m_grt(i,j,delta,a)\n",
+ "print \"The Z-matrix is:\"\n",
+ "print z\n",
+ "\n",
+ "print \"The Vm matrix is:\"\n",
+ "print b\n",
+ "\n",
+ "a=np.linalg.solve(z,b)\n",
+ "print \"Charge distribution:\\n\"\n",
+ "for i in range(0,N):\n",
+ " print \"a%d:\"%i,a[i]*10**12,\"pC/m\"\n",
+ " \n",
+ "m=np.linspace(0,1,11)\n",
+ "C=np.zeros(N*2+1)\n",
+ "i=j=0\n",
+ "while j<5 and i<10:\n",
+ " C[i]=a[j]*10**12\n",
+ " C[i+1]=a[j]*10**12\n",
+ " i=i+2\n",
+ " j=j+1\n",
+ "print C\n",
+ "\n",
+ "\n",
+ "plt.plot(m,C)\n",
+ "plt.xlabel(\"Length(m)\")\n",
+ "plt.ylabel(\"Charge Density(pC/m)\")\n",
+ "plt.axis([0.0,1.0,7,10])\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Z-matrix is:\n",
+ "[[ 10.59668473 1.09859007 0.51082385 0.33647224 0.25131443]\n",
+ " [ 1.09859007 10.59668473 1.09859007 0.51082385 0.33647224]\n",
+ " [ 0.51082385 1.09859007 10.59668473 1.09859007 0.51082385]\n",
+ " [ 0.33647224 0.51082385 1.09859007 10.59668473 1.09859007]\n",
+ " [ 0.25131443 0.33647224 0.51082385 1.09859007 10.59668473]]\n",
+ "The Vm matrix is:\n",
+ "[ 1.11262645e-10 1.11262645e-10 1.11262645e-10 1.11262645e-10\n",
+ " 1.11262645e-10]\n",
+ "Charge distribution:\n",
+ "\n",
+ "a0: 8.81086751577 pC/m\n",
+ "a1: 8.08998670069 pC/m\n",
+ "a2: 7.97286010025 pC/m\n",
+ "a3: 8.08998670069 pC/m\n",
+ "a4: 8.81086751577 pC/m\n",
+ "[ 8.81086752 8.81086752 8.0899867 8.0899867 7.9728601 7.9728601\n",
+ " 8.0899867 8.0899867 8.81086752 8.81086752 0. ]\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5f35cb0>"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.6, Page no. 474"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "Z11 = 73 + 42.5j\n",
+ "Z12 = 25-38j\n",
+ "\n",
+ "Z_1d = Z11 + Z12\n",
+ "\n",
+ "print 'Z1d:',Z_1d"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Z1d: (98+4.5j)\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter9.ipynb b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter9.ipynb new file mode 100644 index 00000000..d5da6913 --- /dev/null +++ b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/chapter9.ipynb @@ -0,0 +1,170 @@ +{
+ "metadata": {
+ "name": "chapter 9.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9: Broadband Dipoles and Matching Techniques"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.1, Page no. 526"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "N=2\n",
+ "RL=100\n",
+ "Z0=50\n",
+ "\n",
+ "#Function to calculate factorial\n",
+ "def fact(n):\n",
+ " if n==0:\n",
+ " return 1\n",
+ " return n*fact(n-1)\n",
+ "\n",
+ "#Function to calculate the value of rho\n",
+ "def rho(n,N,RL,Z0):\n",
+ " temp=(2**(-N))*(float((RL-Z0))/(RL+Z0))*(fact(N)/(fact(N-n)*fact(n)))\n",
+ " return temp\n",
+ "\n",
+ "\n",
+ "def char_imp(rho,Z0):\n",
+ " temp=Z0*(1+rho)/(1-rho)\n",
+ " return temp\n",
+ "\n",
+ "\n",
+ "rho_0=rho(0,N,RL,Z0)\n",
+ "rho_1=rho(1,N,RL,Z0)\n",
+ "\n",
+ "Z1=char_imp(rho_0,Z0)\n",
+ "Z2=char_imp(rho_1,Z0)\n",
+ "\n",
+ "frac_bw=0.375\n",
+ "rho_m=(float(RL-Z0)/(RL+Z0))*(cos((-pi/4)*(frac_bw-2)))**2\n",
+ "\n",
+ "print \"Maximum tolerable co-efficient:\",rho_m\n",
+ "\n",
+ "VSWR=(1+rho_m)/(1-rho_m)\n",
+ "\n",
+ "print \"VSWR:\",VSWR"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum tolerable co-efficient: 0.0280883979496\n",
+ "VSWR: 1.05780031412\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.2, Page no. 536"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given\n",
+ "f=15*10**6\n",
+ "v=3*10**8\n",
+ "lamda=v/float(f)\n",
+ "\n",
+ "a=0.95*10**-3*lamda\n",
+ "a1=3.175*10**-4*lamda\n",
+ "s=3.81*10**-3*lamda\n",
+ "u=ceil((a/2)/(a1/2))\n",
+ "v=ceil(s/(a1/2))\n",
+ "print \"u: %f, v: %f\" %(u,v)\n",
+ "\n",
+ "alpha=log(v)/(log(v)-log(u))\n",
+ "print \"Alpha: %f\" %alpha\n",
+ "\n",
+ "step_up=(1+alpha)**2\n",
+ "print \"Step-up ratio: %f\" %step_up\n",
+ "\n",
+ "Za=30.44*(1-1j)\n",
+ "Z2=step_up*Za/2\n",
+ "print \"Z2:\",Z2,\"ohms\"\n",
+ "\n",
+ "Z0=276*log10((2*s)/sqrt(a*a1))\n",
+ "print \"Z0:\",Z0,\"ohms\"\n",
+ "\n",
+ "z2=Z2/Z0\n",
+ "print \"z2:\",z2,\"ohms\"\n",
+ "\n",
+ "y2=1/z2\n",
+ "print \"y2:\",y2,\"ohms\"\n",
+ "\n",
+ "#zg is calculated using smith's chart\n",
+ "zg=0+0.23j\n",
+ "\n",
+ "yg=1/zg\n",
+ "print \"Generator admittance:\",yg,\"siemens\"\n",
+ "\n",
+ "yin=y2+yg\n",
+ "print \"Input admittance:\",yin,\"siemens\"\n",
+ "\n",
+ "zin=1/yin\n",
+ "print \"Input impedance:\",zin,\"ohms\"\n",
+ "\n",
+ "Zin=Z0*zin\n",
+ "print \"Unnormalized impedance:\",Zin,\"ohms\"\n",
+ "\n",
+ "C=1/(2*pi*f*Zin.imag)\n",
+ "print \"Capacitance: %f pF\" %(C*10**12)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "u: 3.000000, v: 24.000000\n",
+ "Alpha: 1.528321\n",
+ "Step-up ratio: 6.392406\n",
+ "Z2: (97.2924229345-97.2924229345j) ohms\n",
+ "Z0: 315.253079871 ohms\n",
+ "z2: (0.308616883217-0.308616883217j) ohms\n",
+ "y2: (1.62013171408+1.62013171408j) ohms\n",
+ "Generator admittance: -4.34782608696j siemens\n",
+ "Input admittance: (1.62013171408-2.72769437288j) siemens\n",
+ "Input impedance: (0.160964593914+0.27100402593j) ohms\n",
+ "Unnormalized impedance: (50.7445839816+85.4348538319j) ohms\n",
+ "Capacitance: 124.192049 pF\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/screenshots/chapter14.png b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/screenshots/chapter14.png Binary files differnew file mode 100644 index 00000000..2fc88f4a --- /dev/null +++ b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/screenshots/chapter14.png diff --git a/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/screenshots/chapter15.png b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/screenshots/chapter15.png Binary files differnew file mode 100644 index 00000000..ff2bb90b --- /dev/null +++ b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/screenshots/chapter15.png diff --git a/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/screenshots/chapter16.png b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/screenshots/chapter16.png Binary files differnew file mode 100644 index 00000000..9a288f96 --- /dev/null +++ b/Antenna_Theory_-_Analysis_and_Design_by_C.A._Balanis/screenshots/chapter16.png diff --git a/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter10.ipynb b/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter10.ipynb new file mode 100644 index 00000000..2e4d7f3a --- /dev/null +++ b/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter10.ipynb @@ -0,0 +1,1074 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 10 Introduction to operational amplifiers" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 10_1 PG-10.7" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Refer to the figure-10.5 shown\n", + "\n", + " when CMRR=100\n", + "\n", + " common mode gain Ac=50 \n", + "\n", + " output voltage is Vo=313.5 mV \n", + "\n", + "\n", + " when CMRR=100000\n", + "\n", + " common mode gain Ac=0.05 \n", + "\n", + " output voltage is Vo=300.0135 mV \n", + "\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "print \"Refer to the figure-10.5 shown\"\n", + "V1=300e-6#\n", + "V2=240e-6#\n", + "Vd=V1-V2#differential mode voltage \n", + "Vc=(V1+V2)/2##common mode voltage \n", + "Ad=5000##differential gain\n", + "print \"\\n when CMRR=100\"\n", + "CMRR=100##common mode rejection ratio\n", + "Ac=Ad/CMRR#\n", + "print \"\\n common mode gain Ac=%.f \\n\"%(Ac)\n", + "Vo=Ad*Vd+Ac*Vc##output voltage\n", + "print \" output voltage is Vo=%.1f mV \\n\"%(Vo*1e3)\n", + "print \"\\n when CMRR=100000\"\n", + "CMRR=1e5##common mode rejection ratio\n", + "Ac=Ad/CMRR#\n", + "print \"\\n common mode gain Ac=%.2f \\n\"%(Ac)\n", + "Vo=Ad*Vd+Ac*Vc##output voltage\n", + "print \" output voltage is Vo=%.4f mV \\n\"%(Vo*1e3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 10_2 PG-10.17" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " input bias current= 20 microA \n", + "\n", + "\n", + " input offset current= 4 microA \n", + "\n" + ] + } + ], + "source": [ + "Ib1=18##in microA\n", + "Ib2=22##in microA\n", + "Ib=(Ib1+Ib2)/2##input bias current\n", + "Ib=Ib\n", + "print \"\\n input bias current= %.0f microA \\n\"%(Ib)\n", + "Iios=(Ib1-Ib2)##input offset current\n", + "Iios=abs(Iios)#\n", + "Iios=Iios\n", + "print \"\\n input offset current= %.0f microA \\n\"%(Iios)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 10_3 PG-10.17" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Iios=Ib1-Ib2=20\n", + " ie Ib=(Ib1+Ib2)/2=60 ie Ib=(Ib1+Ib2)=120\n", + " values of Ib1 andIb2 are\n", + " 100 & -140 nA \n" + ] + } + ], + "source": [ + "Iios=20##Input offset current in nA\n", + "Ib=60##Input bias current in nA\n", + "#Iios=Ib1-Ib2=20\n", + "#Ib=(Ib1+Ib2)/2=60\n", + "#ie Ib=(Ib1+Ib2)=120\n", + "print \" Iios=Ib1-Ib2=20\"\n", + "print \" ie Ib=(Ib1+Ib2)/2=60 ie Ib=(Ib1+Ib2)=120\"\n", + "import numpy as np\n", + "a=np.mat([[1 ,-1],[1, 1]])##coefficient of Ib1 and Ib2 for Iios and Ib\n", + "b=np.mat([[20], [120]])##value of Iios and Ib\n", + "x=(a*-1)*b\n", + "print \" values of Ib1 andIb2 are\"\n", + "print \" %.0f & %0.0f nA \"%(x[0,0],x[1,0])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 10_4 PG-10.35" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Refer to the figure-10.32 shown\n", + "\n", + " the gain is -4.7 (inverting amplifier) \n", + "\n" + ] + } + ], + "source": [ + "print \"Refer to the figure-10.32 shown\"\n", + "#the circuit is an inverting amplifier\n", + "R1=10e3#\n", + "Rf=47e3##feedback resistance\n", + "A=-Rf/R1##gain of an inverting amplifier\n", + "print \"\\n the gain is %.1f (inverting amplifier) \\n\"%(A)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 10_5 PG-10.35" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "If Vm=0.5V then\n", + "\n", + " peak value of the output voltage Vo=2.5 V \n", + "\n", + "\n", + " if Vm=5V then\n", + "\n", + " peak value of the output voltage Vo=25 V \n", + "\n", + "but the opamp output saturates at +/- 12V hence portion above +12V and\n", + " below -12V will be clipped off.So 25V \n", + " peak output is not practically possible it will show upto +/- 12V\n" + ] + }, + { + "data": { + "image/png": "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\nAAAASUVORK5CYII=\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f30881150d0>" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f3074a6e550>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from numpy import pi, sin\n", + "R1=10e3#\n", + "Rf=50e3##feedback resistance\n", + "Vcc=12##supply voltage in volts\n", + "A=-Rf/R1##gain of an inverting amplifier\n", + "A=abs(A)##magnitude of the gain\n", + "print \"If Vm=0.5V then\"\n", + "Vm=0.5##peak value of the input voltage\n", + "Vo=A*Vm##output voltage\n", + "print \"\\n peak value of the output voltage Vo=%.1f V \\n\"%(Vo)\n", + "print \"\\n if Vm=5V then\"\n", + "Vm=5##peak value of the input voltage\n", + "Vo1=A*Vm##output voltage\n", + "print \"\\n peak value of the output voltage Vo=%.0f V \\n\"%(Vo1)\n", + "print \"but the opamp output saturates at +/- 12V hence portion above +12V and\"\n", + "print \" below -12V will be clipped off.So 25V \\n peak output is not practically possible it will show upto +/- 12V\"\n", + "%matplotlib inline\n", + "from matplotlib import pyplot as plt\n", + "plt.subplot(2,1,1) #input voltage Vin=0.5V peak\n", + "import numpy as np\n", + "x=np.arange(0,9,pi/100)\n", + "y=0.5*sin(x)\n", + "plt.plot(x,y)\n", + "#plt.xtitle(\"(Vin)m=0.5V\" ,\"time\"%(\"Input voltage Vin= 0.5V peak\"\n", + "plt.grid()\n", + "plt.subplot(2,1,2) #output voltage Vo=2.5V peak \n", + "x=np.arange(0,9,pi/100)\n", + "y=-Vo*sin(x) #output is inverted \n", + "plt.plot(x,y)\n", + "plt.title(\"(Vin)m=0.5V\" )\n", + "plt.xlabel(\"time\")\n", + "plt.ylabel(\"Output voltage(inverted) Vo=2.5V peak\")\n", + "plt.grid()\n", + "plt.show()\n", + "\n", + "plt.subplot(2,1,1) #input voltage Vin=5V peak\n", + "x=np.arange(0,9,pi/100)\n", + "y=5*sin(x)\n", + "plt.plot(x,y)\n", + "plt.title(\"(Vin)m=5V\" )\n", + "plt.xlabel(\"time\")\n", + "plt.ylabel(\"Input voltage Vin=5V peak\")\n", + "plt.grid()\n", + "plt.subplot(2,1,2) #output voltage Vo=25V peak but clipped at + or-12V \n", + "x=np.arange(0,9,pi/100)\n", + "y=-Vo1*sin(x) #output is inverted\n", + "#y(find(y > 12)) = 12# \n", + "#y(find(y < -12))= -12#\n", + "plt.plot(x,y)\n", + "plt.title(\"(Vin)m=5V\")\n", + "plt.xlabel(\"time\")\n", + "plt.ylabel(\"Output voltage(inverted) Vo=12V clipped\")\n", + "plt.grid()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 10_6 PG-10.36" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Reading on the AC voltmeter is 3.3234 V \n", + "\n" + ] + } + ], + "source": [ + "from numpy import sqrt\n", + "R1=10e3#\n", + "Rf=47e3##feedback resistance\n", + "Vcc=12##supply voltage\n", + "A=-Rf/R1##gain of an inverting amplifier\n", + "A=abs(A)##magnitude of the gain of an inverting amplifier\n", + "Vin=2##peak to peak input voltage\n", + "Voo=Vin*A##peak to peak output voltage\n", + "#the AC voltmeter measures the rms value\n", + "Vo=Voo/2##peak output voltage\n", + "Vrms=Vo/sqrt(2)##rms value of the output voltage\n", + "print \"\\n Reading on the AC voltmeter is %.4f V \\n\"%(Vrms)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 10_7 PG-10.37 ;;;;;;;;;;;;;;;;;;;;;;;" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " peak to peak value of the output voltage Vo = -0 V \n", + "\n", + "\n", + " voltage gain of the inverting amplifier Af = -1 \n", + " \n" + ] + }, + { + "data": { + "image/png": "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\nOOv5f1OiawJv4ryfAAAAAElFTkSuQmCC\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f30748a6a90>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "## R1=1e3#\n", + "Rf=10e3##feedback resistance\n", + "Vin=100e-3##input voltage peak to peak\n", + "A=-Rf/R1##gain of an inverting amplifier\n", + "Vo=A*Vin#\n", + "print \"\\n peak to peak value of the output voltage Vo = %.0f V \\n\"%(Vo)\n", + "print \"\\n voltage gain of the inverting amplifier Af = %.0f \\n \"%(A)\n", + "#plotting of the waveforms\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot, subplot, title, xlabel, ylabel, show, grid\n", + "plt.subplot(2,1,1) #input voltage Vin=0.5V peak\n", + "from numpy import arange, pi, sqrt, sin\n", + "x=arange(0,9,pi/100)\n", + "y=50*sin(x)\n", + "plot(x,y)\n", + "title(\"Input voltage Vin \")\n", + "xlabel(\"time\")\n", + "ylabel(\"Vin=100mV peak to peak\")\n", + "grid()\n", + "subplot(2,1,2) #output voltage Vo=2.5V peak\n", + "x=arange(0,9,pi/100) \n", + "y=-500*sin(x)\n", + "plot(x,y)\n", + "#xtitle(\"Output voltage Vo\" ,\"time\"%(\"Vo=1000mV peak to peak\"\n", + "grid()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 10_8 PG-10.40" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Refer to the figure-10.36 shown\n", + "\n", + " \n", + " The gain of the non inverting amplifier is A=1+Rf/R1\n", + "\n", + "\n", + " Therefore feedback resistance Rf=60 kohm \n", + "\n" + ] + } + ], + "source": [ + "A=61##gain required for the non inverting amplifier\n", + "R1=1e3#\n", + "print \"Refer to the figure-10.36 shown\\n\"\n", + "print \" \\n The gain of the non inverting amplifier is A=1+Rf/R1\"\n", + "#the gain of the non inverting amplifier is A=1+Rf/R1\n", + "x=A-1##x=Rf/R1\n", + "Rf=x*R1#\n", + "print \"\\n\\n Therefore feedback resistance Rf=%.0f kohm \\n\"%(Rf*1e-3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 10_9 PG-10.40" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Gain is 11\n", + "\n", + "For Vin =0.5V \n", + " Output voltage Vo=5.5 V \n", + "\n", + "For Vin =-3V \n", + " Output voltage Vo=-33.0 V \n", + "\n", + "\n", + " but Vo=-33V is not possible. Output will saturate at -12V \n", + "\n", + " And the remaining portion will be clipped from output.\n" + ] + } + ], + "source": [ + "R1=1e3#\n", + "Rf=10e3##feedback resistance\n", + "A=1+Rf/R1##gain of a non-inverting amplifier\n", + "print \"Gain is %.0f\\n\"%(A)\n", + "print \"For Vin =0.5V \"\n", + "Vin=0.5##input voltage\n", + "Vo=A*Vin#\n", + "print \" Output voltage Vo=%.1f V \\n\"%(Vo)\n", + "print \"For Vin =-3V \"\n", + "Vin=-3##input voltage\n", + "Vo=A*Vin#\n", + "print \" Output voltage Vo=%.1f V \\n\"%(Vo)\n", + "print \"\\n but Vo=-33V is not possible. Output will saturate at -12V \\n\"\n", + "print \" And the remaining portion will be clipped from output.\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 10_10 PG-10.48" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Refer to the figure-10.43 shown\n", + " \n", + "\n", + " Vb=Va=0 ................(1)\n", + "\n", + " Vb=0 \n", + " I1=(Vin-Vb)/R1=Vin/R1 \n", + " I1=(Vb-Vx)/R2=-Vx/R2 \n", + " \n", + " Vin/Rf=-Vx/R2\n", + "\n", + " =>Vx=-R2/R1*Vin........(2) \n", + " \n", + " now Vx=I2*R4 and (I1-I2)=(Vx-Vo)/R3 \n", + "\n", + " =>I2=Vx/R4 and I1-Vx/R4=(Vx-Vo)/R3 \n", + " Therefore \n", + " Vin/R1-Vx/R4=(Vx-Vo)/R3 ....\n", + ".......using I1=Vin/R1 \n", + " Vin/R1-Vx(1/R4+1/R3)=-Vo/R3 \n", + " \n", + " \n", + "Vin/R1-(-R2/R1)*Vin*(1/R4+1/R3)=-Vo/R3 ........using (2) \n", + "\n", + " Vin*(1/R1+R2/R1*(1/R4+1/R3))=-Vo/R3 \n", + " \n", + " \n", + "Vin=-(R1*R4/(R3*R4+R2*R3+R2*R4))*Vo \n", + " \n", + "\n", + " Acl=Vo/Vin=-(R3*R4+R2*R3+R2*R4)/(R1*R4) \n", + "\n", + "\n", + " closed loop gain Acl=-260 \n", + "\n", + "\n", + " equivalent feedback resistance Rf= 260 kohm \n" + ] + } + ], + "source": [ + "print \"Refer to the figure-10.43 shown\\n \"\n", + "#A is grounded so B is virtual ground\n", + "#Vb=Va=0\n", + "Vb=0#\n", + "R1=1e3#\n", + "R2=5e3#\n", + "R3=5e3#\n", + "R4=100#\n", + "print \"\\n Vb=Va=0 ................(1)\"\n", + "print \"\\n Vb=0 \\n I1=(Vin-Vb)/R1=Vin/R1 \\n I1=(Vb-Vx)/R2=-Vx/R2 \\n \\n Vin/Rf=-Vx/R2\"\n", + "print \"\\n =>Vx=-R2/R1*Vin........(2) \\n \\n now Vx=I2*R4 and (I1-I2)=(Vx-Vo)/R3 \\n\"\n", + "print \" =>I2=Vx/R4 and I1-Vx/R4=(Vx-Vo)/R3 \\n Therefore \\n Vin/R1-Vx/R4=(Vx-Vo)/R3 ....\"\n", + "print \".......using I1=Vin/R1 \\n Vin/R1-Vx(1/R4+1/R3)=-Vo/R3 \\n \\n \"\n", + "print \"Vin/R1-(-R2/R1)*Vin*(1/R4+1/R3)=-Vo/R3 ........using (2) \\n\"\n", + "print \" Vin*(1/R1+R2/R1*(1/R4+1/R3))=-Vo/R3 \\n \\n \" \n", + "print \"Vin=-(R1*R4/(R3*R4+R2*R3+R2*R4))*Vo \\n \\n\"\n", + "print \" Acl=Vo/Vin=-(R3*R4+R2*R3+R2*R4)/(R1*R4) \\n\"\n", + "Acl=-(R3*R4+R2*R3+R2*R4)/(R1*R4)#\n", + "print \"\\n closed loop gain Acl=%.0f \\n\"%(Acl)\n", + "Acl=abs(Acl)#\n", + "Rf=R1*Acl##equivalent feedback resistance\n", + "print \"\\n equivalent feedback resistance Rf= %.0f kohm \"%(Rf*1e-3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 10_11 PG-10.50" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Refer to the figure-10.45 and figure-10.45(a)shown\n", + "\n", + " output voltage Vo=30 V \n", + "\n" + ] + } + ], + "source": [ + "print \"Refer to the figure-10.45 and figure-10.45(a)shown\"\n", + "#the circuit is a non inverting amplifier\n", + "Vin=10##input voltage\n", + "#opamp input current is zero...\n", + "R1=10e3##resistance connected to the -ve terminal of the amplifier\n", + "R2=1e3##resistance connected to the +ve terminal of the amplifier to the input voltage \n", + "R3=1e3###resistance connected to the +ve terminal of the amplifier to the gound\n", + "Rf=50e3##feedback resistance\n", + "I=Vin/(R2+R3)#\n", + "Vb=I*R3#\n", + "V0=(1+Rf/R1)*Vb##output voltage\n", + "print \"\\n output voltage Vo=%.f V \\n\"%(V0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 10_12 PG-10.51" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Refer to the figure-10.46 and figure-10.46(a)shown\n", + "We split the circuit of the figure-10.46 as shown in figure-10.46(a)\n", + "For first stage the circuit is a non-inverting amplifier\n", + "Therefore Vo1 = 1.1*V1\n", + "\n", + " For the second stage we use superposition principle.\n", + " We use each input at one time\n", + "\n", + "First we assume Vo1 is active and V2 is grounded as shown in figure10.46(b)\n", + "Therefore Vo_ = -11.0*V1\n", + "then we assume V2 is active and Vo1 is grounded as shown in figure10.46(c)\n", + "Therefore Vo__ = 11.0*V2\n", + "\n", + " Therefore output voltage Vo = Vo_ + Vo__= 11V2-11V1 \n", + " =>Vo=11(V2-V1)\n" + ] + } + ], + "source": [ + "print \"Refer to the figure-10.46 and figure-10.46(a)shown\"\n", + "print \"We split the circuit of the figure-10.46 as shown in figure-10.46(a)\" \n", + "print \"For first stage the circuit is a non-inverting amplifier\"\n", + "Rf=10e3##feedback resistance for the first stage of the circuit\n", + "R1=100e3##value of R1 for the first stage of the circuit \n", + "from sympy import symbols\n", + "V1=symbols('V1')##V1=Vin\n", + "Vo1=(1+Rf/R1)*V1#\n", + "print \"Therefore Vo1 =\",Vo1\n", + "\n", + "print \"\\n For the second stage we use superposition principle.\\n We use each input at one time\\n\"\n", + "print \"First we assume Vo1 is active and V2 is grounded as shown in figure10.46(b)\"\n", + "Rf1=100e3##feedback resistance for figure-10.46(b)\n", + "R11=10e3##value of R1 for figure1-10.46(a)\n", + "Vo_=-Rf1/R11*Vo1##when V2=0V as shown in figure-10.46(b)\n", + "print \"Therefore Vo_ =\",Vo_\n", + "\n", + "print \"then we assume V2 is active and Vo1 is grounded as shown in figure10.46(c)\"\n", + "V2=symbols('V2')##V2=Vin\n", + "Vo__=(1+Rf1/R11)*V2##when Vo1=0V as shown in figure-10.46(c),it is a non inverting amplifier\n", + "print \"Therefore Vo__ =\",Vo__\n", + "print \"\\n Therefore output voltage Vo = Vo_ + Vo__= 11V2-11V1 \"\n", + "print \" =>Vo=11(V2-V1)\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 10_13 PG-10.62" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Refer to the figure-10.55 and shown\n", + "\n", + " output voltage Vout=-7 V \n", + "\n" + ] + } + ], + "source": [ + "print \"Refer to the figure-10.55 and shown\"\n", + "R1=1e3#\n", + "Rf=1e3##feedback resistance\n", + "Vin1=2#\n", + "Vin2=1#\n", + "Vin3=4#\n", + "Vout=-(Vin1+Vin2+Vin3)*Rf/R1\n", + "print \"\\n output voltage Vout=%.f V \\n\"%(Vout)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 10_14 PG-10.62" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Vo = -(3V1 + 4V2 + 5V3)\n", + "\n", + "\n", + " R1= 40kohm R2= 30kohm R3 = 24kohm\n", + "\n", + "\n", + " The circuit design is shown\n" + ] + } + ], + "source": [ + "print \"\\n Vo = -(3V1 + 4V2 + 5V3)\\n\\n\"\n", + "Rf=120##we assume feedback resistance to be equal to 120kohm\n", + "R1=Rf/3##Rf/R1=3 given \n", + "R2=Rf/4##Rf/R2=4 given \n", + "R3=Rf/5##Rf/R3=5 given \n", + "print \" R1= %.0fkohm R2= %.0fkohm R3 = %.0fkohm\\n\"%(R1,R2,R3)\n", + "print \"\\n The circuit design is shown\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 10_16 PG-10.64" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Therefore output voltage is Vo=12 V \n", + "\n", + "\n", + " Vo=12 \n", + "\n" + ] + } + ], + "source": [ + "## print \"Refer to the figure-10.58 and figure-10.58(a)shown\"\n", + "R1=1e3#\n", + "R2=R1#\n", + "Rf=5e3##feedback resistance\n", + "R=1e3##resistance connected to the inverting terminal\n", + "V1=1##first input voltage at the non inverting terminal\n", + "V2=3##second input voltage at the non inverting terminal\n", + "Vb=(V1*R2+V2*R1)/(R1+R2)##voltage at the non inverting terminal\n", + "Vo=(1+Rf/R)*Vb##output voltage \n", + "print \"\\n Therefore output voltage is Vo=%.0f V \\n\"%(Vo)\n", + "#alternatively we can find the output voltage by the following equation\n", + "Vo1=(R2*(R+Rf))/(R*(R1+R2))*V1+(R1*(R+Rf))/(R*(R1+R2))*V2 \n", + "print \"\\n Vo=%.0f \\n\"%(Vo1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 10_17 PG-10.65" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Refer to the figure-10.59 shown\n", + "\n", + " Therefore output voltage is Vo=-0.5 V \n", + "\n" + ] + } + ], + "source": [ + "print \"Refer to the figure-10.59 shown\"\n", + "Rf=10e3##feedback resistance\n", + "R1=10e3#\n", + "R2=20e3#\n", + "R3=30e3#\n", + "R4=40e3#\n", + "V1=-1##first input voltage at the inverting terminal\n", + "V2=2##second input voltage at the inverting terminal\n", + "V3=3##third input voltage at the inverting terminal\n", + "V4=-2##fourth input voltage at the inverting terminal\n", + "Vo=-(Rf/R1*V1+Rf/R2*V2+Rf/R3*V3+Rf/R4*V4)##output voltage\n", + "print \"\\n Therefore output voltage is Vo=%.1f V \\n\"%(Vo)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 10_18 PG-10.66" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Therefore output voltage is Vo=-20 V \n", + "\n" + ] + } + ], + "source": [ + "Rf=1e6##feedback resistance\n", + "R1=200e3#\n", + "R2=250e3#\n", + "R3=500e3#\n", + "V1=-2##first input voltage at the inverting terminal\n", + "V2=2##second input voltage at the inverting terminal\n", + "V3=11##third input voltage at the inverting terminal\n", + "Vo=-(Rf/R1*V1+Rf/R2*V2+Rf/R3*V3)##output voltage\n", + "print \"\\n Therefore output voltage is Vo=%.0f V \\n\"%(Vo)\n", + "#in the book the output Vo=-20V if the value of V3=11V \n", + "#but in the question the value of V3=1V so\n", + "#I have taken V3=11V so that the Vo=-20V " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 10_19 PG-10.66" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Therefore output voltage is Vo= 6 V \n", + "\n" + ] + } + ], + "source": [ + "Rf=60e3##feedback resistance\n", + "R1=10e3#\n", + "R2=20e3#\n", + "R3=30e3#\n", + "V1=-1##first input voltage at the inverting terminal\n", + "V2=-2##second input voltage at the inverting terminal\n", + "V3=3##third input voltage at the inverting terminal\n", + "Vo=-(Rf/R1*V1+Rf/R2*V2+Rf/R3*V3)##output voltage\n", + "print \"\\n Therefore output voltage is Vo= %.0f V \\n\"%(Vo)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 10_20 PG-10.67" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Vo = -(0.1V1 + 0.5V2 + 20V3)\n", + "\n", + "\n", + " R1= 100 kohm R2= 20 kohm R3 = 500 ohm\n", + "\n", + "\n", + " The circuit design is shown\n" + ] + } + ], + "source": [ + "print \"\\n Vo = -(0.1V1 + 0.5V2 + 20V3)\\n\\n\"\n", + "Rf=10##we assume feedback resistance to be equal to 10kohm\n", + "R1=Rf/0.1##Rf/R1=0.1 given \n", + "R2=Rf/0.5##Rf/R2=0.5 given \n", + "R3=Rf/20##Rf/R3=20 given \n", + "print \" R1= %.0f kohm R2= %.0f kohm R3 = %.0f ohm\\n\"%(R1,R2,R3*1e3)\n", + "print \"\\n The circuit design is shown\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 10_21 PG-10.70" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Vo = (2V1 - 3V2 + 4V3 - 5V4)\n", + "\n", + "\n", + " The positive terms and negative terms can be added separately\n", + "\n", + "\n", + "\n", + " Vo1 = (2V1 + 4V3 )\n", + "\n", + " Therefore R1= 50kohm R3 = 25kohm\n", + "\n", + "\n", + " Vo2 = -(3V2 + 5V4)\n", + "\n", + " Therefore R2= 40kohm R4 = 24kohm\n", + "\n", + "\n", + " The output voltage is Vo = Vo2-Vo1 = (2V1 - 3V2 + 4V3 - 5V4)\n", + "\n", + " The circuit design is shown\n", + "\n", + " For the subtractor we use R = 100kohm \n" + ] + } + ], + "source": [ + "print \"\\n Vo = (2V1 - 3V2 + 4V3 - 5V4)\\n\\n\"\n", + "print \" The positive terms and negative terms can be added separately\\n\\n\"\n", + "print \"\\n Vo1 = (2V1 + 4V3 )\\n\"\n", + "Rf1=100##we assume feedback resistance to be equal to 100kohm\n", + "R1=Rf1/2##Rf/R1=2 given \n", + "R3=Rf1/4##Rf/R3=4 given \n", + "print \" Therefore R1= %.0fkohm R3 = %.0fkohm\\n\"%(R1,R3)\n", + "\n", + "print \"\\n Vo2 = -(3V2 + 5V4)\\n\"\n", + "Rf2=120##we assume feedback resistance to be equal to 120kohm\n", + "R2=Rf2/3##Rf/R2=3 given \n", + "R4=Rf2/5##Rf/R4=5 given \n", + "print \" Therefore R2= %.0fkohm R4 = %.0fkohm\\n\"%(R2,R4)\n", + "print \"\\n The output voltage is Vo = Vo2-Vo1 = (2V1 - 3V2 + 4V3 - 5V4)\"\n", + "print \"\\n The circuit design is shown\"\n", + "print \"\\n For the subtractor we use R = 100kohm \"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 10_22 PG-10.76" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " We integrate Vin ie Vo = -0.06*integrate(sin4*pi*100)\n", + "\n", + "\n", + "Enter the value of t (between 0 and 1) : 0.5\n", + "-1.2799344354326e-15\n" + ] + } + ], + "source": [ + "R1=100e3#\n", + "Cf=1e-6#\n", + "Vm=6e-3##peak value of the input voltage\n", + "fr=2e3##frequency supplied at the input\n", + "w=2*pi*fr##angular frequency in rad/s\n", + "a=-Vm/(R1*Cf)#constant \n", + "print \"\\n We integrate Vin ie Vo = %.2f*integrate(sin4*pi*100)\\n\\n\"%(a)\n", + "def f(x):\n", + " y=sin(w*x)\n", + " return y\n", + "t=input('Enter the value of t (between 0 and 1) : ')\n", + "#the limit is from 0 to t\n", + "from sympy.mpmath import quad, sin\n", + "I=quad(f,[0,t])##we should enter the value of t \n", + "x=I*a#\n", + "print x# " + ] + } + ], + "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 +} diff --git a/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter11.ipynb b/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter11.ipynb new file mode 100644 index 00000000..f2a74505 --- /dev/null +++ b/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter11.ipynb @@ -0,0 +1,124 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 11 Cathode ray oscilloscope" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 11_1 PG-11.16" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Refer to the figure-11.11 showwn\n", + "from the figure we can see that the screen is divided such\n", + "that one part of the half wave is sub-divided into 5 units\n", + "1subdivision=(1/5)units=0.2 units\n", + "amplitude of the positive peak signal=2division+3subdivision \n", + "ie amplitude of the positive peak signal=2+3*0.2=2.6\n", + "\n", + " Therefore amplitude of the output voltage in volts=5.2 mV \n", + "\n", + "\n", + " Therefore rms value of the output voltage in volts=3.6770 mV \n", + "\n" + ] + } + ], + "source": [ + "from math import sqrt, pi\n", + "print \"Refer to the figure-11.11 showwn\"\n", + "print \"from the figure we can see that the screen is divided such\"\n", + "print \"that one part of the half wave is sub-divided into 5 units\"\n", + "print \"1subdivision=(1/5)units=0.2 units\"\n", + "print \"amplitude of the positive peak signal=2division+3subdivision \"\n", + "print \"ie amplitude of the positive peak signal=2+3*0.2=2.6\"\n", + "Vp=2+3*0.2##amplitude of the peak voltage in terms of dividion\n", + "Vpp=2*Vp##peak to peak voltage in terms of division\n", + "VA=2##Vertical attenuation in (mV/div)\n", + "V=Vpp*VA##required peak to peak output voltage in volts\n", + "Vm=V/2##amplitude of the output voltage in volts\n", + "print \"\\n Therefore amplitude of the output voltage in volts=%.1f mV \\n\"%(Vm)\n", + "Vrms=Vm/sqrt(2)##rms value of the output voltage\n", + "print \"\\n Therefore rms value of the output voltage in volts=%.4f mV \\n\"%(Vrms)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 11_2 PG-11.19" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Therefore rms value of the output voltage in volts=2.1213 V \n", + "\n", + "\n", + " Therefore frequency f=250 Hz \n", + " \n" + ] + } + ], + "source": [ + "Vd=2##voltage per division in(V/div)\n", + "Td=2e-3##time base division in (s/div)\n", + "Vdiv=3##vertical occupancy in division as shown in the screen\n", + "Vpp=Vd*Vdiv##peak to peak voltage \n", + "Vm=Vpp/2##peak voltage\n", + "Vrms=Vm/sqrt(2)##rms value of the output voltage\n", + "print \"\\n Therefore rms value of the output voltage in volts=%.4f V \\n\"%(Vrms)\n", + "Hdiv=2##horizontal occupancy in division as shown in the screen\n", + "T=Hdiv*Td##time period of the waveform\n", + "f=1/T##frequency\n", + "print \"\\n Therefore frequency f=%.0f Hz \\n \"%(f)" + ] + } + ], + "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 +} diff --git a/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter12.ipynb b/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter12.ipynb new file mode 100644 index 00000000..14282084 --- /dev/null +++ b/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter12.ipynb @@ -0,0 +1,1461 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 12 Communication systems" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 12_1 Pg-12.14" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "modulation index m=0.8 \n", + " %m=80% \n", + "\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "Vm=40##peak value of the modulating signal\n", + "Vc=50##peak value of the carrier signal\n", + "m=Vm/Vc##modulation index\n", + "print \"modulation index m=%.1f \\n %%m=%.0f%% \\n\"%(m,m*100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 12_2 Pg-12.14" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Therefore upper side band frequency fusb=234720 Hz \n", + "\n", + " Therefore lower side band frequency flsb=224720 Hz \n", + "\n", + "\n", + " required bandwidth BW=10000Hz\n" + ] + } + ], + "source": [ + "from math import sqrt, pi\n", + "L=40e-6#\n", + "C=12e-9#\n", + "x=2*pi*sqrt(L*C)#\n", + "fc=1/x##carrier frequency \n", + "f=5e3##given audio frequency\n", + "fusb=fc+f##upper side band frequency\n", + "flsb=fc-f##lower side band frequency\n", + "BW=fusb-flsb##required bandwidth \n", + "print \"Therefore upper side band frequency fusb=%.0f Hz \\n\"%(fusb)\n", + "print \" Therefore lower side band frequency flsb=%.0f Hz \\n\"%(flsb)\n", + "print \"\\n required bandwidth BW=%.0fHz\"%(BW)\n", + "#in the book fc is approximated to 230Khz but the exact answer is 229.72kHz" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 12_3 Pg-12.17 " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " for modulation index m=0.75 Vc=1.33 V\n" + ] + }, + { + "data": { + "image/png": "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\nOrJI4W5+Osq8xDS1g1AlaSy5+WZK3el6LO71Kz1sdW7b/Ry9ngNZj3vVeqe35X7t9GzO4kiasIBi\n3BxFJpEpwD+hm2QQklYRVeYkx7l5GLpSQnaZpMqoMv0rmZJFqRimtl+PCpxN5oGf9MRn7UxbdnyB\n5XZu96GdpLFs7cfb2ZJ2/KI/t560kBbPD3TgMi8xKN+0LJmbYutN0/S21blt93P0ykA+CQxaa+9q\nnyEiXzp9m9Ru+VIWUCyknVaqLRGRrYHEy6i0ozB7ESQ/RpVpp1RYkoeG4rbLFjsd852U5si2J2ds\nldu5fXbapWKQsW2LTbYvAFxJXBl0clMktX3zjGtyi7fH2XETT/v25nZnu5+j14OEv9pj3pJPkJ+q\nyObUpUJ6oOPcXQlplTHOvZV1VT8VJe+eaZkfpNXMZHy34DocdZRcGOnYeCiFweL1xE1h2QSq4swr\nY2f2QQW+9pPbud2HdqEQJuuJX+SX2DpqrbUo3xQWl8RV2mavlUKCDuky2YdMZ7IsYat2m962ZG3O\nerufY6Wd6Gcssk1YYSFt502qlNlRWEk7L0kNRMdPfvp2XIBA0hOosutJSgnxejJ2MWvHF4sv4els\n1TStEenMxZK+1iC3c7t/7WKY3hTTWn6mJhPbOk1jSfNZpglG+6Kp6zzOFPZ8n022UzptyulmR222\n7W2HWduc9XY/x7IyEBH5iv//q6d3czrY2dJRhzbHpAlL0leZKGVBWV/LIF0mfvgwiK+GNOFkn+pN\nMqIudloNje3W0kbcyZZmaJl26dzO7T6242WyN/7Ezpaq48ytvSYT2yq10+1NS+stw4olt3vZ/RzL\nrYEM+P8rPb91GiJpCyS98bsHo9w0EeureiYeDeer8W5aepLTEoHvs0JUa9UUFbWWElRnO0mMytsq\ne+LdhdFiS3Y9uZ3b/WuH8as2Mje41I5abNeslemTyaSxnra0jkaK19ndNue03c/R901YcWkJSIbN\ntZaoMtXr7MlJToSflklYOs5AMlX75AGhTNU+24TQYsfriW1lkpfVZRNjxwsst3O7j23doXDV1Y5b\nAdo79ckU0jJNOfH8bDOcdEqX7bbvrzxX7X6Ovs9AWkpmLScnWzKLq5mt1XSAMCkRZKqZybRMCU/S\n9Sx6qy/tiZFkfrxM6wvuohYne9El68nt3F51O113e3pxTTVttrTbHdJlfHPN2NmaTvs+ZDOv3O5s\n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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f6f0fd29ad0>" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " for modulation index m=1 Vc=1.00 V\n" + ] + }, + { + "data": { + "image/png": "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\nrjh1iZrNimlofv7mW5i0XVIu3L3eP3XwtlUbcJVOynZ47F3byboOXfE22mJNKM3j8Vt3kPJclFhs\n6/EP/N9/3U0kbY+JnMuDN20B4ObWVUSNGCiPX9h2Oy4ucSvGxpbOYtuB96y/qchOFtqJVtpijQW2\nV2Tfd7XsW3bOYW8O7Wvc7mmsbt9/JW2MvG07M7YAj9+6k5znlLXH7TI2boEdr26vnr+9tXvx9kNL\nabf1LNxeM2M/Gti7V3ezo7t27wywYhqa//fN05iGRtaDrx69AMA33u5nJOdiGhr/z2u9eGmPA/2X\nODw0haOE//twLxFDYyjt8E8nBwH4u7fOYysNTdP5mzfOAPDMuWF6JzK4CH9+sBcQjo+l+cG5sSI7\n7cJXj50vsq1Cu2+Cw4MFtilF9lNvXZi3/fwc9mjOqWKfmsM+G9rLZZ8ttE+X2m/4dsoVvnq0jP0T\n395/scA+VDqv/d2Ri1XtL726ADvr5m03O2OL8vjSodPoopW1dU3jr988V2Q7asY+Np7h+XPjRXba\nZcY+sQD7naG87SAl9um83Xvl7YK652MfH0/z/PmxEvvvq9gvnLrIy2f8xwjUYlZMQ/Ov9qxC83Sa\nIxE+dpt/weZHtq9mdSKO6yo+fUcPtmdz33Vd3LW+HXHht+/sxnZhfXMDH77VvxDrE7evImFZmKLx\n63v88Ty2eRXv6mxGUPzuXT0oPLb3tPLwzd1Fdks0ysd2rimyvUJ7Yxd3re+YsZ1i+5O398zb/vk5\n7FXxanbPZdo9ob1U9pZCu6vUfrdvt0YjfOy2Mvadvn3/9Z0z9l1l5rVd3VXtz9w9f3t1PJa3Xc/J\n264Hv3NXN0qVtw3R+I3dPUW2riRv7+hp5qGbu4rslmh0xt62AHtrT96Om5Eqdndgt+Tt39yzOm8/\nOf19b1tTNM1dz+H+4Pt2PfidO2fsD926OrB7CuxVZeyZee2hm6aX7xn7Vwrswro9z+HBm1p44IZm\najXLenrzlYqIqN3bH6G7JUrWVoxM2Ow//A127XiCxphJg6W4MJ5l6tQJGq7fjCDUa+NMODHWNluM\nZoTJlMOBQ0+ze/tjtDdZGJpG31ia/Yf+kd07f4G6iE6j6dKXdOmKuIy7UbK2y/6DT7Nnx6Mz9qTN\n/kPVbI16bay8veMx2huvjN0UM0hYhPY1bF9MenRHHMbdKBnb48DBr7N756P0NPv28KTNgUPf4PYd\n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\ngg==\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f6f0fd29b10>" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " for modulation index m=1.25 Vc=0.80 V\n" + ] + }, + { + "data": { + "image/png": "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\nAbP3cAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f6f0d04add0>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# NOTE : Don't interrupt the kernel It will take time to output three modulated wave.\n", + "\n", + "fm=5e3; #assume modulation frequency f=5kHz\n", + "fc=1080e3; #assume carrier frequency f=1080kHz\n", + "from numpy import arange, pi, sqrt, sin\n", + "time=arange(0,8e-4,2.3148e-7)\n", + "#Waveform of modulated signal for m=0.75\n", + "m1=0.75; #modulation index\n", + "VmbyVc=m1\n", + "Vm=1; #we assume modulation voltage=1V\n", + "Vc=Vm/m1; #carrier voltage\n", + "k=VmbyVc; #modulation index = Vm/Vc\n", + "print \"\\n for modulation index m=0.75 Vc=%.2f V\"%Vc\n", + "\n", + "mt=k*sin(2*pi*fm*time);\n", + "sam =[]\n", + "for i in range(0,len(time)):\n", + " sam.append(Vc*(1+mt)*sin(2*pi*fc*time[i]))\n", + "\n", + "\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot, title, xlabel, ylabel, show, grid\n", + "\n", + " \n", + " \n", + "plot(time[0:500],sam[0:500]);\n", + "title(' Waveform of modulated signal m=0.75');\n", + "xlabel('Time (sec)');\n", + "ylabel('Amplitude (Vc=1.33V)');\n", + "\n", + "#xgrid(color(\"gray\"));\n", + "show()\n", + "\n", + "\n", + "\n", + "#Waveform of modulated signal for m=1\n", + "m1=1;\n", + "VmbyVc=m1\n", + "Vm=1; #we assume modulation voltage=1V\n", + "Vc=Vm/m1; #carrier voltage\n", + "k=VmbyVc; #modulation index = Vm/Vc\n", + "print \"\\n for modulation index m=1 Vc=%.2f V\"%Vc\n", + "\n", + "mt=k*sin(2*pi*fm*time);\n", + "sam =[]\n", + "for i in range(0,len(time)):\n", + " sam.append(Vc*(1+mt)*sin(2*pi*fc*time[i]))\n", + "\n", + "\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot, title, xlabel, ylabel, show, grid\n", + "\n", + " \n", + " \n", + "plot(time[0:500],sam[0:500]);\n", + "title(' Waveform of modulated signal m=0.75');\n", + "xlabel('Time (sec)');\n", + "ylabel('Amplitude (Vc=1.33V)');\n", + "\n", + "#xgrid(color(\"gray\"));\n", + "show()\n", + "\n", + " #Waveform for modulated signal for m=1.25\n", + "m1=1.25;\n", + "VmbyVc=m1\n", + "Vm=1; #we assume modulation voltage=1V\n", + "Vc=Vm/m1; #carrier voltage\n", + "k=VmbyVc; #modulation index = Vm/Vc\n", + "print \"\\n for modulation index m=1.25 Vc=%.2f V\"%(Vc)\n", + "\n", + "mt=k*sin(2*pi*fm*time);\n", + "sam =[]\n", + "for i in range(0,len(time)):\n", + " sam.append(Vc*(1+mt)*sin(2*pi*fc*time[i]))\n", + "\n", + "\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot, title, xlabel, ylabel, show, grid\n", + "\n", + " \n", + " \n", + "plot(time[0:500],sam[0:500]);\n", + "title(' Waveform of modulated signal m=0.75');\n", + "xlabel('Time (sec)');\n", + "ylabel('Amplitude (Vc=1.33V)');\n", + "\n", + "#xgrid(color(\"gray\"));\n", + "show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 12_4 Pg-12.22" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "modulation index m=0.2 \n", + " ie %m=20 % \n", + "\n", + "\n", + " Therefore upper side band frequency fusb=100.5 kHz \n", + "\n", + " Therefore lower side band frequency fusb=99.5 kHz \n", + "\n", + "\n", + " amplitude of upper and lower side bands=5 V \n", + "\n", + "\n", + " required bandwidth BW=1000Hz\n", + "\n", + "\n", + " power delivered to the load 2.125 W \n", + " \n", + "\n", + " transmission efficiency n=1.96 % \n", + "\n" + ] + } + ], + "source": [ + "#modulation index\n", + "Vm=10##peak value of the audio frequency signal\n", + "Vc=50##peak value of the carrier signal\n", + "m=Vm/Vc##modulation index\n", + "print \"modulation index m=%.1f \\n ie %%m=%.0f %% \\n\"%(m,m*100)\n", + "#sideband frequencies\n", + "wm=2*pi*500#\n", + "fm=wm/(2*pi)#\n", + "wc=2*pi*1e5#\n", + "fc=wc/(2*pi)#\n", + "fusb=fc+fm##upper side band frequency\n", + "flsb=fc-fm##lower side band frequency\n", + "print \"\\n Therefore upper side band frequency fusb=%.1f kHz \\n\"%(fusb*1e-3)\n", + "print \" Therefore lower side band frequency fusb=%.1f kHz \\n\"%(flsb*1e-3)\n", + "#amplitude of each sinusoidal frequency\n", + "A=m*Vc/2#\n", + "print \"\\n amplitude of upper and lower side bands=%.f V \\n\"%(A)\n", + "#bandwidth required\n", + "BW=fusb-flsb##required bandwidth \n", + "print \"\\n required bandwidth BW=%.0fHz\\n\"%(BW)\n", + "#power delivered to the load\n", + "R=600##load resistance\n", + "P=Vc**2/(2*R)*(1+m**2/2)\n", + "print \"\\n power delivered to the load %.3f W \\n \"%(P)\n", + "#transmission efficiency\n", + "n=m**2/(2+m**2)*100#\n", + "print \"\\n transmission efficiency n=%.2f %% \\n\"%(n)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 12_5 Pg-12.23" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Therefore total power in the modulated wave is 528 W\n" + ] + } + ], + "source": [ + "Pc=400##power of the carrier signal\n", + "m=0.8##modulation index\n", + "P=Pc*(1+m**2/2)\n", + "print \" Therefore total power in the modulated wave is %.0f W\"%(P)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 12_6 Pg-12.23" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "therefore carrier power in the modulated wave is 15.6 kW\n", + "\n", + " Pusb=2.2 kW \n", + " Plsb=2.2 kW\n" + ] + } + ], + "source": [ + "m=0.75##modulation index\n", + "P=20##total power in kW\n", + "Pc=P/(1+m**2/2)#since P=Pc*(1+m**2/2)\n", + "print \"therefore carrier power in the modulated wave is %.1f kW\"%(Pc)\n", + "Psb=Pc*m**2/4##side band power\n", + "Pusb=Psb#\n", + "Plsb=Psb#\n", + "print \"\\n Pusb=%.1f kW \\n Plsb=%.1f kW\"%(Pusb,Plsb)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 12_7 Pg-12.25" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Therefore total antenna current when only the carrier is sent Ic=4.6 A\n" + ] + } + ], + "source": [ + "m=0.6##modulation index\n", + "Itotal=5##total antenna current\n", + "#Ic=total antenna current when only the carrier is sent\n", + "Ic=Itotal/sqrt(1+m**2/2)#since Itotal=Ic*sqrt(1+m**2/2)\n", + "print \"Therefore total antenna current when only the carrier is sent Ic=%.1f A\"%(Ic)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 12_8 Pg-12.26." + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "modulation index m=0.8 \n" + ] + } + ], + "source": [ + "from sympy import symbols, sqrt\n", + "Ic=symbols('Ic')##unmodulated carrier signal\n", + "Itotal=1.15*Ic##total rms current when the signal is modulated \n", + "x=Itotal/Ic#\n", + "y=2*((x)**2-1)\n", + "m=sqrt(y)\n", + "print \"modulation index m=%.1f \"%(m)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 12_9 Pg-12.28" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "total modulation index m=0.781 \n" + ] + } + ], + "source": [ + "m1=0.6##first modulation index\n", + "m2=0.3##second modulation index\n", + "m3=0.4##third modulation index\n", + "mt=sqrt(m1**2+m2**2+m3**2)#\n", + "print \"total modulation index m=%.3f \"%(mt)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 12_10 Pg-12.28" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "total radiated power P=12.25 kW \n" + ] + } + ], + "source": [ + "Ptotal=11.8##radiated power in kW when the carrier is modulated\n", + "Pc=10##radiated power in kW when the carrier is unmodulated\n", + "m=sqrt(2*((Ptotal/Pc)-1))\n", + "#when another sine wave of 30% of the \n", + "#initial modulation is transmitted simultaneously then\n", + "m1=0.3##added sine wave signal is 30% \n", + "mt=sqrt(m1**2+m**2)#\n", + "P=Pc*(1+mt**2/2)##total radiated power \n", + "print \"total radiated power P=%.2f kW \"%(P)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 12_11 Pg-12.30" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " carrier power Pc=7.8 kW \n", + "\n" + ] + } + ], + "source": [ + "Ptotal=10##radiated power in kW when the carrier is modulated\n", + "m=0.75##modulation index\n", + "Pc=Ptotal/(1+m**2/2)#since Ptotal=Pc*sqrt(1+m**2/2)\n", + "print \"\\n carrier power Pc=%.1f kW \\n\"%(Pc)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 12_12 Pg-12.30" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "fusb1=1000.3 kHz \n", + " flsb1=999.7 kHz\n", + "\n", + " fusb2=1000.8 kHz\n", + "\n", + " flsb2=999.2 kHz \n", + "\n", + " fusb3=1001.0 kHz \n", + " flsb3=999.0 kHz \n", + "\n" + ] + } + ], + "source": [ + "fc=1000e3##carrier frequency \n", + "fm1=300##first audio frequency\n", + "fm2=800##second audio frequency\n", + "fm3=1e3##third audio frequency\n", + "fusb1=fc+fm1##upper side band frequency\n", + "flsb1=fc-fm1##lower side band frequency\n", + "fusb2=fc+fm2##upper side band frequency\n", + "flsb2=fc-fm2##lower side band frequency\n", + "fusb3=fc+fm3##upper side band frequency\n", + "flsb3=fc-fm3##lower side band frequency\n", + "print \"fusb1=%.1f kHz \\n flsb1=%.1f kHz\\n\\n fusb2=%.1f kHz\\n\"%(fusb1*1e-3,flsb1*1e-3,fusb2*1e-3)\n", + "print \" flsb2=%.1f kHz \\n\\n fusb3=%.1f kHz \\n flsb3=%.1f kHz \\n\"%(flsb2*1e-3,fusb3*1e-3,flsb3*1e-3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 12_13 Pg-12.30" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Therefore total sideband power radiated Psb=130.500 W\n" + ] + } + ], + "source": [ + "m1=0.55##first modulation index\n", + "m2=0.65##second modulation index\n", + "mt=sqrt(m1**2+m2**2)#\n", + "Pc=360###power radiated by the carrier signal\n", + "Psb=Pc*mt**2/2#total sideband power radiated\n", + "print \"Therefore total sideband power radiated Psb=%.3f W\"%(Psb)\n", + "#in the question Pc is taken as 360W but in the answer it is taken as \n", + "#300W I have taken Pc=300W so that Psb=150.5W" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 12_14 Pg-12.30" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Therefore total antenna current It=13.41 A\n" + ] + } + ], + "source": [ + "m=0.5## modulation index\n", + "It=12##antenna current when AM transmitter is 50% modulated\n", + "Ic=It/sqrt(1+m**2/2)##carrier current \n", + "m=0.9##when modulation depth is increase to 0.9 \n", + "It=Ic*sqrt(1+m**2/2)\n", + "print \"Therefore total antenna current It=%.2f A\"%(It)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 12_15 Pg-12.31" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Therefore total antenna current It=1.65 A \n", + "\n", + "Ptotal=Pc+Pc*m**2/4+Pc*m**2/4 => Total power radiated\n", + "\n", + " Therefore percentage power saving %P=86 %\n" + ] + } + ], + "source": [ + "## m1=0.6## modulation index\n", + "It=1.5##antenna current when AM transmitter is 50% modulated\n", + "Ic=It/sqrt(1+m1**2/2)##carrier current \n", + "m2=0.7#when another modulated signal is added \n", + "m=sqrt(m1**2+m2**2)##total modulation index\n", + "It=Ic*sqrt(1+m**2/2)\n", + "\n", + "print \"\\n Therefore total antenna current It=%.2f A \\n\"%(It)\n", + "print \"Ptotal=Pc+Pc*m**2/4+Pc*m**2/4 => Total power radiated\"\n", + "Pc=symbols('Pc')#\n", + "Ptotal=Pc+Pc*m**2/4+Pc*m**2/4 #\n", + "P=Pc+Pc*m**2/4 #Total power if one of the side band is suppressed \n", + "per_P=P/Ptotal*100##percentage power saving\n", + "print \"\\n Therefore percentage power saving %%P=%.0f %%\"%(per_P)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 12_16 Pg-12.32" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Output voltage of the transmitter Vam=400(1+0.4sin6280t)sin3.14*10**7t\n", + "\n", + " carrier frequency Fc=5 MHz \n", + " modulating frequency =999 Hz \n", + " \n", + "\n", + " carrier power Pc=133.33 W \n", + " Total power output Ptotal=144.0 W \n", + "\n", + "\n", + " Peak output voltage P=261.33 W \n" + ] + } + ], + "source": [ + "print \" Output voltage of the transmitter Vam=400(1+0.4sin6280t)sin3.14*10**7t\"\n", + "Vc=400##amplitude of carrier voltage \n", + "m=0.4##modulation index\n", + "R=600##load resistance\n", + "wm=6280#\n", + "wc=3.14e7#\n", + "fc=wc/(2*pi)#\n", + "fm=wm/(2*pi)#\n", + "Pc=Vc**2/(2*R)#\n", + "Ptotal=Pc*(1+m**2/2)#\n", + "print \"\\n carrier frequency Fc=%.0f MHz \\n modulating frequency =%.0f Hz \\n \"%(fc*1e-6,fm)\n", + "print \"\\n carrier power Pc=%.2f W \\n Total power output Ptotal=%.1f W \\n\"%(Pc,Ptotal)\n", + "#peak power output results when modulating signal\n", + "#is at the peak of the +ve half cycle \n", + "Vm=m*Vc#\n", + "V=Vc+Vm##peak output voltage\n", + "P=V**2/(2*R)##peak power output \n", + "print \"\\n Peak output voltage P=%.2f W \"%(P)\n", + "#The exact value of fc is 4997465 Hz but in the book the \n", + "#value is taken as 5 MHz same is the case for fm" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 12_17 Pg-12.33" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " equation of the Am sine wave =Vc(1+m*sinwm*t)*sinwc*t\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f6f0f63c350>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "print \" equation of the Am sine wave =Vc(1+m*sinwm*t)*sinwc*t\"\n", + "Vc=12##amplitude of carrier voltage \n", + "m=0.5##modulation index\n", + "fc=10e6##carrier frequency\n", + "fm=1e3##modulated frequency\n", + "wc=2*pi*fc#\n", + "wm=2*pi*fm#\n", + "from numpy import arange\n", + "t=arange(0,8e-4,2.3148e-7)\n", + "Vam =[]\n", + "for tt in t: \n", + " Vam.append(Vc*(1+m*sin(wm*tt)*sin(wc*tt)))\n", + "fusb=fc+fm##upper side band frequency\n", + "flsb=fc-fm##lower side band frequency\n", + "A=m*Vc/2##amplitude of side bands\n", + "\n", + "#plotting of the graph\n", + "x=[ flsb ,flsb ]##x-coordinate\n", + "y=[ 0 , A ]##y-coordinate\n", + "\n", + "plot(x,y)\n", + "x1=[10e6 , 10e6]##x-coordinate\n", + "y1=[ 0 , 12]##y-coordinate\n", + "plot(x1,y1)\n", + "x2=[fusb , fusb]##x-coordinate\n", + "y2=[ 0 , A]##y-coordinate\n", + "plot(x2,y2)\n", + "x5=[flsb-1e3, flsb-1e3]##x-coordinate\n", + "y5=[ 0 , 4 ]##y-coordinate\n", + "plot(x5,y5)\n", + "x6=[fusb+1e3 ,fusb+1e3]##x-coordinate\n", + "y6=[ 0 , 4 ]##y-coordinate\n", + "plot(x6,y6)\n", + "\n", + "xlabel('Frequency(Hz)')#\n", + "ylabel('amplitude of carrier signal(V)')#\n", + "title(\"Frequency Spectrum of AM wave\")\n", + "grid()\n", + "show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 12_18 PG-12.18" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " When modulation index m=100%% \n", + " Now Pdsbfc=1.5*Pc or Pdsbfc/Pc=1.5\n", + " %Power saving %P :83.333333 %\n", + "\n", + "\n", + " When modulation index m=50%% \n", + " Now Pdsbfc=Pc*(1+m**2/2) \n", + " Pdsbfc=1.125*Pc or Pdsbfc/Pc=1.125\n", + "\n", + " %Power saving %P :94.44 %\n" + ] + } + ], + "source": [ + "print \" When modulation index m=100%% \"\n", + "m=1#\n", + "print \" Now Pdsbfc=1.5*Pc or Pdsbfc/Pc=1.5\"\n", + "Pc=symbols('Pc')\n", + "Pdsbfc=Pc*(1+m**2/2)##power required for double sideband with full carrier transmission\n", + "Pssb=Pc*m**2/4#\n", + "per_P=(Pdsbfc-Pssb)/Pdsbfc*100\n", + "x=per_P\n", + "print \" %%Power saving %%P :%f %%\\n\\n\"%(x)\n", + "\n", + "print \" When modulation index m=50%% \"\n", + "m=0.5#\n", + "Pdsbfc=Pc*(1+m**2/2)##power required for double sideband with full carrier transmission\n", + "print \" Now Pdsbfc=Pc*(1+m**2/2) \\n Pdsbfc=1.125*Pc or Pdsbfc/Pc=1.125\\n\"\n", + "Pssb=Pc*m**2/4#\n", + "per_P=(Pdsbfc-Pssb)/Pdsbfc*100\n", + "x=per_P\n", + "print \" %%Power saving %%P :%.2f %%\"%(x)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 12_19 Pg-40" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Therefore frequency deviation f=40 kHz \n", + "\n", + " modulation index m=10 \n" + ] + } + ], + "source": [ + "R=2##frequency deviation constant in KHz/V\n", + "V=20##amplitude of the modulation signal\n", + "fd=R*V## frequency deviation\n", + "f=4##frequency applied in kHz\n", + "print \"\\n Therefore frequency deviation f=%.0f kHz \\n\"%(fd)\n", + "m=fd/f##modulation index\n", + "print \" modulation index m=%.0f \"%(m)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 12_20 Pg-40" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "when modulating voltage V=2.5 V\n", + "\n", + " frequency deviation constant R=2 KHz/V \n", + "\n", + "when modulating voltage V=7.5 V\n", + "\n", + " Therefore frequency deviation f=15 kHz \n", + "\n", + "when modulating voltage V=10 V\n", + "\n", + " Therefore frequency deviation f=20 kHz \n", + "\n", + " \n", + " modulation index \n", + " mf1=10 \n", + " mf2=30 \n", + " mf3=80 \n", + "\n" + ] + } + ], + "source": [ + "print \"when modulating voltage V=2.5 V\"\n", + "V=2.5##modulating voltage\n", + "fd1=5## frequency deviation in kHz\n", + "R=fd1/V##frequency deviation constant in KHz/V\n", + "print \"\\n frequency deviation constant R=%.0f KHz/V \\n\"%(R)\n", + "print \"when modulating voltage V=7.5 V\"\n", + "V=7.5##new value amplitude of the modulating voltage\n", + "fd2=R*V#new frequency deviation in kHz\n", + "print \"\\n Therefore frequency deviation f=%.0f kHz \\n\"%(fd2)\n", + "print \"when modulating voltage V=10 V\"\n", + "V=10##new value amplitude of the modulating voltage\n", + "fd3=R*V#new frequency deviation in kHz\n", + "print \"\\n Therefore frequency deviation f=%.0f kHz \\n\"%(fd3)\n", + "fm=0.5##modulation frequency in kHz ie 0.5kHz=500Hz\n", + "mf1=fd1/fm# \n", + "mf2=fd2/fm#\n", + "fm1=.25#new modulation frequency in kHz ie 0.25kHz=250Hz\n", + "mf3=fd3/fm1#\n", + "print \" \\n modulation index \\n mf1=%.0f \\n mf2=%.0f \\n mf3=%.0f \\n\"%(mf1,mf2,mf3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 12_21 Pg-41" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "maximum deviation fd_max=24 kHz \n", + "\n", + "when modulating voltage V=3.2 V\n", + " \n", + " modulation index mf=128\n" + ] + } + ], + "source": [ + "mf=60##modulation index\n", + "fm=0.4##modulation frequency in kHz ie 0.4kHz=400Hz\n", + "#fd_max=maximum frequency deviation\n", + "fd_max=mf*fm##since mf=fd_max_/fm \n", + "print \"maximum deviation fd_max=%.0f kHz \\n\"%(fd_max)\n", + "V=2.4##modulating voltage\n", + "R=fd_max/V##frequency deviation constant in KHz/V\n", + "print \"when modulating voltage V=3.2 V\"\n", + "V=3.2#\n", + "fd=R*V##frequency deviation\n", + "fm=0.25#modulation frequency in kHz ie 0.25kHz=250Hz\n", + "mf=fd/fm#\n", + "print \" \\n modulation index mf=%.0f\"%(mf) \n", + "#in the book the final answer for modulation mf=80 \n", + "#is wrong the correct answer is mf=128" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 12_22 Pg-41" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " maximum frequency deviation fd=75 KHz/V \n", + "\n", + " \n", + " modulation index mf=7.5\n" + ] + } + ], + "source": [ + "R=5##frequency deviation constant in KHz/V\n", + "fm=10##modulation frequency in kHz \n", + "V=15##amplitude of the modulating signal\n", + "fd=R*V##frequency deviation\n", + "print \"\\n maximum frequency deviation fd=%.0f KHz/V \\n\"%(fd)\n", + "mf=fd/fm#\n", + "print \" \\n modulation index mf=%.1f\"%(mf) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 12_23 Pg-41.43" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "equation of a frequency modulated v=A*sin(wc*t+mf*sin(wm*t))\n", + "or v=A*sin(wc*t-fd/fm*cos(wm*t)) where fd=frequency deviation\n", + "Now v=50*sin(5e8*t-10*cos(1000*t))\n", + "\n", + " carrier frequency fc=79.58 MHz \n", + "\n", + " modulating frequency fc=159.15 Hz \n", + "\n", + " \n", + " modulation index mf=10\n", + "\n", + " maximum deviation fd_max=1591.55 Hz \n", + "\n", + "\n", + " Power dissipated by the wave in resistance P=16.67 W\n" + ] + } + ], + "source": [ + "print \"equation of a frequency modulated v=A*sin(wc*t+mf*sin(wm*t))\"\n", + "print \"or v=A*sin(wc*t-fd/fm*cos(wm*t)) where fd=frequency deviation\"\n", + "print \"Now v=50*sin(5e8*t-10*cos(1000*t))\"\n", + "A=50##peak value of the modulating signal\n", + "wc=5e8#\n", + "mf=10#\n", + "wm=1000#\n", + "fc=wc/(2*pi)##carrier frequency\n", + "print \"\\n carrier frequency fc=%.2f MHz \\n\"%(fc*1e-6)\n", + "fm=wm/(2*pi)##modulating frequency\n", + "print \" modulating frequency fc=%.2f Hz \\n\"%(fm)\n", + "#fd_max=maximum frequency deviation\n", + "fd_max=mf*fm##since mf=fd_max_/fm \n", + "print \" \\n modulation index mf=%.0f\"%(mf) \n", + "print \"\\n maximum deviation fd_max=%.2f Hz \\n\"%(fd_max)\n", + "Vrms=A/sqrt(2)##rms value of the modulating signal\n", + "R=75##wave resistance\n", + "P=Vrms**2/R#\n", + "print \"\\n Power dissipated by the wave in resistance P=%.2f W\"%(P)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 12_24 Pg-41.47 " + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " \n", + " modulation index mf=0.333\n", + "Now we refer from the table-12.2 of Bessel function \n", + " \n", + " For modulation index mf=0.333 we take the value of J0,J1,and J2 \n", + "\n", + " J0=4.8V\n", + " J1=0.9V\n", + " J2=0.1V \n", + "Now we plot the frequency spectrum\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f6f0f6a1a10>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "V=5##amplitude of modulating voltage\n", + "R=1##frequency deviation constant in KHz/V\n", + "fd=V*R## frequency deviation in kHz\n", + "fm=15##modulating frequency in kHz\n", + "mf=fd/fm##modulation index\n", + "print \" \\n modulation index mf=%.3f\"%(mf)# \n", + "print \"Now we refer from the table-12.2 of Bessel function \"\n", + "print \" \\n For modulation index mf=%.3f we take the value of J0,J1,and J2 \"%(mf)# \n", + "J0=0.96##for carrier frequency\n", + "J1=0.18##first side frequency\n", + "J2=0.02##second side frequency\n", + "A=5#amplitude of the carrier frequency\n", + "J0=J0*A##for carrier frequency\n", + "J1=J1*A##first side frequency\n", + "J2=J2*A##second side frequency\n", + "print \"\\n J0=%.1fV\\n J1=%.1fV\\n J2=%.1fV \"%(J0,J1,J2)\n", + "print \"Now we plot the frequency spectrum\"\n", + "x=[ 89.97, 89.97]##x-coordinate\n", + "y=[ 0 , 0.1]##y-coordinate\n", + "plot(x,y)\n", + "x1=[89.985, 89.985]##x-coordinate\n", + "y1=[ 0 , 0.9]##y-coordinate\n", + "plot(x1,y1)\n", + "x2=[90 , 90]##x-coordinate\n", + "y2=[ 0 , 4.8]##y-coordinate\n", + "plot(x2,y2)\n", + "x3=[90.015, 90.015]##x-coordinate\n", + "y3=[ 0 , 0.9]##y-coordinate\n", + "plot(x3,y3)\n", + "x4=[90.03, 90.03]##x-coordinate\n", + "y4=[ 0 , 0.1]##y-coordinate\n", + "plot(x4,y4)\n", + "x5=[90.04 ,90.04]##x-coordinate\n", + "y5=[ 0 , 5]##y-coordinate\n", + "plot(x5,y5)\n", + "x6=[ 89.96 , 89.96]##x-coordinate\n", + "y6=[ 0 , 5]##y-coordinate\n", + "plot(x6,y6)\n", + "xlabel('Frequency(MHz)')#\n", + "ylabel('amplitude of carrier signal(V)')#\n", + "title(\"Frequency Spectrum\")\n", + "grid()\n", + "show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 12_25 Pg-41.48" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " For FM broadcast percent modulation is %M=20%\n", + "\n", + "\n", + " For TV broadcast percent modulation is %M=60% \n", + "\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "fd=15##frequency deviation in kHz \n", + "f=75##maximum frequency deviation in kHz for FM broadcast\n", + "per_M=fd/f*100#\n", + "print \"\\n For FM broadcast percent modulation is %%M=%.0f%%\\n\"%(per_M)\n", + "f=25##maximum frequency deviation in kHz for TV broadcast\n", + "per_M=fd/f*100#\n", + "print \"\\n For TV broadcast percent modulation is %%M=%.0f%% \\n\"%(per_M)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 12_26 Pg-41.48" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Therefore frequency deviation for FM broadcast fd=60 Khz \n", + "\n", + " carrier swing=120 kHz\n", + "\n", + "\n", + " Therefore frequency deviation for TV broadcast fd=20 Khz \n", + "\n", + " carrier swing=40 kHz\n", + "\n" + ] + } + ], + "source": [ + "per_M=80## percent modulation in %\n", + "f=75##maximum frequency deviation in kHz for FM broadcast\n", + "fd=f*per_M/100##frequency deviation in kHz since %M=fd/f*100#\n", + "print \"\\n Therefore frequency deviation for FM broadcast fd=%.0f Khz \\n\"%(fd)\n", + "cs=2*fd##carrier swing\n", + "print \" carrier swing=%.0f kHz\\n\"%(cs)\n", + "f=25##maximum frequency deviation in kHz for TV broadcast\n", + "fd=f*per_M/100##frequency deviation in kHz since %M=fd/f*100#\n", + "print \"\\n Therefore frequency deviation for TV broadcast fd=%.0f Khz \\n\"%(fd)\n", + "cs=2*fd##carrier swing\n", + "print \" carrier swing=%.0f kHz\\n\"%(cs)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 12_27 Pg-41.51" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " carrier swing=80 kHz\n", + "\n", + "\n", + " Therefore highest frequency reached fh=93.24 MHz\n", + " \n", + "Lowest frequency reached fl=93.16 MHz\n", + "\n", + "\n", + " modulation index m=8 \n" + ] + } + ], + "source": [ + "fd=40##frequency deviation in kHz \n", + "cs=2*fd##carrier swing\n", + "print \"\\n carrier swing=%.0f kHz\\n\"%(cs)\n", + "fc=93.2e3###carrier frequency in kHz\n", + "fh=fc+fd##highest frequency reached\n", + "fl=fc-fd##lowest frequency reached\n", + "print \"\\n Therefore highest frequency reached fh=%.2f MHz\\n \"%(fh*1e-3)\n", + "print \"Lowest frequency reached fl=%.2f MHz\"%(fl*1e-3)\n", + "fm=5##modulating frequency in kHz\n", + "m=fd/fm##frequency modulation\n", + "print \"\\n\\n modulation index m=%.0f \"%(m)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 12_28 Pg-41.51" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Therefore frequency deviation produced fd=5 Khz \n", + "\n", + "\n", + " carrier swing=10 kHz\n", + "\n", + "\n", + " Therefore lowest frequency reached fl=50.395 MHz\n" + ] + } + ], + "source": [ + "fc=50.4e3###carrier frequency in kHz\n", + "fh=50.405e3#highest frequency reached in kHz\n", + "fd=fh-fc##frequency deviation in kHz \n", + "print \"\\n Therefore frequency deviation produced fd=%.0f Khz \\n\"%(fd)\n", + "cs=2*fd##carrier swing\n", + "print \"\\n carrier swing=%.0f kHz\\n\"%(cs)\n", + "fl=fc-fd##lowest frequency reached\n", + "print \"\\n Therefore lowest frequency reached fl=%.3f MHz\"%(fl*1e-3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 12_29 Pg-41.52" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Modulation index m=5 \n" + ] + } + ], + "source": [ + "cs=70##carrier swing in kHz\n", + "#since cs=2*fd\n", + "fd=cs/2##frequency deviation in kHz \n", + "fm=7#modulating frequency in kHz\n", + "m=fd/fm#\n", + "print \"\\n Modulation index m=%.0f \"%(m)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 12_30 Pg-41.52" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Carrier swing=24 kHz\n", + "\n", + "\n", + " Therefore frequency deviation fd=12 Khz \n", + "\n", + "\n", + " Therefore carrier frequency fc=99.035 Mhz \n", + "\n", + "\n", + " Modulation index m=1.714 \n" + ] + } + ], + "source": [ + "fh=99.047e3##highest frequency reached in kHz\n", + "fl=99.023e3##lowest frequency reached in kHz\n", + "fm=7#modulating frequency in kHz\n", + "cs=fh-fl##carrier swing\n", + "print \"Carrier swing=%.0f kHz\\n\"%(cs)\n", + "fd=cs/2##frequency deviation in kHz \n", + "print \"\\n Therefore frequency deviation fd=%.0f Khz \\n\"%(fd)\n", + "fc=fh-fd###carrier frequency in kHz\n", + "print \"\\n Therefore carrier frequency fc=%.3f Mhz \\n\"%(fc*1e-3)\n", + "m=fd/fm#\n", + "print \"\\n Modulation index m=%.3f \"%(m)" + ] + } + ], + "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 +} diff --git a/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter13.ipynb b/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter13.ipynb new file mode 100644 index 00000000..ca9246ef --- /dev/null +++ b/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter13.ipynb @@ -0,0 +1,1563 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 13 Number Systems" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_2 PG-13.3" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Representation of the binary number 1101.101 in power of 2\n", + "N=(1*2**3)+(1*2**2)+(0*2**1)+(1*2**0)+(1*2**(-1))+(0*2**(-2))+(1*2**(-3))=13.625\n", + "\n", + " The decimal equivalent of binary no 1101.101 is: 13.625\n" + ] + } + ], + "source": [ + "print \"Representation of the binary number 1101.101 in power of 2\"\n", + "print \"N=(1*2**3)+(1*2**2)+(0*2**1)+(1*2**0)+(1*2**(-1))+(0*2**(-2))+(1*2**(-3))=13.625\"\n", + "N=(1*2**3)+(1*2**2)+(0*2**1)+(1*2**0)+(1*2**(-1))+(0*2**(-2))+(1*2**(-3))\n", + "print \"\\n The decimal equivalent of binary no 1101.101 is: %.3f\"%(N)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_3 PG-13.3" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "N=(5*8**2)+(6*8**1)+(7*8**0)=375\n", + " Therefore decimal equivalent of 567 is: \n", + "375\n" + ] + } + ], + "source": [ + "## print \"representation of the number 567 in power of 8\"\n", + "print \"N=(5*8**2)+(6*8**1)+(7*8**0)=375\"\n", + "print \" Therefore decimal equivalent of 567 is: \"\n", + "N=(5*8**2)+(6*8**1)+(7*8**0)\n", + "print \"%.0f\"%(N)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_4 PG-13.4" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Representation of the hexadecimalnumber 3FD in power of 16\n", + "N=(3*16**2)+(F*16**1)+(D*16**0)=1021\n", + " The Decimal equivalent of the Binary number 3FD is:\n", + "1021\n" + ] + } + ], + "source": [ + "print \"Representation of the hexadecimalnumber 3FD in power of 16\"\n", + "print \"N=(3*16**2)+(F*16**1)+(D*16**0)=1021\"\n", + "print ' The Decimal equivalent of the Binary number 3FD is:'#\n", + "N=(3*16**2)+(15*16**1)+(13*16**0)\n", + "print \"%.0f\"%(N)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_5 PG-13.5" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The Decimal equivalent of the number 231.23 with base 4 is: \n", + "45.6875\n" + ] + } + ], + "source": [ + "print 'The Decimal equivalent of the number 231.23 with base 4 is: '\n", + "x=(2*4**2)+(3*4**1)+(1*4**0)+(2*4**(-1))+(3*4**(-2))\n", + "print \"%.4f\"%(x)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_6 PG-13.5" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "decimal from 0 to 9 in radix 5: \n", + " \t\t\t\t0=00\n", + " \t\t\t\t1=01\n", + " \t\t\t\t2=02\n", + " \t\t\t\t3=03\n", + " \t\t\t\t4=04\n", + " \t\t\t\t5=10\n", + " \t\t\t\t6=11\n", + " \t\t\t\t7=12\n", + " \t\t\t\t8=13\n", + " \t\t\t\t9=14\n" + ] + } + ], + "source": [ + "print \"decimal from 0 to 9 in radix 5: \"\n", + "for i in range(0,10):\n", + " a=i/5#\n", + " b=(i%5)#\n", + " print \" \\t\\t\\t\\t%d=%d%d\"%(i,a,b)##conversion from decimal to radix 5\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_7 PG-13.7" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Conversion of binary no 111101100 to octal equivalent is :\n", + "0754\n" + ] + } + ], + "source": [ + "print \"Conversion of binary no 111101100 to octal equivalent is :\"\n", + "a='111101100'#\n", + "x=int(a,2)# decimal\n", + "y=oct(x)# octal\n", + "print \"%s\"%(y)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_8 PG-13.7" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "conversion of octal no 634 to binary equivalent is :\n", + "110011100\n" + ] + } + ], + "source": [ + "print \"conversion of octal no 634 to binary equivalent is :\"\n", + "a='634'\n", + "x=int(a,8)#first we convert to decimal\n", + "y=bin(x)\n", + "print y[2:]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_9 PG-13.7" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "conversion of octal no 725.63 to binary equivalent\n", + "\n", + " The binary equivalent of the given octal number 725.63 is =111010102.100110\n" + ] + } + ], + "source": [ + "from math import floor\n", + "print \"conversion of octal no 725.63 to binary equivalent\"\n", + "a=725.63#\n", + "#first we convert the number 725.63(octal)to decimal\n", + "x=(7*8**2)+(2*8**1)+(5*8**0)+(6*8**(-1))+(3*8**(-2))#\n", + "#then we convert the decimal to binary\n", + "z=(x%1)\n", + "x=floor(x)##separating the decimal from the integer part\n", + "b=0#\n", + "c=0#\n", + "d=0#\n", + "while(x>0) : #taking integer part into a matrix and convert to equivalent binary\n", + " y=(x%2)#\n", + " b=b+(10**c)*y#\n", + " x=x/2#\n", + " x=floor(x)#\n", + " c=c+1# \n", + "\n", + "for i in range(0,10):##converting the values after the decimal point into binary\n", + " z=z*2#\n", + " q=floor(z)#\n", + " d=d+q/(10**i)#\n", + " if z>=1:\n", + " z=z-1#\n", + " \n", + "\n", + "s=b+d#\n", + "print \"\\n The binary equivalent of the given octal number 725.63 is =%.6f\"%(s)#" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_10 PG-13.7" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "hexadecimal equivalent of 1101100010011011 binary is : \n", + "d89b\n" + ] + } + ], + "source": [ + "print \"hexadecimal equivalent of 1101100010011011 binary is : \"\n", + "a='1101100010011011'#\n", + "x=int(a,2)#\n", + "y=hex(x)#\n", + "print y[2:]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_11 PG-13.8" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Binary equivalent of 3FD hexadecimal is :\n", + "001111111101\n" + ] + } + ], + "source": [ + "print \"Binary equivalent of 3FD hexadecimal is :\"\n", + "a='3FD'\n", + "y = bin(int(a, 16))[2:]\n", + "print '00%s'%y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_13 PG-13.9" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "conversion of octal no 615 to its hexadecimal equivalent : 18d\n" + ] + } + ], + "source": [ + "print \"conversion of octal no 615 to its hexadecimal equivalent :\",\n", + "a='615'#\n", + "x=int(a,8)\n", + "y=hex(x)\n", + "print y[2:]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_14 PG-13.9" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "conversion of hexadecimal no 25B to its octal equivalent : 133\n" + ] + } + ], + "source": [ + "print \"conversion of hexadecimal no 25B to its octal equivalent : \",\n", + "a='25B'#\n", + "x=int(a,16)\n", + "y=oct(x)\n", + "print y[2:]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_15 PG-13.10" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "conversion of binary no 1101.1 to its decimal equivalent = 13.5\n" + ] + } + ], + "source": [ + "print \"conversion of binary no 1101.1 to its decimal equivalent =\",\n", + "N=(1*2**3)+(1*2**2)+(0*2**1)+(1*2**0)+(1*2**(-1))#\n", + "print \" %.1f\"%(N)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_16 PG-13.10" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "conversion of octal no 475.25 to its decimal equivalent =\n", + " 317.32812\n" + ] + } + ], + "source": [ + "print \"conversion of octal no 475.25 to its decimal equivalent =\"\n", + "N=(4*8**2)+(7*8**1)+(5*8**0)+(2*8**(-1))+(5*8**(-2))#\n", + "print \" %.5f\"%(N)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_17 PG-13.10" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "conversion of hexadecimal no 9B2.1A to its decimal equivalent =\n", + " 2482.1\n" + ] + } + ], + "source": [ + "print \"conversion of hexadecimal no 9B2.1A to its decimal equivalent =\"\n", + "N=(9*16**2)+(11*16**1)+(2*16**0)+(1*16**(-1))+(10*16**(-2))#\n", + "print \" %.1f\"%(N)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_18 PG-13.10" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Conversion of the number 3102.12 \n", + " with base 4 to its decimal equivalent =\n", + " 210.375\n" + ] + } + ], + "source": [ + "print \"Conversion of the number 3102.12 \\n with base 4 to its decimal equivalent =\"\n", + "N=(3*4**3)+(1*4**2)+(0*4**1)+(2*4**0)+(1*4**(-1))+(2*4**(-2))#\n", + "print \" %.3f\"%(N)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_19 PG-13.10" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Conversion of the number 614.15 with base 7 to its decimal equivalent =\n", + " 305.2449\n" + ] + } + ], + "source": [ + "print \"Conversion of the number 614.15 with base 7 to its decimal equivalent =\"\n", + "N=(6*7**2)+(1*7**1)+(4*7**0)+(1*7**(-1))+(5*7**(-2))#\n", + "print \" %.4f\"%(N)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_20 PG-13.11" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Conversion of decimal number 37 to its binary equivalent = 100101\n" + ] + } + ], + "source": [ + "print \"Conversion of decimal number 37 to its binary equivalent =\",\n", + "a=37#\n", + "x=bin(a)#\n", + "print \"%s\"%(x)[2:]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_21 PG-13.12" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "conversion of decimal number 214 to its octal equivalent = 26\n" + ] + } + ], + "source": [ + "print \"conversion of decimal number 214 to its octal equivalent =\",\n", + "a=214#\n", + "x=oct(a)\n", + "print x[2:]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_22 PG-13.12" + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "conversion of decimal number 3509 to its hexadecimal equivalent = db5\n" + ] + } + ], + "source": [ + "print \"conversion of decimal number 3509 to its hexadecimal equivalent =\",\n", + "a=3509#\n", + "x=hex(a)\n", + "print x[2:]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_23 PG-13.13 " + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "conversion of decimal number 54 base to a number with base 4 = 312\n" + ] + } + ], + "source": [ + "print \"conversion of decimal number 54 base to a number with base 4 =\",\n", + "a=54\n", + "base = 4\n", + "def base10toN(num, base):\n", + " \"\"\"Change ``num'' to given base\n", + " Upto base 36 is supported.\"\"\"\n", + "\n", + " converted_string, modstring = \"\", \"\"\n", + " currentnum = num\n", + " if not 1 < base < 37:\n", + " raise ValueError(\"base must be between 2 and 36\")\n", + " if not num:\n", + " return '0'\n", + " while currentnum:\n", + " mod = currentnum % base\n", + " currentnum = currentnum // base\n", + " converted_string = chr(48 + mod + 7*(mod > 10)) + converted_string\n", + " return converted_string\n", + "print base10toN(a,base)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_24 PG-13.13" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Conversion of decimal number 0.8125 base to its binary equivalent \n", + "\n", + "The binary equivalent of the given decimal number 0.8125 is = 1.1010\n" + ] + } + ], + "source": [ + "print \"Conversion of decimal number 0.8125 base to its binary equivalent \"\n", + "a=0.8125\n", + "z=(a%1)#\n", + "d=0#\n", + "for i in range(0,10):##converting the values after the decimal point into binary\n", + " z=z*2#\n", + " q=floor(z)#\n", + " d=d+q/(10**i)#\n", + " if z>=1 :\n", + " z=z-1#\n", + " \n", + "\n", + "s=d#\n", + "print \"\\nThe binary equivalent of the given decimal number 0.8125 is = %.4f\"%(s)#" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_25 PG-13.14" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Conversion of decimal number 0.95 base to its binary equivalent \n", + "\n", + " The binary equivalent of the given decimal number 0.95 is = 1.1110011\n" + ] + } + ], + "source": [ + "print \"Conversion of decimal number 0.95 base to its binary equivalent \"\n", + "a=0.95#\n", + "z=(a%1)#\n", + "d=0#\n", + "for i in range(0,10):##converting the values after the decimal point into binary\n", + " z=z*2#\n", + " q=floor(z)#\n", + " d=d+q/(10**i)#\n", + " if z>=1:\n", + " z=z-1#\n", + " \n", + "\n", + "s=d#\n", + "print \"\\n The binary equivalent of the given decimal number 0.95 is = %.7f\"%(s)#" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_26 PG-13.14" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Conversion of decimal number 0.640625 base to its octal equivalent =\n", + "\n", + "The octal equivalent of the given decimal number 0.640625 is = 5.10\n" + ] + } + ], + "source": [ + "print \"Conversion of decimal number 0.640625 base to its octal equivalent =\"\n", + "a=0.640625\n", + "z=(a%1)#\n", + "d=0#\n", + "for i in range(0,10):##converting the values after the decimal point into octal\n", + " z=z*8#\n", + " q=floor(z)#\n", + " d=d+q/(10**i)#\n", + " if z>=1:\n", + " z=z-q#\n", + " \n", + "\n", + "s=d#\n", + "print \"\\nThe octal equivalent of the given decimal number 0.640625 is = %.2f\"%(s)#" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_27 PG-13.14" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Conversion of decimal number 0.1289062 base to its hexadecimal equivalent \n", + "\n", + "The hexadecimal equivalent of the given decimal number 0.640625 is = 2.167\n" + ] + } + ], + "source": [ + "print \"Conversion of decimal number 0.1289062 base to its hexadecimal equivalent \"\n", + "a=0.1289062\n", + "z=(a%1)#\n", + "d=0#\n", + "for i in range(0,10):##converting the values after the decimal point into octal\n", + " z=z*16#\n", + " q=floor(z)#\n", + " d=d+q/(10**i)#\n", + " if z>=1 :\n", + " z=z-q#\n", + " \n", + "\n", + "s=d#\n", + "print \"\\nThe hexadecimal equivalent of the given decimal number 0.640625 is = %.3f\"%(s)#" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_28 PG-13.14" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Conversion of decimal number 24.6 base to its binary equivalent \n", + "\n", + "The binary equivalent of the given decimal number 24.6 is =11001.00110\n" + ] + } + ], + "source": [ + "print \"Conversion of decimal number 24.6 base to its binary equivalent \"\n", + "a=24.6#\n", + "z=(a%1)\n", + "x=floor(a)##separating the decimal from the integer part\n", + "b=0#\n", + "c=0#\n", + "d=0#\n", + "while(x>0) : #taking integer part into a matrix and convert to equivalent binary\n", + " y=(x%2)#\n", + " b=b+(10**c)*y#\n", + " x=x/2#\n", + " x=floor(x)#\n", + " c=c+1#\n", + "\n", + "for i in range(0,10):##converting the values after the decimal point into binary\n", + " z=z*2#\n", + " q=floor(z)#\n", + " d=d+q/(10**i)#\n", + " \n", + " if z>=1 :\n", + " z=z-1#\n", + " \n", + "\n", + "s=b+d#\n", + "print \"\\nThe binary equivalent of the given decimal number 24.6 is =%.5f\"%(s)#" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_29 PG-13.15" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Conversion of decimal number 35.45 to its octal equivalent \n", + "\n", + "The octal equivalent of the given decimal number 35.45 is =326.46315\n" + ] + } + ], + "source": [ + "print \"Conversion of decimal number 35.45 to its octal equivalent \"\n", + "a=35.45#\n", + "z=(a)\n", + "x=floor(a)##separating the decimal from the integer part\n", + "b=0#\n", + "c=0#\n", + "d=0#\n", + "while(x>0): #taking integer part into a matrix and convert to equivalent octal\n", + " y=(x%8)#\n", + " b=b+(10**c)*y#\n", + " x=x/8#\n", + " x=floor(x)#\n", + " c=c+1#\n", + "\n", + "for i in range(0,10):##converting the values after the decimal point into octal\n", + " z=z*8#\n", + " q=floor(z)#\n", + " d=d+q/(10**i)#\n", + " if z>=1 :\n", + " z=z-q#\n", + "\n", + "\n", + "s=b+d#\n", + "print \"\\nThe octal equivalent of the given decimal number 35.45 is =%.5f\"%(s)#" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_32 Pg-18" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + " Conversion of hexadecimal number 2AC5.D to \n", + "\n", + "\n", + " Decimal form = 10949.8125\n", + "\n", + "\n", + " Octal form = 25311.40\n", + "\n", + "\n", + " Binary form : \n", + "\n", + " Integer part 2AC5 = 0010101011000101\n", + "\n", + " Decimal part 0.D = 1.101000\n" + ] + } + ], + "source": [ + "print \"\\n\\n Conversion of hexadecimal number 2AC5.D to \\n\\n\"\n", + "\n", + "#conversion into decimal form\n", + "N=(2*16**3)+(10*16**2)+(12*16**1)+(5*16**0)+(13*16**(-1))\n", + "print \" Decimal form = %.4f\\n\\n\"%(N)\n", + "\n", + "#conversion into octal form\n", + "#we take the value of the decimal form and convert it to octal form\n", + "z=(N%1)\n", + "x=floor(N)##separating the decimal from the integer part\n", + "b=0#\n", + "c=0#\n", + "d=0#\n", + "while(x>0): #taking integer part into a matrix and convert to equivalent binary\n", + " y=(x%8)#\n", + " b=b+(10**c)*y#\n", + " x=x/8#\n", + " x=floor(x)#\n", + " c=c+1#\n", + "\n", + "for i in range(0,10):##converting the values after the decimal point intooctal\n", + " z=z*8#\n", + " q=floor(z)#\n", + " d=d+q/(10**i)#\n", + " if z>=1:\n", + " z=z-q#\n", + " \n", + "\n", + "s=b+d#\n", + "print \" Octal form = %.2f\\n\\n\"%(s)#\n", + "\n", + "#conversion into binary form\n", + "#we take the value of the decimal form and convert it to octal form\n", + "z=(N%1)\n", + "x=floor(N)##separating the decimal from the integer part\n", + "b=0#\n", + "c=0#\n", + "d=0#\n", + "while(x>0) : #taking integer part into a matrix and convert to equivalent binary\n", + " y=(x%2)#\n", + " b=b+(10**c)*y#\n", + " x=x/2#\n", + " x=floor(x)#\n", + " c=c+1#\n", + "\n", + "for i in range(0,10):##converting the values after the decimal point into binary\n", + " z=z*2#\n", + " q=floor(z)#\n", + " d=d+q/(10**i)#\n", + " \n", + " if z>=1 :\n", + " z=z-1#\n", + " \n", + "\n", + "s=b+d#\n", + "print \" Binary form : \"\n", + "print \"\\n Integer part 2AC5 = 00%.0f\"%(b)\n", + "print \"\\n Decimal part 0.D = %.4f00\"%(d)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_33 Pg-18" + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " i)\n", + " Detemination of value of base x \n", + "\n", + " (193)_x = (623)_8\n", + "\n", + "\n", + " First we convert (623)_8 octal into decimal\n", + "\n", + "\n", + " (623)_8 = (403)_10\n", + "\n", + "\n", + " Therefore (193)_x = (403)_10\n", + "\n", + "\n", + " (1*x**2)+(9*x**1)+(3*x**0) = 403\n", + "\n", + "\n", + " x**2 + 9x + 3 = 403\n", + "\n", + "\n", + " x**2 + 9x -400 = 0\n", + "\n", + "\n", + "Therefore x1 = 16\n", + " x2 = -25\n", + "\n", + " Negative is not applicable. Therefore x = 16\n", + "\n", + " Hence (193)_16 = (623)_8\n", + "\n", + "\n", + "\n", + " ii)\n", + " Detemination of value of base x \n", + "\n", + " (225)_x = (341)_8\n", + "\n", + "\n", + " First we convert (341)_8 octal into decimal\n", + "\n", + "\n", + " (341)_8 = (225)_10\n", + "\n", + "\n", + "Therefore (225)_x = (225)_10\n", + "\n", + "\n", + " (2*x**2)+(2*x**1)+(2*x**0) = 225\n", + "\n", + "\n", + " 2x**2 + 2x +5 = 225\n", + "\n", + "\n", + " 2x**2 + 2x -220= 0\n", + "\n", + "\n", + "Therefore x1 = 10\n", + " x2 = -11\n", + "\n", + " Negative is not applicable. Therefore x = 10\n", + "\n", + " Hence (225)_10 = (341)_8\n", + "\n", + "\n", + "\n", + " iii)\n", + " Detemination of value of base x \n", + "\n", + " (211)_x = (152)_8\n", + "\n", + "\n", + " First we convert (152)_8 octal into decimal\n", + "\n", + "\n", + " (152)_8 = (106)_10\n", + "\n", + "\n", + "Therefore (211)_x = (106)_10\n", + "\n", + "\n", + " (2*x**2)+(1*x**1)+(1*x**0) = 106\n", + "\n", + "\n", + " 2x**2 + 1x +1 = 106\n", + "\n", + "\n", + " 2x**2 + 1x -105 = 0\n", + "\n", + "\n", + "Therefore x1 = 7\n", + " x2 = -8\n", + "\n", + " Negative is not applicable. Therefore x = 7\n", + "\n", + " Hence (211)_7 = (152)_8\n", + "\n", + "\n" + ] + } + ], + "source": [ + "from math import sqrt\n", + "print \"\\n i)\\n Detemination of value of base x \\n\"\n", + "print \" (193)_x = (623)_8\\n\\n\"\n", + "print \" First we convert (623)_8 octal into decimal\\n\\n\"\n", + "N=(6*8**2)+(2*8**1)+(3*8**0)\n", + "print \" (623)_8 = (%.0f)_10\\n\\n\"%(N)\n", + "print \" Therefore (193)_x = (%.0f)_10\\n\\n\"%(N)\n", + "print \" (1*x**2)+(9*x**1)+(3*x**0) = %.0f\\n\\n\"%(N)\n", + "print \" x**2 + 9x + 3 = %.0f\\n\\n\"%(N)\n", + "print \" x**2 + 9x %.0f = 0\\n\\n\"%(3-N)\n", + "a=1#\n", + "b=9#\n", + "c=-400\n", + "x1=(-b+sqrt(b**2-4*a*c))/(2*a)#\n", + "x2=(-b-sqrt(b**2-4*a*c))/(2*a)#\n", + "print \"Therefore x1 = %.0f\\n x2 = %.0f\"%(x1,x2)\n", + "print \"\\n Negative is not applicable. Therefore x = %.0f\"%(x1)\n", + "print \"\\n Hence (193)_%.0f = (623)_8\\n\\n\"%(x1)\n", + "\n", + "print \"\\n ii)\\n Detemination of value of base x \\n\"\n", + "print \" (225)_x = (341)_8\\n\\n\"\n", + "print \" First we convert (341)_8 octal into decimal\\n\\n\"\n", + "N=(3*8**2)+(4*8**1)+(1*8**0)\n", + "print \" (341)_8 = (%.0f)_10\\n\\n\"%(N)\n", + "print \"Therefore (225)_x = (%.0f)_10\\n\\n\"%(N)\n", + "print \" (2*x**2)+(2*x**1)+(2*x**0) = %.0f\\n\\n\"%(N)\n", + "print \" 2x**2 + 2x +5 = %.0f\\n\\n\"%(N)\n", + "print \" 2x**2 + 2x %.0f= 0\\n\\n\"%(5-N)\n", + "a=2#\n", + "b=2#\n", + "c=-200\n", + "x1=(-b+sqrt(b**2-4*a*c))/(2*a)#\n", + "x2=(-b-sqrt(b**2-4*a*c))/(2*a)#\n", + "print \"Therefore x1 = %.0f\\n x2 = %.0f\"%(x1,x2)\n", + "print \"\\n Negative is not applicable. Therefore x = %.0f\"%(x1)\n", + "print \"\\n Hence (225)_%.0f = (341)_8\\n\\n\"%(x1)\n", + "\n", + "print \"\\n iii)\\n Detemination of value of base x \\n\"\n", + "print \" (211)_x = (152)_8\\n\\n\"\n", + "print \" First we convert (152)_8 octal into decimal\\n\\n\"\n", + "N=(1*8**2)+(5*8**1)+(2*8**0)\n", + "print \" (152)_8 = (%.0f)_10\\n\\n\"%(N)\n", + "print \"Therefore (211)_x = (%.0f)_10\\n\\n\"%(N)\n", + "print \" (2*x**2)+(1*x**1)+(1*x**0) = %.0f\\n\\n\"%(N)\n", + "print \" 2x**2 + 1x +1 = %.0f\\n\\n\"%(N)\n", + "print \" 2x**2 + 1x %.0f = 0\\n\\n\"%(1-N)\n", + "a=2#\n", + "b=1#\n", + "c=-105\n", + "x1=(-b+sqrt(b**2-4*a*c))/(2*a)#\n", + "x2=(-b-sqrt(b**2-4*a*c))/(2*a)#\n", + "print \"Therefore x1 = %.0f\\n x2 = %.0f\"%(x1,x2)\n", + "print \"\\n Negative is not applicable. Therefore x = %.0f\"%(x1)\n", + "print \"\\n Hence (211)_%.0f = (152)_8\\n\\n\"%(x1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_34 Pg-20" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 1's complement of 1101 = 0010\n" + ] + } + ], + "source": [ + "print \" 1's complement of 1101 = \",\n", + "x='1101'\n", + "\n", + "def bitcmp(a):\n", + " a= str.replace(a,'0','x')\n", + " a = str.replace(a,'1','0')\n", + " a= str.replace(a,'x','1')\n", + " return a\n", + "z = bitcmp(x)\n", + "\n", + "print \"%s\"%(z)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_35 Pg-20" + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1's complement of 10111001 = 01000110\n" + ] + } + ], + "source": [ + "print \"1's complement of 10111001 = \",\n", + "x='10111001'\n", + "def bitcmp(a):\n", + " a= str.replace(a,'0','x')\n", + " a = str.replace(a,'1','0')\n", + " a= str.replace(a,'x','1')\n", + " return a\n", + "z = bitcmp(x)\n", + "\n", + "print \"%s\"%(z)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_36 Pg-21" + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 2's complement 1001 is : 0111\n" + ] + } + ], + "source": [ + "print \" 2's complement 1001 is : \",\n", + "x='1001'#\n", + "def bitcmp(a):\n", + " a= str.replace(a,'0','x')\n", + " a = str.replace(a,'1','0')\n", + " a= str.replace(a,'x','1')\n", + " return a\n", + "z = bitcmp(x)\n", + "z = int(z,2)+1\n", + "z = bin(z)\n", + "print \"0%s\"%(z[2:])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_37 Pg-21" + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2's complement 10100011 is : 01011101\n" + ] + } + ], + "source": [ + "print \"2's complement 10100011 is : \",\n", + "x='10100011'\n", + "z = bitcmp(x)\n", + "z = int(z,2)+1\n", + "z = bin(z)\n", + "print \"0%s\"%(z[2:])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_38 Pg-22" + ] + }, + { + "cell_type": "code", + "execution_count": 99, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "7's complement of(612)_8 is : 0165\n" + ] + } + ], + "source": [ + "print \"7's complement of(612)_8 is : \",\n", + "x='612'\n", + "x=int(x,8)\n", + "x = bin(x)\n", + "x = bitcmp(x)[2:]\n", + "x = int(x,2)\n", + "x = oct(x)\n", + "print x" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_40 Pg-22" + ] + }, + { + "cell_type": "code", + "execution_count": 100, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "15's complement (A9B)_16 is : 564\n" + ] + } + ], + "source": [ + "print \"15's complement (A9B)_16 is :\",\n", + "x='A9B'#\n", + "def hex15cmp(n):\n", + " nn = int(n,16)\n", + " nn = bin(nn)\n", + " nn = bitcmp(nn)[2:]\n", + " nn = int(nn,2)\n", + " nn = hex(nn)\n", + " return nn[2:]\n", + "\n", + "y=hex15cmp(x)##hexadecimal to decimal conversion#\n", + "print \"%s\"%y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_41 Pg-23" + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "16's complement (A8C)_16 is : 574\n" + ] + } + ], + "source": [ + "print \"16's complement (A8C)_16 is : \",\n", + "x='A8C'#\n", + "y=hex15cmp(x)##hexadecimal 15's comp\n", + "y = hex(int(y,16)+1)[2:]\n", + "print \"%s\"%(y)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_42 Pg-23" + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "the addition of given numbers is: 1101\n" + ] + } + ], + "source": [ + "x='1010'#\n", + "y='0011'#\n", + "#binary to decimal conversion#\n", + "x=int(x,2)\n", + "y=int(y,2)\n", + "z=x+y#\n", + "a=bin(z)[2:]#decimal to binary conversion#\n", + "print 'the addition of given numbers is: ',\n", + "print \"%s\"%(a)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 13_43 Pg-23" + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "the addition of given numbers in binary is: 101011\n", + "\n", + " the addition of given numbers in decimal is: 43\n" + ] + } + ], + "source": [ + "x=28#\n", + "y=15#\n", + "# decimal to binary conversion#\n", + "z=x+y#\n", + "a=bin(z)\n", + "print 'the addition of given numbers in binary is: ',\n", + "print \"%s\"%(a)[2:]\n", + "print '\\n the addition of given numbers in decimal is: ',\n", + "print \"%.0f\"%(z)" + ] + } + ], + "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 +} diff --git a/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter2.ipynb b/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter2.ipynb new file mode 100644 index 00000000..725fd35c --- /dev/null +++ b/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter2.ipynb @@ -0,0 +1,812 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 2 Semiconductor devices" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2.1 Pg-2.18" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "the equivalent resistance are Rf=3.333 ohm and Rr=2.4 M ohm\n" + ] + } + ], + "source": [ + "Vf=0.2 # #voltage in volts\n", + "Vr=60 # #voltage in volts\n", + "If=60*10**(-3) # #current in ampere\n", + "I0=0.025*10**(-3) # #current in ampere\n", + "Rf=Vf/If # #forward resistance\n", + "Rr=Vr/I0 # #reverse resistance\n", + "Rr=Rr*1e-6\n", + "print \"the equivalent resistance are Rf=%.3f ohm and Rr=%-.1f M ohm\"%(Rf,Rr)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex-2.2 Pg-2.18" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "refer to the Figure-2.19 given \n", + "from the characteristics at point P, Vf=0.7V,If=60mA\n", + "\n", + " DC forward resistance Rf : 11.67 ohm\n", + "\n", + "as the forward voltage changes from P to Q\n", + "\n", + " Dynamic forward resistance rf : 1.167 ohm\n" + ] + } + ], + "source": [ + "print \"refer to the Figure-2.19 given \"\n", + "print \"from the characteristics at point P, Vf=0.7V,If=60mA\"\n", + "Vf=0.7 #\n", + "If=0.06 #\n", + "Rf=Vf/If # #DC forward resistance\n", + "print \"\\n DC forward resistance Rf : %.2f ohm\\n\"%(Rf)\n", + "print \"as the forward voltage changes from P to Q\"\n", + "delta_Vf=0.77-.7 #\n", + "delta_If=(120-60)*10**(-3) #\n", + "rf=delta_Vf/delta_If # #dynamic forward resistance\n", + "print \"\\n Dynamic forward resistance rf : %.3f ohm\"%(rf)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2_3 Pg-2-22" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Refer to the figure-2.24 shown \n", + " since Rf=0 The circuit becomes as shown in figure-2.24(a)\n", + "\n", + " \n", + " current through the resistance Il=If = is 9.3 mA\n", + "\n", + " \n", + " voltage across Rl is 9.3 V\n", + "\n", + " \n", + " diode power Pd = 6.51 mW\n", + "\n", + " \n", + " load power Pl = 86.49 mW\n" + ] + } + ], + "source": [ + "print \" Refer to the figure-2.24 shown \"\n", + "print \" since Rf=0 The circuit becomes as shown in figure-2.24(a)\"\n", + "V=10 # #supply voltage\n", + "Rf=0 # #forward resistance\n", + "Rl=1 # #load resistance in k ohm\n", + "Vin=0.7 # #cut in voltage\n", + "Il=(V-Vin)/Rl # #applying KVL to the loop\n", + "If=Il #\n", + "print \"\\n \\n current through the resistance Il=If = is %.1f mA\"%(If)\n", + "Vl=Il*Rl #\n", + "print \"\\n \\n voltage across Rl is %.1f V\"%(Vl)\n", + "Pd=If*Vin #\n", + "print \"\\n \\n diode power Pd = %.2f mW\"%(Pd)\n", + "Pl=Il*Vl #\n", + "print \"\\n \\n load power Pl = %.2f mW\"%(Pl)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2_4 PG-2.23" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Refer the Figure-2.25 shown\n", + "When forward resistance Rf is neglected then\n", + "the diode behaves as a battery as shown in Figure-2.25(a)\n", + "\n", + " Forward current is 18.60 mA\n", + "\n", + "When forward resistance is Rf is 3.2 Ohm then\n", + "the equivalent circuit is as shown in fig-2.25(b)\n", + "\n", + " therefore Forward current is 18.4817 mA\n" + ] + } + ], + "source": [ + "print \"Refer the Figure-2.25 shown\"\n", + "print \"When forward resistance Rf is neglected then\"\n", + "print \"the diode behaves as a battery as shown in Figure-2.25(a)\"\n", + "Vf=0.7 # #cut-in voltage\n", + "V=10 # #supply voltage\n", + "Rl=500 # #load resistance\n", + "If=(V-Vf)/Rl # #applying KVL to the circuit\n", + "If=If*1e3\n", + "print \"\\n Forward current is %.2f mA\\n\"%(If)\n", + "print \"When forward resistance is Rf is 3.2 Ohm then\"\n", + "print \"the equivalent circuit is as shown in fig-2.25(b)\"\n", + "Rf=3.2 #\n", + "If=(V-Vf)/(Rl+Rf) # #applying KVL to the circuit\n", + "If=If*1e3\n", + "print \"\\n therefore Forward current is %.4f mA\"%(If)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2_5 PG-2.23" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "when forward current is zero then\n", + " voltage across the diode is 0.3 V\n", + "\n", + "when forward current is 80mA then\n", + " voltage across the diode is 0.332 V\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fb06044c950>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "If=80e-3 # #maximum forward current\n", + "Rf=0.4 # #dynamic resistance\n", + "Vin=0.3 # #cut-in voltage for germanium\n", + "print \"when forward current is zero then\"\n", + "Vf=Vin # #voltage across the diode\n", + "print \" voltage across the diode is %1.1f V\\n\"%(Vf)\n", + "print \"when forward current is 80mA then\"\n", + "Vf=Vin+If*Rf #\n", + "print \" voltage across the diode is %1.3f V\"%(Vf)\n", + "x=[0 ,.1 ,.2 ,.3 ,.332] # #x-coordinate\n", + "y=[0 ,0 ,0 ,0 ,80] # #y-coordinate\n", + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "plt.plot(x,y)\n", + "plt.xlabel('voltage across the diode (V) ') #\n", + "plt.ylabel('current (mA)') #\n", + "plt.title('Piecewise linear characteristic')\n", + "plt.grid()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2_6 PG-2.28" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Refer to the Figure:2.29 shown\n", + "for Q point If=25mA, ie Iq=25mA\n", + "for If=0 A, Vf=Vin=3V at point B\n", + "Now we draw the graph\n", + "The coordinates are Q=(1V,25mA) B=(3V,0mA)\n" + ] + }, + { + "data": { + "image/png": "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\nSUVORK5CYII=\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fb060470d50>" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Q-point is denoted by the intersection of two lines as shown in the plot\n", + "Therefore load resistance is the reciprocal of the slope \n", + "\n", + " required load resistance is 90 ohm\n" + ] + } + ], + "source": [ + "print \"Refer to the Figure:2.29 shown\"\n", + "If=25e-3 # #current at Q-point\n", + "print \"for Q point If=25mA, ie Iq=25mA\"\n", + "print \"for If=0 A, Vf=Vin=3V at point B\"\n", + "print \"Now we draw the graph\"\n", + "print \"The coordinates are Q=(1V,25mA) B=(3V,0mA)\"\n", + "x=[ 0 ,0.5, 0.6, 1, 1.1 ] # #x-coordinate\n", + "y=[ 0 , 1 , 5 ,25 ,30 ] # #y-coordinate\n", + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "plt.plot(x,y)\n", + "x1=[0.5 , 1, 3] # #x-coordinate\n", + "y1=[ 31 ,25 , 0] # #y-coordinate\n", + "plt.plot(x1,y1)\n", + "x2=[ 0, 1] #\n", + "y2=[25 ,25] #\n", + "plt.plot(x2,y2)\n", + "plt.xlabel('Vf (volts)') #\n", + "plt.ylabel('If (mA)') #\n", + "plt.title(\"Piece-wise linear characteristic\")\n", + "plt.grid() #\n", + "plt.show()\n", + "print \"Q-point is denoted by the intersection of two lines as shown in the plot\"\n", + "delta_If=10e-3 # #from the graph plotted\n", + "delta_Vf=0.9 # #from the graph plotted\n", + "s=delta_If/delta_Vf # #slope\n", + "print \"Therefore load resistance is the reciprocal of the slope \"\n", + "Rl=1/s # #load resistance\n", + "print \"\\n required load resistance is %.0f ohm\"%(Rl)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2_7 PG-2.29" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "We draw the new DC load line in the plot\n", + "\n", + " slope is -1.000000 \n", + "\n", + "The slope passes through the Q-point so the equation of the load \n", + "line is If=(-Vf/Rl)+(Vin/Rl)\n", + "Now from the graph we can see that slope =(change in If)/(change in Vf)\n", + "For If=35 mA Vf=1.1 V\n", + "The coordinates are Q=(1.1V,35mA) C=(2.6V,25mA) B=(6.4V,0mA)\n", + "\n", + " change in Vf is 0.0 V \n", + "\n", + "This is point C corresponding to If=35-10=35mA, as If is change by 10mA\n", + "and Vf=2.6V \n", + "We join the Q-point and point C as shown in the plot to get the DC load\n", + " line we extend the line to intersect point B \n", + "the voltage at point B is the new supply voltage required\n", + "\n", + " From the plot voltage at point B = 6.7 V\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEZCAYAAACQK04eAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xd8FPX2//HXCb2HojTB2CuQ0EQRCUVARYp6VbyXLk0v\ndn+o96qgX70W7F4BAQlYUK4IghRRSBQVkRZAEMWCggaQKh0h5/fHTGQJyWaT7GZ2suf5eOyDzO6U\n927CyeTMzGdEVTHGGBM74rwOYIwxpmhZ4TfGmBhjhd8YY2KMFX5jjIkxVviNMSbGWOE3xpgYY4W/\nmBORPSKS4HWO7ESkvptNwrjOBBHJFJE4d3q2iPQM1/ojQUSGi8jrXucIBxFpJSLrCrhs1H+vipOS\nXgcwhSciG4CTgaPAPmAO8E9V3aeqlbzMlhtV/QWIaDZVvTKS6w+TqLiQRkT6AP1VtVVB16GqC4Fz\nQ9jWcOAMVf2r0Pvke1Vs2B5/8aBAZ7fINwaaAv/2NlJsEpH87kyF8y+eEuFaVwG2bTuRPmKFv5hR\n1d+AucAFAG7r43T36zIiMlJEfhaRzSIySkTKZi0rIl1FJF1EdovI9yLS0X2+ioiMF5HfRGSTiDya\n1U7JTkRGiMiL7telRGSfiDzlTpcTkYMiEp9DW6aPiPwgIn+IyI8iclPAOvuJyFoR2SEic0Wkfiif\nhYikiUj/gPV/JiJPu+v5UUQ6Bcyb63sUkTNEZIGIbBOR30XkDRGpErDsBhH5fyKyCtiT02cjIheI\nyEcist397O/P+pYBpUVkovvevxaRJgHL3ed+L/4QkTUi0i3gtT4i8rmIPCsi24CHReT0PLLWE5H3\nRGSrO89LInIuMBq42G2/7XDnzfXnRUSS3c/p/4lIBjDefW5jwLaGufP8ISLrRKSt+5nfD9zgbmtF\n9u+VOz3A/Z5nve+kUL7nJjRW+IsPAec/NnAFsCKHeZ4AzgQauf/WBR5yl2sOTATuVtUqwGXABne5\nFOAwcAaQBHQAbs4lRxqQ7H7dDMhw1wVwMfCNqu46LrhIBeAFoJOqVnbnS3df64pTKLoDNYCFwORg\nH0QA5fhWSnNgHVAdeAoYH/BaXu/xMaA2cB5QDxiebVs34nzu8aqame39VQI+Bma76zgTmJ/1MtDF\nfU9VgBnAywGLfw9c6n4uI4A3RKRmtvf0A06r73F3fTlmFecvgg+An4BTcb7/k1V1HTAIWKSqlVS1\nmrvuXH9eXDWBqkB9d/nA93wOcCvQ1M3eAdigqnPdnG+728oq6H99r0Tkb8DDQE932auB7ZjwUVV7\n+PyBU6D3ADvdr18GyrivZQKn4xSEvcDpActdDPzofj0GeCaHddcEDgJlA57rASzIJUs54ABQDRiG\nU7Q3AhVwCtfz7nwJbrY497WdwDVAuWzrmwP0C5iOwzmOUS+Hbf+1Tnc6NWtZoA+wPmDe8u68Jxfg\nPXYDlgdM/wT0CfL96QEsy+W14cC8gOnzgf1B1rUC6BLwnn7O42fjr6zu93tr1ueTbb4+wMKA6bx+\nXpKBQ0DpgNeTgY3u12cCW4B2QKkc3vPr2Z4L/F59CAz1+v9VcX5YX654UKCrqi4IMs9JOMVumRw7\nkUY49lffKcCsHJY7FSgFZAQsFwf8AiAia3D2+MDZY/9cRJYCrXH29B8DEoGW7vSLJ4RX3SciNwD3\n4LQMPsf5y+Nbd/sviMgz2Rari/MLJT82B2xzv/t+KuL8JRHsPdbE+YvkUpwD0nHAjmzrDpalHvBj\nkNe3BHy9HygrInGqmikivYA7cX6pZeWtntt288haD+cXxXF/keQir58XgN9V9XBOC6vq9yJyB06R\nv0BEPgTuUtWMELZ9Cs5fMSZCrNUTO7bh7Imfr6pV3Ue8On9Kg1NAzsxhuY04e3bVA5aroqoNAFT1\nAnX+ZK+kqp+7y3yCs6eXBCxxpzvhtCU+zSmcqs5T1Q5ALZx2zFj3pV+AgQHbrqqqFVT1y8J9HKG/\nR5zWxFHgQnXaYD058f9OsLNzfsH5qysnuS4nIqcCr+K0TKqpalXga44/IJx9+WBZNwL1JeeDwNnX\nk9fPS9DsAKo6WZ2zhE51530ylOXI/WfRhIkV/hjh7uWNBZ4XkZMARKSuiHRwZxkP9HUPwMW5r53j\n7qHNA54VkUrua2eIyGU5bwlwCn0vYI2q/onT978Zp01wQq9WRE4W58ByBeBPnFbOUffl0cADInK+\nO28VtwccNiG8x4pupj9EpC5wbz438QFQW0Rudw+YVnKPqUDws3oq4BTJbUCciPQFLsxjW8GyfoVz\nzOUJESkvImVF5BL3tS3AKSJSCkL6eQlKRM52f5bK4PxSPcix7+lmIEEk12s4xgH3iEhjcZwpIR7Q\nN6Gxwl/8Be5dDcM5WPiliOwGPgLOBlDVJUBf4DlgF06xzvrP1gsoDazFaRv8D2fPPDeLgLIc27v/\nBmfvMfvefla2OJx2xq84B/FaAUPcXNNx9hTfdjOvBjqG+H6zP5/9tcDpYO9xBM5psruBmcDUINs5\nccOqe4HLcQ5SZgDfcewAeK65VHUt8AzO57kZp+h/lsd7yjWrqh51M5yJ81fIRuB6d7n5wBpgs4hs\ndZ/L9eclMGdO2YEywH+A3933XAPneA84ny3AdrctePwKVN/FaRG+BfwBvIdzENmEiahG9voR98/K\npcAmVb1anIs3bsb5gQC4X50j/cYYY4pAURzcvR1nLyrrKk0FnlXVZ4tg28YYY7KJaKtHRE4BrsTp\n2WX184TgfU1jjDERFOke/3M4B5cCTx9TYKiIrBTnSsn4CGcwxhgTIGKFX0Q6A1tVdQXH7+GPAk7D\nObc7A+fglTHGmCISsYO7IvI4zjnER3DO8KgMTFXVXgHzJAAzA86XDlw+KkYtNMYYv1HVoO30iO3x\nq+oDqlpPVU/DGcdkgar2EpHaAbN1xzk9L7d1+Pbx8MMPe54hFrNbfu8flt/bRyiKasgG4dj5vU+J\nSCN3+ieyDe5UXGzYsMHrCAXm5+xg+b1m+aNfkRR+VU3DuSAIDbj5gjHGmKJnV+5GSJ8+fbyOUGB+\nzg6W32uWP/pF/MrdghIRjdZsxhgTrUQE9ergbqxLS0vzOkKB+Tk7WH6vWf7oZ4XfGGNijLV6jDGm\nGLFWjzHGmBNY4Y8QP/cJ/ZwdLL/XLH/0s8JvjDExxnr8xhhTjFiP3xhjzAmiuvDvOLDD6wgF5uc+\noZ+zg+X3muWPflFd+BuMasD0ddO9jmGMMcVKVPf4F/68kH7v96NJnSa8dMVL1Chfw+tYxhgT1Xzf\n47+0/qWkD06nbqW6NBjVgP+t+Z/XkYwxxveiuvADlC9VnpEdRjLthmk8lPYQ1025ji17t3gdK09+\n7hP6OTtYfq9Z/ugX9YU/S4tTWrBi0ArOqnYWDUc35M1Vb4Z8txljjDHHRLzHLyIlgKXAJlW9WkSq\nAe8ApwIbgOtVdVcOy+V6Hv/S35bS9/2+nBZ/GqM7j6ZOpTqRewPGGOMj0dLjvx1Yy7FbL94HfKSq\nZwPz3el8aVqnKcsGLiOpVhKJoxNJSU+xvX9jjAlRRAu/iJwCXAmMw7nvLkAXYKL79USgW0HWXbpE\naUa0GcG8nvN4YfELXPXWVWzcvbHQmcPFz31CP2cHy+81yx/9Ir3H/xxwL5AZ8FxNVc06OrsFqFmY\nDSTWSuSrm7/iknqX0PjVxoxdNjaq9/5//x0OH/Y6hTEmlkWsxy8inYErVPVWEUkG7nZ7/DtVtWrA\nfDtUtVoOy2vv3r1JSEgAID4+nsTERJKTk4Fjv5UDp3/a+ROvbHuF+LLx9K/an1oVawWd34vp4cOT\neeghiIuLjjw2bdM27e/ptLQ0UlJSAEhISGDEiBF59vgjWfgfB3oCR4CyQGXgPaAZkKyqm0WkNpCq\nqufmsHyBBmk7knmEZ754hpGLRjIieQSDmw4mTqLn5KVzz4X33oPzz/c6iTGmOPL04K6qPqCq9VT1\nNOBGYIGq9gRmAL3d2XoDYR2ToWRcSYZdOoyFfRfy+qrXaTepHT/s+CGcmwhJ1m/k7DIyoHbtos2S\nX7ll9wvL7y3LH/2Kclc4a/f9CeByEfkOaOtOh925Nc7ls76fcfXZV3PRuIt44csXyNTMvBeMoP37\nnf5+fLynMYwxMS6qx+oJV7b129fTf0Z/MjWT17q+xtnVzw7LevPrhx+gfXv46SdPNm+MiQHRch6/\n586qfhZpfdK44YIbuGT8JYz8YiRHM48WeY7Nm6FWrSLfrDHGHCcmCj9AnMQx9KKhfDXgK2avn80l\nr13C2t/XRmx7OfUJ/dDfB//3OC2/tyx/9IuZwp/l9Kqn83Gvj+mb2JfWKa15fOHjHMk8UiTb9kvh\nN8YUbzHR48/NL7t/YcDMAWzbv40JXSfQsGbDiG7vX/+CsmXhwQcjuhljTAyzHn8e6lepz9y/z+XW\nZrfSflJ7RqSN4PDRyF1Wa3v8xphoENOFH5zfjv2S+rFi0AqW/LaEZmObsTxjeaHXaz1+71h+b1n+\n6BfzhT9L3cp1mdljJvdcfA9XvHkF/17wbw4dORTWbfil8BtjireY7vHnJmNPBrfMvoX129fzWtfX\naF63eVjWW6sWLF8Odez2AcaYCAmlx2+FPxeqyjtr3uGOuXfQq1EvRiSPoFypcgVe35EjUK4cHDgA\nJUuGMagxxgSwg7uFICLceOGNrBqyig27NpA0JokvNn4R8vLZ+4Rbt0L16v4o+n7vcVp+b1n+6GeF\nPw8nVziZKX+bwmNtH+PaKddy14d3sf/P/flej121a4yJFtbqyYdt+7dx+9zb+erXrxjfZTyXnXpZ\nyMvOmgUvvwxz5kQwoDEm5lmrJ8xqlK/Bm9e8yTMdnqHH1B4MnT2UvYf3hrSsndFjjIkWVvgLoMs5\nXfh6yNfsObyHBqMaMP/H+SfMk71P6KdWj997nJbfW5Y/+lnhL6Cq5aqS0i2FV658hb7v92XQzEH8\nceiPXOe3PX5jTLSwHn8Y7D64m3s/upcPf/iQVzu/SsczO54wzzXXwE03wXXXeRDQGBMzPO/xi0hZ\nEVksIukislZE/uM+P1xENonICvfRKZI5Iq1K2Sq8evWrjO8ynsGzBtPv/X7sOrjruHlsj98YEy0i\nWvhV9SDQRlUTgYZAGxG5FOc2jM+qapL7mBvJHEWl/entWTV4FeVKluOsu87ig+8++Os16/EXHcvv\nLcsf/SJ+OZGqZp30XhooAex0p4P+KeJXlcpU4r9X/Zez9pzF7XNv55017/B8xxfYvLma7fEbY6JC\nxHv8IhIHLAfOAEap6v8TkYeBvsBuYClwt6ruyracb3r8udl3eB//WvAv3vl6Crsn/5f9y7p7HckY\nU8yF0uMvij3+TCBRRKoAH4pIMjAKeMSd5VHgGaB/9mX7iJDgfh0PJALJ7nSa+2+0Tz//1+NnOv5f\nR6bcM4UqZav89edkcrKzhE3btE3bdEGm09LSSElJASAhIYGQqGqRPYAHgXuyPZcArM5hXvWz1NTU\nv76eP181lVQd8sEQrf9cfZ3/43zvgoUgMLsfWX5vWX5vubUzaC2O9Fk9NUQk3v26HHA5sEJEAg9z\ndgdWRzKH1zIynH9fueoVxnQeQ69pvbhz7p0c+POAt8GMMTEpoj1+EWkATMQ5eygOeF1VnxaRSTid\nGwV+Agap6pZsy2oksxWlZ56BJvekkazJAGzfv51bZt/C11u/5vXur9O4dmNvAxpjig3Pe/yquho4\noaqpaq9IbjfaZO3xZ6levjpvX/s2k7+eTKc3OnHbRbdx36X3UTLOB2M2G2N8z4ZsiJCsgy9wYuEH\n57fyTQ1uYvmg5Xzy8ye0mtCK9dvXF13AIAKz+5Hl95blj35W+IvA5s25v3ZK5VP48B8fctOFN3HJ\na5cwaskoikuLyxgTnWysniJw/vnwyjfHevy5WbdtHT2n9aRG+RqM7zKeOpXs5rzGmPzxfKwe48ip\n1ZOTc2ucyxf9vuCiuheRNCaJKWumRDaYMSYmWeGPkKw+4cGDsD8fd2osVaIUw5OHM7PHTB5MfZC/\nv/d3dh7YmfeCYeT3Hqfl95blj35W+CNs82aoWTP/yzWv25wVg1ZQrWw1Go1uxMc/fhz+cMaYmGQ9\n/ghbtAjuuAOe/CrvHn9u5v0wj/4z+tP93O480f4JypcqH96Qxphiw3r8UWDz5sKPw9/hjA6sGryK\nbfu30XhMY5b8uiQ84YwxMckKf4Rk9QkzMsIzDn/VclV569q3GJE8gs6TOzMibQR/Hv2z8CvOgd97\nnJbfW5Y/+lnhj7Bw33nrhgtvYPnA5SzatIiWr7Xk223fhm/lxpiYYD3+CBswAJo1g7MHFbzHnxNV\nZdTSUTyc9jAPt36YW5rdQpzY73FjYp31+KNAuFo92YkItzS7hc/7fc7rq16n0xud+PWPX8O/IWNM\nsWOFP0ICe/yRvOXi2dXP5vN+n9OqfiuSxiQxefXkQq/T7z1Oy+8tyx/9rPBHWDjO6slLybiSPNj6\nQWb/fTaPfPoIN757IzsO7IjsRo0xvmU9/gg6ehTKlYO9e+GLMuHt8efmwJ8HuH/+/by79l3GdxlP\nxzM7RnybxpjoYT1+j23bBlWqQOnSRbfNcqXK8Xyn55nYbSIDZg7g1lm3su/wvqILYIyJehEr/CJS\nVkQWi0i6iKwVkf+4z1cTkY9E5DsRmZd1a8biJi0trUjaPLlpd3o7Vg1ZxR+H/yBpTBKLNy0OeVm/\n9zgtv7csf/SLWOFX1YNAG1VNBBoCbUTkUuA+4CNVPRuY704XS5E6oydU8WXjeb376zze7nG6vt2V\nh1IfithFX8YY/yiSHr+IlAc+AfoAU4HWqrrFvel6mqqem8Myvu/xT5gAaWkwcSKkSdH0+HOTsSeD\n/jP6s3XfVl7v/jrnnXSeZ1mMMZHjeY9fROJEJB3YAqSq6hqgZsCN1bcABRi70h+8bPVkV7tSbWbd\nNIsBjQdwWcplvPDlC2RqptexjDEeiPTN1jOBRBGpAnwoIm2yva4ikutufZ8+fUhISAAgPj6exMRE\nkpOTgWN9uGidfv7551myJJHLLnOm00mHNO/zDUoeRLvT29H1P12Z9P4kpt83nXpV6h03f2CP0+u8\nBZm2/JY/lvKnpaWRkpIC8Fe9zJOqFskDeBC4B1gH1HKfqw2sy2V+9bPU1FS97jrVt992p0n1NE92\nfx79Ux/79DE96amT9PWVr2tmZuZfr6WmpnoXLAwsv7csv7fc2hm0Hkesxy8iNYAjqrpLRMoBHwIj\ngI7AdlV9UkTuA+JV9YQDvMWhx3/ppfD443DZZd73+HOzImMF/5j2D84/6XxGXzWa6uWrex3JGFMI\nXvf4awML3B7/YmCmqs4HngAuF5HvgLbudLG0ebO3Z/WEIql2EssGLqN+5fo0HN2QOevneB3JGBNh\nkTydc7WqNlbVRFVtqKpPu8/vUNX2qnq2qnZQ1V2RyuCl1NS0iI/TEy5lS5blmY7P8OY1bzJk1hC6\n/KcLew/v9TpWgQX2aP3I8nvL7/lDYVfuRsj+/SAClSp5nSR0yQnJrBy8ksNHD5M4OpFFGxd5HckY\nEwE2Vk+EfPcdXHklfP+9Mx2tPf7cTPtmGkNmDaF/Un8eTn6Y0iWKcNwJY0yBed3jj2l+afPkpvt5\n3UkfnM6qratoMa4Fa7au8TqSMSZMrPBHyPz5ab4t/Fk9zloVazHjxhnc0uwWkicm8+yiZ31x0Zff\ne7SW31t+zx8KK/wRsmNH9J/REwoR4ebGN7P45sW89817tJvUjp93/ex1LGNMIViPP0KGDYP4eLj/\nfmfabz3+nBzNPMrIL0YyctFIRl4+kl6NeiEStJVojCli1uP3kN97/DkpEVeCYZcO4+OeH/PMome4\ndsq1/L7vd69jGWPyyQp/hKxdm+bbVk9ePc5GtRqxZMASzqx2Jo1GN+KD7z4ommAh8nuP1vJ7y+/5\nQ2GFP0K2by9+e/yBypQsw1OXP8Xb173N0DlDGTBjAHsO7fE6ljEmBNbjj5AaNWDtWjj5ZGe6OPT4\nc/PHoT+468O7SN2QysRuE7m0/qVeRzImZlmP3yOHD8Pu3U7xjwWVy1RmXJdxPNfxOf72v78x7KNh\nHDpyyOtYxphcWOGPgC1boEqVNOJ8+ukWtMfZ5ZwurBy8km+3f0vzcc1ZvWV1eIOFyO89WsvvLb/n\nD4VPS1N0y8iA6jE6uvHJFU5m2g3TuOOiO2g7qS1Pf/40RzOPeh3LGBPAevwRMGMGjB0LM2cee644\n9/hzs2HXBnpP742qMrHbRE6reprXkYwp9qzH75GMjOJx1W5hJcQnkNo7la7ndKX5uOa8tuI1/PrL\n3JjiJNI3W68nIqkiskZEvhaR29znh4vIJhFZ4T46RTJHUcvIgEOH0ryOUWDh7HHGSRx3X3I3C3ot\n4MXFL9LtnW5s3bc1bOvPid97tJbfW37PH4qQC7+IlBWRMvlc/5/Anap6AdACuFVEzgMUeFZVk9zH\n3HyuN6pt3hy7Pf7cNKjZgMU3L+aCky6g0ehGvL/ufa8jGROzcu3xi0gc0A3oAVyC80tCgKPAIuBN\nYHp+GvEiMh14GWgJ7FXVZ4LM69sef9eu0KcPdO9+7LlY7PHn5vNfPqf39N60OrUVL3R6gcplKnsd\nyZhio7A9/jSgCTASOF1Va6tqLeB097lmwCf5CJMAJAFfuk8NFZGVIjJeROJDXY8fFMdxesKpZf2W\npA9Op1RcKRqNbsQnG0L+MTLGhEGwwn+5qv5LVRer6l9X46jqIVX9UlUfAC4PZSMiUhF4F7hdVfcC\no4DTgEQgA8h1z9+PMjJgw4Y0r2MUWFH0OCuWrsirV7/KS1e8RI+pPbhn3j0cPHIwLOv2e4/W8nvL\n7/lDka/TOd0C3h24UVWvCnGZUsAHwBxVfT6H1xOAmaraINvzSseOx06PqVgRzjwTEhOd6fR0599o\nnX733ePyPtcmnTufi6J8waazvi7C7T+X3obnfqrP1GFTaVqn6V//+ZKTkwHyNR34H7cgy3s9bfkt\nf37zpqSkAJCQkMCIESPybPXkWfjdA7pX4fT6OwLvAVNVdWbQBZ1lBZgIbFfVOwOer62qGe7XdwLN\nVPWmbMv6ssc/fz6MGAGffnr889bjDy4tTcio/hZ3fHgHQ5oO4V+t/kWpEqW8jmWM7xSqxy8iHUUk\nBViPc5B3ErBDVfuEUvRdLYF/AG0CTt28AnhSRFaJyEqgNXBn0LX4yLJl0KSJ1yn8qUeDHqwYtILF\nvy7m4vEXs/b3tV5HMqZYCtbjnwNUA1qoai+32OdrF1xVP1PVOFVNDDh1c467voaq2khVu6nqlsK8\niWiydKlT+P3cJ/Qye51KdZh902wGNhlI65TWjPxiZL6HfPDzZw+W32t+zx+KYIW/MfAN8ImIzBWR\n/kCJoonlX8uWQdOmXqfwNxFhYJOBLL55MTO/m0nyxGR+2PGD17GMKTZC6fELznn8PYBrgZXAe6r6\nakSD+bDHv2MHJCTArl2cMDKn9fiDS0sTkpNP/H5naiYvfPkCj3/2OI+2eZRBTQbZfX6NCSIsY/Wo\n43NV/SdwCvAszlW4JpvlyyEp6cSibwouTuK48+I7+bTPp4xfMZ4r3ryCX//41etYxvhaSCVKRBqJ\nSBegK1AJmBXRVD6V1d8Hf/cJozH7eSedxxf9vqBlvZYkjUnijVVv5DrgWzTmzw/L7y2/5w9Fybxm\nEJEJQANgDZAZ8NLUSIXyq2XLjh+mwYRXqRKleLD1g1x19lX0mtaLaeumMfqq0ZxU4SSvoxnjK6H0\n+NcCFxR1w92PPf7TT4c5c+Ccc058zXr8weXW48/NwSMHeTj1YSatmsSoq0bR7dxuEUxnjH+Eazz+\nJcD54YlUfG3fDtu2wVlneZ0kNpQtWZYnL3+Sd//2LvfMu4fe03uz6+Aur2MZ4wuhFP4JwCIR+U5E\nVruPVZEO5jfLl0PjxscO7Pq5T+in7FkDvlUsVZGGoxry0Q8f+Sp/Tiy/t/yePxR59viB8ThX337N\n8T1+EyDwwK4pWhVLV+S/V/2Xrud2pf+M/jQ+2JhmlzSjQukKXkczJiqF0uNfpKoXF1GewO36qsd/\n3XVw7bXQo0fOr1uPP7j89vhzs+vgLm6bcxtfbPyCid0m0rJ+yzCkM8Y/wtXjXyEib4lIDxG51n1c\nE6aMxYbt8UeH+LLxTOo+iacvf5rr/ncdwz4aFrbhno0pLkIp/OWBQ0AHoLP7uDqSofxm2zbYudMZ\nhTmLn/uEfs4OTv7u53Vn5eCVrN+xnqavNmVFxgqvY4WsOHz+fub3/KHIs8evqn2KIIevLVt2/IFd\nEx1OrnAyU6+fypur36TjGx0Z2nwo97e6n5JxoRzaMqb4CnbP3eHAqNxGzhSR2sBgVX04IsF81ON/\n/HFnnJ6RI3Ofx3r8wYWrx5+bTX9sov+M/uw8sJOJ3SZy3knnRWxbxngplB5/sF2fpcDbIlIaWI5z\ni0QBauGM3HkI5967MW/ZMvjb37xOYYI5pfIpzP37XMYsG0OrCa14oNUD3NHiDuLE/kwzsSfXn3pV\n/UBV2wA3Ap8DR4A/gc+AG1S1rarOLpqY0S2nA7t+7hP6OTvknl9EGNx0MItvXsy0ddNoM7ENP+38\nqWjDhaC4fv5+4ff8oQhldM6Nqvq2qj7lPt5R1U2hrFxE6olIqoisEZGvReQ29/lqIvKRe1HYPBGJ\nL+wb8crvv8Pu3XDGGV4nMaE6o9oZpPVO4+qzr6b5uOaMXTY21wHfjCmO8nWz9XyvXKQWUEtV090b\ntS/DuY1jX2Cbqj4lIsOAqqp6X7ZlfdHjnzsXnnoKFiwIPp/1+IOLdI8/N2u2rqHX9F7UrFCTcV3G\nUadSnSLPYEw4hes8/gJT1c2qmu5+vRfnjl51gS44N2HH/de3I2zZHbf87YKTL+DL/l/SvG5zksYk\nMXn1ZNv7N8VesJutP+n+e304NiQiCUASsBioGXC20BagZji24YXcLtzyc5/Qz9kh//lLlSjF8OTh\nzLppFo9++ijXv3s92/Zvi0y4EMTa5x9t/J4/FMH2+K9yb7t4f2E34rZ5pgK3q+qewNfcfo5vd7GW\nLbMrdotZ/Kt6AAAaFklEQVSLpnWasnzQck6tcioNRzVk5rczvY5kTEQEO51zDrATqCgie7K9pqpa\nOZQNiEgpnKL/uqpOd5/eIiK1VHWzez3A1pyW7dOnDwkJCQDEx8eTmJhIcnIycOy3spfTO3fCnj3J\nnHHGia9nzZM1nU46pHmbN9Tp5OTkIt9+ejpAWlTkH9lhJPV21GPgSwPpdHknnu/4PCu+XFFkn4cX\nn7/l92/+tLQ0UlJSAP6ql3kJZZC2GaraJaS1nbis4PTwt6vqnQHPP+U+96SI3AfE+/Hg7pw5zkVb\n8+fnPa8d3A3Oq4O7wew9vJd75t3DnO/n8FqX12h3ejuvIxmTp3DdbL1ARd/VEmdI5zYissJ9dAKe\nAC4Xke+Atu607wQ7sJv1G9mP/Jwdwpe/YumKjO48mjGdx9B7em+Gzh7K/j/3h2Xdwdjn7y2/5w9F\nsIO7e0VkTy6PP0JZuap+pqpxqpqoqknuY66q7lDV9qp6tqp2UFVf3jrJRuSMDZ3O7MTqIavZeXAn\niaMTWbRxkdeRjCmUiJ7HXxh+aPXUqweffOLcazcv1uoJLhpbPTmZunYqt86+lb6JfRmePJwyJct4\nHcmY43h+Hn9xtmUL7NsHp53mdRJTlK49/1pWDl7JN9u+ofm45qzcvNLrSMbkmxX+Asoailly+b3q\n5z6hn7ND5PPXrFiTaTdM464Wd9H+9fY89uljHMk8Erb12+fvLb/nD4UV/gJautSu2I1lIkLvxN4s\nH7ictJ/TaPlaS77d9q3XsYwJifX4C6hrV/jHP0Ifjtl6/MH5pcefk0zNZPTS0TyU+hAPXvYgQy8a\nasM9G89Yjz+CbIwekyVO4ril2S0s6r+IKWun0H5Se37e9bPXsYzJlRX+Ati8GQ4cgGAXyfm5T+jn\n7OBd/rOqn8WnfT6l4xkdaTq2KeOXjy/QgG/2+XvL7/lDYYW/ALLG58ntwK6JXSXiSjDs0mEs6LWA\nl5e8zNWTryZjT4bXsYw5jvX4C2DECDh4EP7zn9CXsR5/cH7u8efm8NHD/N+n/8eYZWN4sdOL3HDh\nDV5HMjHAevwRYiNymlCULlGaR9o8wsweMxn+yXBufPdGtu/f7nUsY6zwF0Qop3L6uU/o5+wQffmb\n123O8oHLqV2xNg1HN2TWd7OCzh9t+fPL8kc/K/z5lJEBhw7Bqad6ncT4SblS5Xiu03O8ec2b/HPO\nP7l5xs38cSikIa+MCTvr8efTBx/ASy/Bhx/mbznr8QdXHHv8udlzaA93z7ubeT/MY0LXCbQ5rY3X\nkUwxYj3+CLAROU1hVSpTiVevfpVXrnqFntN6csfcOzjw5wGvY5kYYoU/n0K9cMvPfUI/Zwf/5L/y\nrCtZNWQVW/dtJWlMEos3LQb8kz83lj/6WeHPJ9vjN+FUrVw13rr2LR5t8yhd3u7Cvxf8mz+P/ul1\nLFPMRbTHLyKvAVcBW1W1gfvccOBm4Hd3tvtVdW4Oy0Zdj/+336BhQ/j99/xfvGU9/uBiqcefm817\nNzNg5gA27t7IpO6TaFizodeRjA9FQ49/AtAp23MKPBt4R64IZwibrNM47YpdEwm1KtZixo0zuP2i\n22k3qR1PfPZEWId7NiZLRAu/qi4Edubwki9LZ34u3PJzn9DP2cHf+UWE03afxtIBS5n3wzxaTWjF\n+u3rvY6VL37+/MH/+UPhVY9/qIisFJHxIhLvUYZ8sxE5TVE5Nf5UPu71MTddeBMXj7+Yl796mUzN\n9DqWKSYifh6/iCQAMwN6/CdzrL//KFBbVfvnsJz27t2bBHcIzPj4eBITE0lOTgaO/VYuqunU1DSu\nvRbS05OpXz//yz8vz5OY6l3+aJ9+/nkhMTE1avJE0/R327+j2xPdKFeyHNPum0b9KvWjKp9Nezud\nlpZGSkoKAAkJCYwYMSLPHn+RF/58vBZVB3d//RWSkpx77Rakx28Hd4Ozg7vBHck8wtOfP82zXz7L\n05c/Te9GvRE72GRyEA0Hd08gIrUDJrsDq4s6Q0FkncYZ6v+1rN/IfuTn7FA885eMK8n9re5nfq/5\nPPflc3R7pxub924u+nAhKI6ff3ET0cIvIpOBL4BzRGSjiPQDnhSRVSKyEmgN3BnJDOFiI3KaaNCw\nZkOWDFjChSddSOLoRN5d+67XkYwP2Vg9IbryShg4ELp1K9jy1uoJzlo9+fflpi/pPb03Tes05aUr\nXqJauWpeRzJRICpbPX6kanv8Jvq0OKUFKwatoEa5GjQc1ZA56+d4Hcn4hBX+EGza5Px7yimhL+Pn\nPqGfs0Ns5S9fqjwvXPECk7pPYsisIQycOZA9h/ZELlwIYunz9ysr/CGwe+yaaNf2tLasGrKKo5lH\naTS6EZ/+/KnXkUwUsx5/CB580Cn6jzxS8HVYjz846/GHz8xvZzLog0HceOGNPNb2McqVKud1JFOE\nrMcfJjYip/GTq8+5mtVDVvPrnl9p8moTlvy6xOtIJspY4c9DQQ/s+rlP6OfsYPkBqpevzjvXvcND\nrR+i8+TOPJT6EIePHi58uBDY5x/9rPDnYeNGiIuDunW9TmJM/t144Y2sGLSCZRnLaDGuBV9v/drr\nSCYKWI8/D9OmwbhxMGtW4dZjPf7grMcfWarK+BXjuX/+/dx7yb3cffHdlIgr4XUsEwHW4w+DrDH4\njfEzEeHmxjezZMASZq+fTeuU1ny/43uvYxmPWOHPQ0Ev3PJzn9DP2cHyB5MQn8CC3gu47vzraDGu\nBa8seYVw/2Vtn3/0s8IfRNaBXdvjN8VJnMRxR4s7+KzfZ0xcOZGOb3Rk4+6NXscyRch6/EH8/DO0\naAEZGYVfl/X4g7MevzeOZB7hyc+e5IXFLzCyw0h6Nuxpwz37nPX4C8nG5zHFXcm4kvzrsn8xr+c8\nnv7iaa6Zcg1b9231OpaJMCv8QRTmwK6f+4R+zg6WvyASayWydMBSzql+Do1GN+K9b94r8Lrs849+\nVviDsD1+E0vKlCzDE+2fYOr1Uxn28TB6TuvJzgM7vY5lIsB6/LlQhRo1YPVqqFOn8OuzHn9w1uOP\nLvsO7+O+j+9j+rfTGXf1ODqe2dHrSCZEnvf4ReQ1EdkiIqsDnqsmIh+JyHciMk9E4iOZoaB+/hnK\nlAlP0TfGbyqUrsBLV77EhK4TGPjBQIZ8MIS9h/d6HcuESaRbPROATtmeuw/4SFXPBua701GnsBdu\n+blP6OfsYPnDqf3p7Vk1eBUHjhyg0ehGLPx5YZ7LRFP+gvB7/lBEtPCr6kIge5OwCzDR/XoiUMCb\nGUaW9feNcVQpW4WUbik82+FZbnj3Bu6ddy8Hjxz0OpYphIj3+EUkAZipqg3c6Z2qWtX9WoAdWdPZ\nlvO0x9+hA9x2G3TuHJ71WY8/OOvx+8Pv+35nyKwhfLPtGyZ1m0STOrZ3FG1C6fGXLKowOVFVFZFc\n/7f36dOHhIQEAOLj40lMTCQ5ORk49udYJKZVYdGiNAYNAgjP+tNJh7TI5C0O0+npAGlRk8emc5/+\n39/+x4MTHqTdI+2488Y7eaDVA3y+8POoyRdr02lpaaSkpAD8VS/zpKoRfQAJwOqA6XVALffr2sC6\nXJZTr/z4o2qdOoVbR2pq6vHTpOY4XzTKnr1othm+77cX+cPJL/k37d6knd7opE3GNNE1W9f89bxf\n8ufG7/nd2hm0LntxHv8MoLf7dW9gugcZgrIROY3JW93KdZl902wGNhlI65TWPPPFMxzNPOp1LBOC\niPb4RWQy0BqoAWwBHgLeB6YA9YENwPWquiuHZTWS2YK57z4oXx4eeih867Qef3DW4/e3H3f+SJ/p\nfQBI6ZbC6VVP9zZQDPP8PH5V7aGqdVS1tKrWU9UJqrpDVdur6tmq2iGnou812+M3Jn9Or3o6qb1T\n6XZuNy4adxFjlo4J+3DPJnxsyIZsVGH58sKfypl18MWP/JwdLL9XSsSV4K6L7+Lps55m7PKxXPHm\nFfz6x69ex8o3v37++WGFP5uffnLaPDVrep3EGH9KiE9gUf9FXFLvEpLGJPHmqjdt7z/K2Fg92UyZ\nAm+9BdPDfMjZevzBWY+/eFr22zJ6Te/FuTXOZfRVozmpwkleRyr2PO/x+5FdsWtM+DSp04RlA5dx\nRtUzaDi6Ie+ve9/rSAYr/CcI14FdP/cJ/ZwdLL/XsucvW7IsT13+FP/72/+4e97d9J7em10Ho+6c\njr/4/fMPhRX+AOE6sGuMOdGl9S8lfXA6FUpVoOGohnz848deR4pZ1uMP8P330LYt/PJL+NdtPf7g\nrMcfW+b9MI/+M/rT9ZyuPNn+SSqUruB1pGLDevz5ZP19Y4pGhzM6sGrwKv449AeJYxL5YuMXXkeK\nKVb4A4Sz8Pu5T+jn7GD5vRZq/qrlqjKp+ySebP8k1065lmEfDePQkUORDRcCv3/+obDCH8Cu2DWm\n6F1z3jWsHLyS9TvW03RsU1ZkrPA6UrFnPX5XZiZUqwbr18NJETjV2Hr8wVmP36gqb6x6g7vn3c3Q\n5kO5v9X9lIzzdOR4X7Iefz788ANUqRKZom+MyZuI0LNRT5YPWs7CXxZyyfhL+Ob3b7yOVSxZ4XeF\n+8Cun/uEfs4Olt9rhc1/SuVT+PAfH9I3sS+tJrTiuUXPkamZ4QkXAr9//qGwwu+y/r4x0UNEGNJs\nCF/e/CVTv5lK24lt+WnnT17HKjasx+9q08YZh79jx8is33r8wVmP3+TmaOZRnl30LE998RSPt32c\nmxvfjHO7bpMT6/GHKDPTrtg1JlqViCvBvS3vJa13GqOXjabz5M78tuc3r2P5mmeFX0Q2iMgqEVkh\nIl95lQOcK3arVoUaNcK3Tj/3Cf2cHSy/1yKV/4KTL+DL/l/StHZTEkcnMnn15IgM9+z3zz8UXu7x\nK5Csqkmq2tzDHHbFrjE+UapEKUa0GcHsv8/m0U8f5YZ3b2Db/m1ex/Idr1s9UdGoi8SB3eTk5PCu\nsAj5OTtYfq8VRf6mdZqybOAy6lWuR8NRDZn57cywrdvvn38ovN7j/1hElorIAA9z2B6/MT5UrlQ5\nnun4DG9f9za3z72dfu/3Y/fB3V7H8gUvL4trqaoZInIS8JGIrFPVhYEz9OnTh4SEBADi4+NJTEz8\n67dxVh+usNOXXZbM8uVw4EAaaWmFX1/W9PPPP39c3nTSIYzrj+R0YI+zqLafng6Q5tv8fv/8/Zz/\nslMv4+XzXmbU0lE0/KkhE7pOIO7nON/kL+x0WloaKSkpAH/VyzypqucP4GHg7mzPaVFYt041ISH8\n601NTT1+mtQc54tG2bMXzTbD9/32In84Wf6Cm/3dbK37TF0dOnuo7ju8r0Dr8Pvn79bOoDXXk/P4\nRaQ8UEJV94hIBWAeMEJV5wXMo0WR7c03Ydo0ePfdyG7HzuMPzs7jN+Gy48AObptzG1/9+hWTuk+i\nxSktvI5UpKL5PP6awEIRSQcWAx8EFv2itGyZXbFrTHFSrVw13rjmDR5v9zjd3u7GA/MfiIrhnqOJ\nJ4VfVX9S1UT3caGq/seLHBC5A7uBfUK/8XN2sPxei5b8151/HSsHr2TN72toPq45KzevDGm5aMkf\nSV6fzumpzExYscLO6DGmuKpZsSbTb5jOXS3uov3r7Xl84eMcyTzidSzPxfRYPevWwZVXwo8/RnQz\ngPX482I9fhNpv+z+hX7v92Pv4b1M7DaRc2qc43WkiIjmHn9UsBE5jYkd9avUZ17PefRs2JOWr7Xk\nxcUvFulwz9Ekpgt/JC/c8nOf0M/ZwfJ7LZrzx0kctza/lUX9F/H212/TflJ7ft7183HzRHP+cInp\nwr90qfX3jYlFZ1U/i4V9F9LxjI40HduU8cvHR2TAt2gVsz3+o0chPh5++cUZmTPSrMcfnPX4jVdW\nb1lNz2k9qVelHq92fpXalWp7HalQrMcfxLffwsknF03RN8ZErwY1G/DVgK9IrJlI4phEpqyZ4nWk\niIvZwh/pC7f83Cf0c3aw/F7zY/7SJUrzaNtHmdljJve8eg89pvZg+/7tXseKmJgu/NbfN8YEal63\nOWOvHkutCrVoOLohs76b5XWkiIjZHv+ll8Ijj0DbthHbxHGsxx+c9fhNtEnbkEbf9/vS7rR2PNvx\nWSqXqex1pJBYjz8XR486wwA3bux1EmNMtEpOSGbl4JUIQqPRjUjbkOZ1pLCJycK/bh3UquWc1RMp\nfuxzZvFzdrD8XitO+SuXqczYLmN5+YqX+ft7f+eOuXdw4M8D3oULk5gs/DYipzEmP646+ypWDV7F\nln1bSBqTxFe/fuV1pEKJyR7/bbdBvXpw770RWX2OrMcfnPX4jV9MWTOFoXOGMqDxAB5q/RClS5T2\nOtJxrMcf4MABWLQIXnwRZsywPX5jTMFcf8H1pA9KJ31zOheNu4jVW1Z7HSnfPCv8ItJJRNaJyHoR\nGRbOdf/5p3PwduxYGDgQkpKgenX45z9h7VrnbJ7WrcO5xRP5uc/p5+xg+b0WC/lrV6rNzB4zGdp8\nKG0nteWJz57gaObRyIcLE08Kv4iUAF4GOgHnAz1E5LyCrCszE777Dt54A26/HS65xDloe9NN8Nln\n0LAhjB4NO3Y4vf3Ro6FXL4iL8DtPd+4e7kt+zg6W32uxkl9E6JfUj6UDljLvh3m0mtCK9dvXRzhd\neJT0aLvNge9VdQOAiLwNdAW+CbaQKmzaBEuWHHssXeoU+mbNnEe3bs6FWZU9PuV2165d3gYoBD9n\nB8vvtVjLf2r8qXzc62Ne/uplLh5/McOTh3NLs1uIk+jtpHtV+OsCGwOmNwEXZZ9p27bji/ySJc4e\nfvPmTpG/6y6nV3/yyUWW2xhjThAncdx20W10PKMjvaf3Zvq66bzW9TXqV6nvdbQceVX4Qzp944wz\nnL33Zs2gd294+WWoXx8k6PHq6LBhwwavIxSYn7OD5fdaLOc/p8Y5fNbvM576/CmavNqEd657h7an\nFdHwAPngyemcItICGK6qndzp+4FMVX0yYB47t88YYwogr9M5vSr8JYFvgXbAb8BXQA9VDdrjN8YY\nU3ietHpU9YiI/BP4ECgBjLeib4wxRSNqr9w1xhgTGVF3vlEkL+yKNBF5TUS2iIj/LuUDRKSeiKSK\nyBoR+VpEbvM6U36ISFkRWSwi6SKyVkT+43Wm/BKREiKyQkRmep2lIERkg4isct+Drwa0EZF4EXlX\nRL5xf35aeJ0pVCJyjvuZZz12B/v/G1V7/O6FXd8C7YFfgSX4qPcvIq2AvcAkVW3gdZ78EpFaQC1V\nTReRisAyoJtfPn8AESmvqvvd40ifAfeo6mde5wqViNwFNAEqqWoXr/Pkl4j8BDRR1R1eZ8kvEZkI\nfKKqr7k/PxVUdbfXufJLROJw6mdzVd2Y0zzRtsf/14VdqvonkHVhly+o6kJgp9c5CkpVN6tquvv1\nXpwL6up4myp/VHW/+2VpnONHvilAInIKcCUwDvDBScu58l12EakCtFLV18A5DunHou9qD/yQW9GH\n6Cv8OV3YVdejLDFNRBKAJGCxt0nyR0TiRCQd2AKkquparzPlw3PAvUCm10EKQYGPRWSpiAzwOkw+\nnAb8LiITRGS5iIwVkfJehyqgG4G3gs0QbYU/evpOMcxt87wL3O7u+fuGqmaqaiJwCnCZiCR7HCkk\nItIZ2KqqK/DhHnOAlqqaBFwB3Oq2P/2gJNAYeEVVGwP7gPu8jZR/IlIauBr4X7D5oq3w/wrUC5iu\nh7PXb4qIiJQCpgJvqOp0r/MUlPtn+izALwNwXwJ0cXvkk4G2IjLJ40z5pqoZ7r+/A9Nw2rd+sAnY\npKpL3Ol3cX4R+M0VwDL3889VtBX+pcBZIpLg/ua6AZjhcaaYISICjAfWqurzXufJLxGpISLx7tfl\ngMuBFd6mCo2qPqCq9VT1NJw/1Reoai+vc+WHiJQXkUru1xWADoAvznBT1c3ARhE5232qPbDGw0gF\n1QNnxyEor8bqyZHfL+wSkclAa6C6iGwEHlLVCR7Hyo+WwD+AVSKSVTDvV9W5HmbKj9rARPeshjjg\ndVWd73GmgvJj27MmMM3Zf6Ak8KaqzvM2Ur4MBd50dzp/APp6nCdf3F+27YE8j61E1emcxhhjIi/a\nWj3GGGMizAq/McbEGCv8xhgTY6zwG2NMjLHCb4wxMcYKvzHGxBgr/KbYEpEFItIh23N3iMgr7tdP\nu8NPP5nDsp1FZHgBt5siItcGbK9cHvM/66OhDUwxYIXfFGeTca6CDXQDxwawGgA0UNWc7vtwNzCq\ngNtVjl2AdTuQ12Bfo3AGZzOmSFjhN8XZVOAqd2z1rBFH66jqZyIyA6gILBeR6wMXEpF6QGlV3SIi\nVURkQ8BrFUTkF/eGKYki8qWIrBSR97KGizg2qwzFGdY6VUTmuyOHpojIavdmJXcAqOp6ICHb8sZE\njBV+U2y5NwP5CmeMe3D2/t9xX+sCHFDVJFWdkm3RlsByd77dQHrAKJ+dgbmqehSYBNyrqo1wxqR5\n+PjN60vAb0CyqrbDGea6jqo2UNWGQOBwHiuAi8Pwto3JkxV+U9wFtntuIIQBrID6QEbA9Dvusrjr\nese9cUcV9+Y7ABOBy/JY7w/A6SLyooh0BP4IeO03ICGEbMYUmhV+U9zNANqJSBJQ3h3vPhSBY+LP\nBDqJSFWcoXoX5DF/jlR1F9AQSAMG49xpK3B5GzjLFAkr/KZYc28kk4rTVgl6V6IAPwO1sq1jCfAi\nMFMdu4GdInKpO1tPnIKe3R6gMoCIVAdKqup7wIMcP957bWBDiPmMKZSoGpbZmAiZDLwHXJ/t+dz2\nsD8Hbsv23DvAFCA54LnewGj3Fn25DeP7KjBXRH4F7gQmuMNGw/F3eErKYZvGRIQNy2xMDkRkAfD3\nrDtKRXhbZwMj3QPOxkSctXqMydlInD58URgMPFVE2zLG9viNMSbW2B6/McbEGCv8xhgTY6zwG2NM\njLHCb4wxMcYKvzHGxBgr/MYYE2P+P+IM8uQZBq2gAAAAAElFTkSuQmCC\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fb060470dd0>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "Rl=150 # #load resistance\n", + "If=35e-3 # #current at which Q-point appears\n", + "print \"We draw the new DC load line in the plot\"\n", + "s=-1/Rl # #slope\n", + "print \"\\n slope is %f \\n\"%(s)\n", + "x=[ 0 ,0.5, 1, 1.1, 1.15 ] # #x-coordinate\n", + "y=[ 0 ,1 , 25 ,35 , 40 ] # #y-coordinate\n", + "import matplotlib.pyplot as plt\n", + "%matplotlib inline\n", + "plt.plot(x,y)\n", + "x1=[0, 1.1, 2.6, 6.4 ] # #x-coordinate\n", + "y1=[42 ,35 , 25 , 0] # #y-coordinate\n", + "plt.plot(x1,y1)\n", + "x2=[ 0 , 1 , 1.1] # #x-coordinate\n", + "y2=[35 ,35 , 35] # #y-coordinate\n", + "plt.plot(x2,y2)\n", + "x3=[0 , 1 , 2.6] # #x-coordinate\n", + "y3=[25 ,25 ,25] # #y-coordinate\n", + "plt.plot(x3,y3)\n", + "x4=[1.1 ,1.1, 1.1] #\n", + "y4=[ 0 ,10 , 35 ] #\n", + "plt.plot(x4,y4)\n", + "x5=[2.6, 2.6] #\n", + "y5=[0 , 25] #\n", + "plt.plot(x5,y5)\n", + "plt.xlabel('Vf (volts)') #\n", + "plt.ylabel('If (mA)') #\n", + "plt.title(\"Piece-wise linear characteristic\")\n", + "plt.grid()\n", + "print \"The slope passes through the Q-point so the equation of the load \"\n", + "print \"line is If=(-Vf/Rl)+(Vin/Rl)\"\n", + "print \"Now from the graph we can see that slope =(change in If)/(change in Vf)\"\n", + "print \"For If=35 mA Vf=1.1 V\"\n", + "print \"The coordinates are Q=(1.1V,35mA) C=(2.6V,25mA) B=(6.4V,0mA)\"\n", + "delta_If=10e-3 # #change in If\n", + "delta_Vf=delta_If/abs(s) # #change in Vf and we take only the magnitudeof the slope \n", + "print \"\\n change in Vf is %1.1f V \\n\"%(delta_Vf)\n", + "print \"This is point C corresponding to If=35-10=35mA, as If is change by 10mA\" \n", + "print \"and Vf=2.6V \"\n", + "print \"We join the Q-point and point C as shown in the plot to get the DC load\"\n", + "print \" line we extend the line to intersect point B \"\n", + "print \"the voltage at point B is the new supply voltage required\"\n", + "print \"\\n From the plot voltage at point B = 6.7 V\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2_8 PG-2.33" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "therefore the P-N junction diode current is 10.483844 A\n" + ] + } + ], + "source": [ + "from math import exp\n", + "V=0.22 # #forward bias voltage\n", + "T=25+273 # #room temperature in degree kelvin\n", + "I0=2e-3 # #reverse saturation current\n", + "n=1 # #for germanium diode\n", + "k=8.62e-5 #Boltzmann's constant\n", + "Vt=k*T #\n", + "I=I0*(exp(V/(n*Vt))) # # diode current\n", + "print \"therefore the P-N junction diode current is %f A\"%(I)\n", + "# in the book they have taken the approximate value \n", + "#hence the answer is slighty different. in the book \n", + "#Vt=0.02568(approx) whereas Vt=0.0256876(exact value)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2_9 PG-2.36" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "At temperature T=27 degree C\n", + "For silicon diode Vf=0.7 V is constant \n", + " \n", + " Therefore maximum forward current at T=27 degree C is 0.7143 A \n", + "\n", + "At temperature T=77 degree C\n", + "\n", + " Therefore maximum forward current at T=77 degree C is 0.4286 A\n" + ] + } + ], + "source": [ + "P1=500e-3 # #rated power rating of the diode \n", + "T1=27 # #temperature in Degree Celsius\n", + "Df=4e-3 # #Derating factor \n", + "print \"At temperature T=27 degree C\"\n", + "print \"For silicon diode Vf=0.7 V is constant \"\n", + "Vf=0.7 #\n", + "If1=P1/Vf #\n", + "print \" \\n Therefore maximum forward current at T=27 degree C is %.4f A \\n\"%(If1)\n", + "print \"At temperature T=77 degree C\"\n", + "T2=77 # #temperature in degree celsius\n", + "P2=P1-(T2-T1)*Df # #rated power rating of the diode at T=77 degree C\n", + "If2=P2/Vf #\n", + "print \"\\n Therefore maximum forward current at T=77 degree C is %.4f A\"%(If2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2_10 PG-2.37" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "at T2=25 degree C\n", + "\n", + " therefore forward voltage drop at 50 degree C is 0.6471 V \n", + "\n", + "at T3=77 degree C\n", + "\n", + " therefore forward voltage drop at 77 degree C is 0.585 V\n" + ] + } + ], + "source": [ + "T1=27 # #initial temperature\n", + "Vfl=0.7 # #forward voltage\n", + "Vtc=-2.3e-3 # #voltage temperature coefficient\n", + "print \"at T2=25 degree C\"\n", + "T2=50 #\n", + "Vf2=Vfl+((T2-T1)*Vtc)\n", + "print \"\\n therefore forward voltage drop at 50 degree C is %.4f V \\n\"%(Vf2)\n", + "print \"at T3=77 degree C\"\n", + "T3=77 #\n", + "Vf2=Vfl+((T3-T1)*Vtc)\n", + "print \"\\n therefore forward voltage drop at 77 degree C is %.3f V\"%(Vf2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2_11 PG-2.38" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Therefore at a temperature of 25 Degree C \n", + "\n", + " dynamic resistance is 0.867 ohm \n", + "\n", + "Therefore at a temperature of 75 Degree C \n", + "\n", + " dynamic resistance is 0.867 ohm\n" + ] + } + ], + "source": [ + "If=30e-3 # #forward current\n", + "T1=25+273 # #temperature in degree kelvin\n", + "print \"Therefore at a temperature of 25 Degree C \"\n", + "Rf=26e-3/If #\n", + "print \"\\n dynamic resistance is %.3f ohm \\n\"%(Rf)\n", + "print \"Therefore at a temperature of 75 Degree C \"\n", + "T2=75+273 #Temperature in degree kelvin\n", + "Rf=Rf*(T2/T1) #\n", + "print \"\\n dynamic resistance is %.3f ohm\"%(Rf)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2_12 PG-2.43" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "the maximum recovery time is 0.0 micro sec\n" + ] + } + ], + "source": [ + "Tf_min=1 # #fall time in micro second\n", + "Trr_max=Tf_min/10\n", + "print \"the maximum recovery time is %.1f micro sec\"%(Trr_max)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2_13 PG-2.48" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Therefore the derated power rating at a temperature T=100 Degree celsius\n", + "\n", + " is 0.205 W\n" + ] + } + ], + "source": [ + "PD_max=320e-3 # #maximum power rating\n", + "T1=50 # #temperature in degree celsius at which maximum power rating occurs\n", + "DF=2.3e-3 # #Derating factor\n", + "print \"Therefore the derated power rating at a temperature T=100 Degree celsius\"\n", + "T2=100 #\n", + "PD=PD_max-DF*(T2-T1) #\n", + "print \"\\n is %.3f W\"%(PD)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2_14 PG-2.52" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "zener resistance Zz=20 ohm\n" + ] + } + ], + "source": [ + "Vzd=50e-3 # #change in Vz\n", + "Izd=2.5e-3 #change in Iz\n", + "Zz=Vzd/Izd # #zener resistance\n", + "print \"zener resistance Zz=%.0f ohm\"%(Zz)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2_15 PG-2.52" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Therefore total terminal voltage across the diode Vz''= 5.2V\n" + ] + } + ], + "source": [ + "rz=4 # #zener diode resistance\n", + "Vz=5.1 #\n", + "Iz=25e-3 #\n", + "x=Iz*rz #\n", + "Vzz=Vz+x # #total terminal voltage across the diode \n", + "print \"Therefore total terminal voltage across the diode Vz''= %.1fV\"%(Vzz)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2_16 PG-2.52" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " At T=40 degree celsius maximum zener current Izm=73.53 mA\n", + "\n", + "\n", + " At T=100 degree celsius maximum zener current Izm=50.588 mA\n", + "\n", + "\n" + ] + } + ], + "source": [ + "Vz=6.8 #nominal voltage\n", + "Pd_max=500 # #zener diode power loss in mW at 40 degree celsius\n", + "D=2.6 # #Derating factor in mW/degree celsius\n", + "T1=40 # #Temperature in degree celsius\n", + "Izm=Pd_max/Vz #\n", + "print \" At T=40 degree celsius maximum zener current Izm=%.2f mA\\n\\n\"%(Izm)\n", + "T2=100 # #Temperature in degree celsius\n", + "delta_T=T2-T1 # #change in temperature\n", + "Pd_derated=Pd_max-D*delta_T\n", + "Izm=Pd_derated/Vz #\n", + "print \" At T=100 degree celsius maximum zener current Izm=%.3f mA\\n\\n\"%(Izm)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2_17 PG-2.52" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Refer to the figure-2.51 shown\n", + "\n", + " We apply KVL across the circuit \n", + "\n", + " Therefore -Iz*R1-Vz+Vin = 0 \n", + "\n", + " \n", + " zener diode current Iz:14.626866 mA\n", + " power dissipation :76.059701 mW \n" + ] + } + ], + "source": [ + "print \"Refer to the figure-2.51 shown\\n\"\n", + "print \" We apply KVL across the circuit \\n\"\n", + "print \" Therefore -Iz*R1-Vz+Vin = 0 \\n\"\n", + "Vin=15 #\n", + "Vz=5.2 #\n", + "R1=670 #\n", + "Iz=(Vin-Vz)/R1 # #zener diode current\n", + "Iz=Iz*1e3 # #in mA\n", + "Pd=Vz*Iz # #power dissipation\n", + "print \" \\n zener diode current Iz:%f mA\\n power dissipation :%f mW \"%(Iz,Pd)" + ] + } + ], + "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 +} diff --git a/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter3.ipynb b/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter3.ipynb new file mode 100644 index 00000000..7ce08988 --- /dev/null +++ b/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter3.ipynb @@ -0,0 +1,1810 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 3 Diode Applications" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_1 pg-3.14" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Refer to the circuit diagram shown in figure-3.7\n", + "\n", + " Therefore peak value of current is 10.75 mA \n", + "\n", + "\n", + " Average current is 3.422 mA \n", + "\n", + "\n", + " rms current is 5.375 mA \n", + "\n", + "\n", + " DC output voltage is 34.22 V \n", + "\n", + "\n", + " Efficiency is 40.19 % \n", + "\n", + "Ripple factor for half wave rectifier is 1.21\n" + ] + } + ], + "source": [ + "from math import sqrt, pi\n", + "from __future__ import division\n", + "print \"Refer to the circuit diagram shown in figure-3.7\"\n", + "Rf=75 # diode forward resistance\n", + "Rl=10e3 # load resistance\n", + "Rs=10 # transformer secondary resistance\n", + "Ep=230 # rms value of primary voltage\n", + "N2byN1=1/3 # turns ratio\n", + "Es=Ep*N2byN1 # rms value of secondary voltage\n", + "Esm=sqrt(2)*Es # peak value of secondary voltage\n", + "Im=Esm/(Rs+Rf+Rl)#\n", + "Im=Im*1e3#\n", + "print \"\\n Therefore peak value of current is %.2f mA \\n\"%(Im)\n", + "Idc=Im/pi#\n", + "print \"\\n Average current is %.3f mA \\n\"%(Idc)\n", + "Irms=Im/2 # for half wave rectifier\n", + "print \"\\n rms current is %.3f mA \\n\"%(Irms)\n", + "Idc1=Idc*1e-3#\n", + "Edc=Idc1*Rl#\n", + "print \"\\n DC output voltage is %.2f V \\n\"%(Edc)\n", + "Pdc=Edc*Idc1 # Dc output power\n", + "Irms1=Irms*1e-3#\n", + "Pac=Irms1**2*(Rs+Rf+Rl) # AC output power\n", + "n=Pdc/Pac*100 # efficiency\n", + "print \"\\n Efficiency is %.2f %% \\n\"%(n)\n", + "print \"Ripple factor for half wave rectifier is 1.21\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_2 PG-3.15" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Refer to the figure-3.8 shown\n", + "For an ideal diode\n", + "\n", + " DC output voltage is -4.77 V\n", + " \n", + "-ve sign indicates that voltage is negative wrt ground\n", + "For a silicon diode Vin=0.7V \n", + "\n", + " DC output voltage is -4.55 V\n", + " \n", + "-ve sign indicates that voltage is negative wrt ground\n" + ] + } + ], + "source": [ + "print \"Refer to the figure-3.8 shown\"\n", + "Vin=0 # cut-in voltage for an ideal diode is zero\n", + "Rf=0 # forward resistance for an ideaal diode is zero\n", + "print \"For an ideal diode\"\n", + "Vm=15#\n", + "Vdc=-Vm/pi#\n", + "print \"\\n DC output voltage is %.2f V\\n \"%(Vdc)\n", + "print \"-ve sign indicates that voltage is negative wrt ground\"\n", + "print \"For a silicon diode Vin=0.7V \"\n", + "Vin=0.7#\n", + "Vdc=-(Vm-Vin)/pi#\n", + "print \"\\n DC output voltage is %.2f V\\n \"%(Vdc)\n", + "print \"-ve sign indicates that voltage is negative wrt ground\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_3 PG-3.16" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "For an ideal diode Vin= 0V\n", + "\n", + " Dc voltage is 3.18 V and load current is 3.18 mA \n", + "\n", + "For a silicon diode Vin=0.7 V\n", + "\n", + " Dc voltage is 2.96 V and load current is 2.96 mA \n", + "\n" + ] + } + ], + "source": [ + "Rl=1 # load resistance in kohm\n", + "Vm=10#\n", + "print \"For an ideal diode Vin= 0V\"\n", + "Vin=0 # for ideal diode\n", + "Rf=0 # for ideal diode\n", + "Edc=Vm/pi#\n", + "Idc=Edc/Rl#\n", + "print \"\\n Dc voltage is %.2f V and load current is %.2f mA \\n\"%(Edc,Idc)\n", + "print \"For a silicon diode Vin=0.7 V\"\n", + "Vin=0.7#\n", + "Edc=(Vm-Vin)/pi#\n", + "Idc=Edc/Rl\n", + "print \"\\n Dc voltage is %.2f V and load current is %.2f mA \\n\"%(Edc,Idc)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_4 Pg3.16" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " average output voltage is 34.512 V\n" + ] + } + ], + "source": [ + "## Esm=300 # peak rms voltage\n", + "Edc=Esm/pi # average output voltage\n", + "print \"\\n average output voltage is %.3f V\"%(Edc)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_5 PG-3.28" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Power delivered to the load is 0.715 W \n", + "\n", + "\n", + " Vnl=27.009489 \n", + "\n", + "\n", + " Vfl=26.74 \n", + "\n", + "\n", + " percentage regulation is 1.000000 % \n", + "\n", + "Efficiency of rectification =(DC output)/(AC output)\n", + "\n", + " Efficiency of rectification is 80.3 % \n", + "\n", + "\n", + " TUF of secondary is 0.803\n" + ] + } + ], + "source": [ + "Es=30 # rms voltage\n", + "Rf=2#\n", + "Rs=8#\n", + "Rl=1e3 # in kohm\n", + "Esm=sqrt(2)*Es # peak value of voltage\n", + "Im=Esm/(Rf+Rl+Rs) # peak value of current\n", + "Idc=2*Im/pi # average current for full wave rectifier\n", + "P=Idc**2*Rl#\n", + "print \" Power delivered to the load is %.3f W \\n\"%(P)\n", + "Vdc_noload=2*Esm/pi#\n", + "print \"\\n Vnl=%f \\n\"%(Vdc_noload)\n", + "Vdc_fullload=Idc*Rl#\n", + "print \"\\n Vfl=%.2f \\n\"%(Vdc_fullload)\n", + "reg=(Vdc_noload-Vdc_fullload)/Vdc_fullload*100#\n", + "print \"\\n percentage regulation is %f %% \\n\"%(reg)\n", + "print \"Efficiency of rectification =(DC output)/(AC output)\"\n", + "x=(1+(Rf+Rs)/Rl)**(-1)#\n", + "n=8/pi**2*x*100#\n", + "print \"\\n Efficiency of rectification is %.1f %% \\n\"%(n)\n", + "Irms=Im/sqrt(2)#\n", + "AC_rating=Es*Irms#\n", + "TUF=P/AC_rating#\n", + "print \"\\n TUF of secondary is %.3f\"%(TUF)\n", + "#The exact answer for percentage regulation is 1% not .97% as shown in the book ....\n", + "#because in the book it has rounded off the value 27.009 to 27 only" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_6 PG-3.29" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Refer to the figure-3.16 shown\n", + "We know Idc=Im/pi for each diode\n", + "\n", + " maximum peak to peak voltage is 628.32 V\n" + ] + } + ], + "source": [ + "print \"Refer to the figure-3.16 shown\"\n", + "Rl=100#\n", + "Idc=1 # maximum value of DC current in each diode\n", + "print \"We know Idc=Im/pi for each diode\"\n", + "Vm=pi*Rl*Idc#\n", + "Vp=2*Vm#\n", + "print \"\\n maximum peak to peak voltage is %.2f V\"%Vp" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_7 PG-3.30" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Therefore o load DC output voltage is 9.0032 V \n", + "\n", + "We know that Idc=2Im/pi and Im=Esm/(Rf+rs+rl)\n", + "\n", + " DC output voltage at 100mA is 8.4032 V \n", + " \n", + "\n", + " percentage regulation is 7.14 %\n" + ] + } + ], + "source": [ + "Rf=1#\n", + "Es=10#\n", + "Rs=5#\n", + "Esm=sqrt(2)*Es#\n", + "Edc_nl=2*Esm/pi#\n", + "print \"Therefore o load DC output voltage is %.4f V \\n\"%(Edc_nl)\n", + "Idc=100e-3#\n", + "print \"We know that Idc=2Im/pi and Im=Esm/(Rf+rs+rl)\"\n", + "Im=Idc*pi/2#\n", + "Rl=Esm/Im-Rf-Rs # load resistance\n", + "Edc_ol=Idc*Rl # DC output voltage at 100mA\n", + "print \"\\n DC output voltage at 100mA is %.4f V \\n \"%(Edc_ol)\n", + "reg=(Edc_nl-Edc_ol)/Edc_ol*100#\n", + "print \"\\n percentage regulation is %.2f %%\"%(reg)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_8 PG-3.31" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " We know that efficiency=Pdc/Pac \n", + "for Half wave rectifier \n", + "\n", + " AC input power is 1231.527 W \n", + "\n", + "for Full wave rectifier \n", + "\n", + " AC input power is 615.764 W \n", + "\n" + ] + } + ], + "source": [ + "Pdc=500 # for half wave rectifier\n", + "n=40.6 # maximum efficiency for half wave rectifier\n", + "print \" We know that efficiency=Pdc/Pac \"\n", + "print \"for Half wave rectifier \"\n", + "Pac=Pdc/n*100#\n", + "print \"\\n AC input power is %.3f W \\n\"%(Pac)\n", + "print \"for Full wave rectifier \"\n", + "n=81.2 # maximum efficiency for full wave rectifier \n", + "Pac=Pdc/n*100#\n", + "print \"\\n AC input power is %.3f W \\n\"%(Pac)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_9 PG-3.32" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Average voltage is 24.55 V \n", + "\n", + "\n", + " Efficiency is 73.69 %\n" + ] + } + ], + "source": [ + "Rf=10#\n", + "Rl=100#\n", + "Es=30 # transformer rms voltage\n", + "Esm=sqrt(2)*Es # peak value of the voltage\n", + "Im=Esm/(Rf+Rl)#\n", + "Idc=2*Im/pi#\n", + "Edc=Idc*Rl#\n", + "print \"Average voltage is %.2f V \\n\"%(Edc)\n", + "Pdc=Idc**2*Rl#\n", + "Irms=Im/sqrt(2) # rms value of the current\n", + "Pac=Irms**2*(Rf+Rl)#\n", + "n=Pdc/Pac*100#\n", + "print \"\\n Efficiency is %.2f %%\"%n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_10 PG-3.32" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "rms value of input current is 0.1000 A \n", + "\n", + "\n", + " load value of current is 0.0900 A\n" + ] + } + ], + "source": [ + "Es=100 # rms value of current\n", + "Rf=50 # forward resistance\n", + "Rl=950#\n", + "Rs=0 # resistance of the transformer secondary which is assumed to be 0 ohm\n", + "Esm=sqrt(2)*Es # peak value of the input voltage\n", + "Im=Esm/(Rs+Rl+Rf)#\n", + "Irms=Im/sqrt(2)#\n", + "print \"rms value of input current is %.4f A \\n\"%(Irms)\n", + "Idc=2*Im/pi#\n", + "print \"\\n load value of current is %.4f A\"%(Idc)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_11 PG-3.38" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "We know that Im=Esm/(2Rf+Rs+Rl) for fullwave rectifier\n", + "\n", + " Therefore load resistance is 2.5 ohm \n", + "\n", + "\n", + " Therefore efficiency is 75.05 % \n", + "\n" + ] + } + ], + "source": [ + "Rf=0.1#\n", + "Idc=10#\n", + "Rs=0#\n", + "Es=30 # rms value of input voltage\n", + "Esm=sqrt(2)*Es # peak value of the input voltage\n", + "Im=Idc*pi/2 # DC output current\n", + "print \"We know that Im=Esm/(2Rf+Rs+Rl) for fullwave rectifier\"\n", + "Rl=Esm/Im-2*Rf-0#\n", + "print \"\\n Therefore load resistance is %.1f ohm \\n\"%(Rl)\n", + "Pdc=Idc**2*Rl # Dc output power rating\n", + "Irms=Im/sqrt(2) # rms value of input current\n", + "Pac=Irms**2*(2*Rf+Rs+Rl) # Ac input power\n", + "n=Pdc/Pac*100 # efficiency\n", + "print \"\\n Therefore efficiency is %.2f %% \\n\"%(n)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_12 PG-3.39" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Therefore DC load current is 0.041415 A \n", + "\n", + "\n", + " DC load voltage is 207.073 V \n", + "\n", + "\n", + " Therefore ripple voltage is 99.8 V \n", + "\n", + " Peak value of bridge rectifier=PIV rating of each diode\n", + "\n", + " Therefore PIV rating of each diode is 325.27 V\n" + ] + } + ], + "source": [ + "Rl=5e3#\n", + "N1toN2=2 # transformer turns ratio\n", + "Ep=460 # rms value of primary voltage\n", + "Es=Ep/N1toN2#\n", + "Esm=sqrt(2)*Es # peak value of the secondary voltage\n", + "Im=Esm/Rl # We neglect forward diode resistance\n", + "Idc=2*Im/pi#\n", + "print \"\\n Therefore DC load current is %f A \\n\"%(Idc)\n", + "Edc=Idc*Rl#\n", + "print \"\\n DC load voltage is %.3f V \\n\"%(Edc)\n", + "Rf=.482 # ripple factor for full bridge rectifier\n", + "Vrip=Rf*Edc # ripple voltage\n", + "print \"\\n Therefore ripple voltage is %.1f V \\n\"%(Vrip)\n", + "print \" Peak value of bridge rectifier=PIV rating of each diode\"\n", + "PIV=Esm#\n", + "print \"\\n Therefore PIV rating of each diode is %.2f V\"%(PIV)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_13 PG-3.40" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Therefore load voltage is 13.8 V\n", + "\n", + "\n", + " ripple voltage is 6.6539 V\n" + ] + } + ], + "source": [ + "Ep=230# #rms value of primary voltage\n", + "N2toN1=1/15 # turns ratio\n", + "Rf=0 # diode is ideal\n", + "Rs=0 # transformer is ideal\n", + "Rl=50 # load resistance\n", + "Es=Ep*N2toN1 # rms vaue of primary voltage\n", + "Esm=sqrt(2)*Es # peak value of input voltage\n", + "Im=Esm/(Rs+2*Rf+Rl)#\n", + "Idc=2*Im/pi#\n", + "Edc=Idc*Rl # load voltage\n", + "print \"\\n Therefore load voltage is %.1f V\\n\"%(Edc)\n", + "Rf=.482 # ripple factor for full wave rectifier\n", + "Vrip=Rf*Edc # ripple voltage\n", + "print \"\\n ripple voltage is %.4f V\"%(Vrip)\n", + "#in the book the ripple voltage has been rounded off to \n", + "#6.6516V but the actual ans is 6.6539V" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_14 PG-3.40" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Average load current is 4.502 A \n", + "\n", + "\n", + " Therefore efficiency is 81.06 % \n", + "\n" + ] + } + ], + "source": [ + "Rf=0 # diode forward resistance\n", + "Es=240 # rms value of supply voltage\n", + "Rl=48 # load resistance\n", + "Im=sqrt(2)*Es/(Rl+Rf)#\n", + "Idc=2*Im/pi#\n", + "print \" Average load current is %.3f A \\n\"%(Idc)\n", + "Pdc=Idc**2*Rl#\n", + "Irms=Im/sqrt(2) # rms value of input current\n", + "Pac=Irms**2*Rl#\n", + "n=Pdc/Pac*100 # efficiency\n", + "print \"\\n Therefore efficiency is %.2f %% \\n\"%(n)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_15 PG-3.41" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " DC output voltage is 60.478878 V \n", + "\n", + "\n", + " Therefore ripple factor is 0.4834 \n", + "\n", + "\n", + " Therefore efficiency is 80.97 % \n", + "\n", + "Peak value of bridge rectifier=PIV rating of each diode\n", + "\n", + " Therefore PIV rating of each diode is 100.00 V\n" + ] + } + ], + "source": [ + "Esm=100 # peak value of supply voltage\n", + "Rf=25 # diode forward voltage\n", + "Rl=950 # load resistance\n", + "Rt=(2*Rf)+Rl # total resistance\n", + "Im=Esm/Rt#\n", + "Idc=2*Im/pi#\n", + "Edc=Idc*Rl#\n", + "print \"\\n DC output voltage is %f V \\n\"%(Edc)\n", + "Irms=Im/sqrt(2) # rms value of input current\n", + "x=(Irms/Idc)**2-1#\n", + "Rf=sqrt(x) # ripple factor#\n", + "print \"\\n Therefore ripple factor is %.4f \\n\"%(Rf)\n", + "Pdc=Idc**2*Rl#\n", + "Pac=Irms**2*(2*Rf+Rl) # Ac input power\n", + "n=Pdc/Pac*100 # efficiency\n", + "print \"\\n Therefore efficiency is %.2f %% \\n\"%(n)\n", + "print \"Peak value of bridge rectifier=PIV rating of each diode\"\n", + "PIV=Esm#\n", + "print \"\\n Therefore PIV rating of each diode is %.2f V\"%(PIV)\n", + "#In the book the answer for Edc=57.5985V which is wrong because they have taken \n", + "#Rf=50 ohm instead of 25 ohm as given in the question similarly \n", + "#the efficiency=73.3417% in the book is wrong \n", + "#the correct answer for efficiency is 80.97%" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_16 PG-42" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Average DC voltage is 207 V \n", + "\n", + "\n", + " Therefore DC load current is 2.07 A \n", + "\n", + "\n", + " frequency of output waveform is 100 Hz\n" + ] + } + ], + "source": [ + "Rl=100 # load resistance\n", + "Es=230 # rms value of input voltage\n", + "Rf=0 # ideal diode resistance\n", + "Rs=0 # neglecting transformer resistance\n", + "f=50 # frequency of the supply\n", + "Esm=sqrt(2)*Es # peak value of the input voltage\n", + "Edc=2*Esm/pi # as Rf=0 ohm \n", + "print \"\\n Average DC voltage is %.0f V \\n\"%(Edc)\n", + "Im=Esm/Rl#\n", + "Idc=2*Im/pi#\n", + "print \"\\n Therefore DC load current is %.2f A \\n\"%(Idc)\n", + "f=2*f # frequency of output waveform\n", + "print \"\\n frequency of output waveform is %.0f Hz\"%(f)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_17 PG-3.56" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " rms value of ripple voltage is 0.6 V \n", + " \n", + "\n", + " ripple factor is 1.44 % \n", + "\n" + ] + } + ], + "source": [ + "Edc=12 # output DC voltage\n", + "f=50 # frequency\n", + "Idc=50e-3#\n", + "C=100e-6 # filter capacitor\n", + "Rl=2e3 # load resistance\n", + "Vr=Edc/(2*f*C*Rl) # rms value of ripple voltage\n", + "print \"\\n rms value of ripple voltage is %.1f V \\n \"%(Vr)\n", + "Rf=(4*sqrt(3)*f*C*Rl)**(-1)*100 # ripple factor\n", + "print \"\\n ripple factor is %.2f %% \\n\"%(Rf)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_18 PG-3.56" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " DC output voltage is 167.2056 V \n", + "\n", + "\n", + " rms value of ripple voltage is 1.4434 V \n", + " \n", + "\n", + " ripple factor is 0.008632 \n", + "\n" + ] + } + ], + "source": [ + "Es=120 # rms value of input voltage\n", + "f=50 # frequency\n", + "Idc=50e-3#\n", + "C=100e-6 # filter capacitor\n", + "Esm=sqrt(2)*Es#\n", + "Edc=Esm-Idc/(4*f*C)#\n", + "print \"\\n DC output voltage is %.4f V \\n\"%(Edc)\n", + "Vr=Idc/(4*sqrt(3)*f*C) # rms value of ripple voltage\n", + "print \"\\n rms value of ripple voltage is %.4f V \\n \"%(Vr)\n", + "Rf=Vr/Edc#\n", + "print \"\\n ripple factor is %f \\n\"%(Rf)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_19 PG-3.56" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Therefore load voltage is 20.7 V \n", + "\n", + "\n", + " Ripple factor is 0.48\n", + "\n", + " ripple voltage is 9.9395 V \n", + "\n", + "If the capacitor filter is used then\n", + "\n", + " new DC load voltage is 28.12 V \n", + "\n", + "\n", + " Ripple factor is 0.1228\n", + "\n", + " rms value of ripple voltage is 3.4544 V \n", + " \n" + ] + } + ], + "source": [ + "Ep=230 # rms value of primary voltage\n", + "N1toN2=10 # turns ratio\n", + "Rl=50 # load resistance\n", + "f=50 # frequency of the supply in Hz\n", + "Es=Ep/N1toN2 # rms vaue of secondary voltage or the input voltage\n", + "Esm=sqrt(2)*Es # peak value of input voltage\n", + "Im=Esm/(Rl)#\n", + "Idc=2*Im/pi#\n", + "Edc=Idc*Rl # load voltage\n", + "print \"\\n Therefore load voltage is %.1f V \\n\"%(Edc)\n", + "Rf=.48 # ripple factor for full wave rectifier without filter\n", + "Vrip=Rf*Edc # ripple voltage\n", + "print \"\\n Ripple factor is 0.48\"\n", + "print \"\\n ripple voltage is %.4f V \\n\"%(Vrip)\n", + "print \"If the capacitor filter is used then\"\n", + "C=470e-6 # filter capacitor\n", + "Edc=Esm-Idc/(4*f*C)#\n", + "print \"\\n new DC load voltage is %.2f V \\n\"%(Edc)\n", + "Rf=((4*sqrt(3)*f*C*Rl))**(-1) # new ripple factor\n", + "Vrip=Rf*Edc # new ripple voltage\n", + "print \"\\n Ripple factor is %.4f\"%(Rf)\n", + "print \"\\n rms value of ripple voltage is %.4f V \\n \"%(Vrip)\n", + "# in the book the new ripple factor is 3.256e-3 which is wrong \n", + "#the actual answer is 0.1228 hence the new ripple voltage is 3.4544V \n", + "# not 0.09156V as shown in the book " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_20 PG-3.57" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "the %ripple factor=Rf=((4*sqrt(3)*f*C*Rl))**(-1)*100 \n", + "\n", + " the filter capacitor is 14.434 mF\n" + ] + } + ], + "source": [ + "Rf=.01 # ripple factor in percentage\n", + "Rl=2 # load resistance in kohm\n", + "f=50 # frequency\n", + "print \"the %ripple factor=Rf=((4*sqrt(3)*f*C*Rl))**(-1)*100 \"\n", + "C=((4*sqrt(3)*f*Rf*Rl))**(-1)*100 # filter capacitor\n", + "print \"\\n the filter capacitor is %.3f mF\"%(C)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_21 PG-3.58" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " ripple factor is 3.40 % \n", + "\n" + ] + } + ], + "source": [ + "Idc=100e-3 # average current\n", + "C=500e-6 # filter capacitor\n", + "Esm=18 # peak voltage\n", + "f=50 # frequency of the supply in Hz\n", + "Edc=Esm-Idc/(4*f*C)#\n", + "Rl=Edc/Idc # load resistance\n", + "Rf=(4*sqrt(3)*f*C*Rl)**(-1)*100 # ripple factor\n", + "print \"\\n ripple factor is %.2f %% \\n\"%(Rf)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_22 PG-3.58" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "conduction period of diode,T1=1ms\n", + "Edc=Esm-Idc/(2*f*C) and Idc=Edc/Rl\n", + "\n", + " hence the diode should be rated for a minimum surge\n", + " current of 6.66 A \n", + "\n" + ] + } + ], + "source": [ + "f=50 # frequency\n", + "C=1000e-6 # filter capacitor\n", + "Rl=500 # load resistance\n", + "Vrms=120 # rms value of voltage\n", + "T1=1e-3 # conduction period of diode,T1=1ms\n", + "print \"conduction period of diode,T1=1ms\"\n", + "Esm=sqrt(2)*Vrms # peak value of input voltage\n", + "print \"Edc=Esm-Idc/(2*f*C) and Idc=Edc/Rl\"\n", + "Edc=Esm/(1+(2*Rl*f*C)**(-1)) # output dc voltage\n", + "Idc=Edc/Rl#\n", + "T=1/f#\n", + "#Idc*T=Ip*T1\n", + "#Ip is the surge current\n", + "Ip=Idc*T/T1#\n", + "print \"\\n hence the diode should be rated for a minimum surge\\n current of %.2f A \\n\"%(Ip)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_23 PG-3.59" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " rms value of ripple voltage is 1 V \n", + " \n", + "\n", + " peak to peak voltage is 2.8284 V \n" + ] + } + ], + "source": [ + "Rf=0.1 # riplle facto\n", + "Edc=10#\n", + "Vrip=Rf*Edc # rms value of voltage\n", + "print \"\\n rms value of ripple voltage is %.0f V \\n \"%(Vrip)\n", + "Vp_p=2*sqrt(2)*Vrip#\n", + "print \"\\n peak to peak voltage is %.4f V \"%(Vp_p)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_24 PG-3.59" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Therefore DC output voltage is 207.07 V \n", + "\n", + "if the capacitor filter C=1000e-6 is use then \n", + "\n", + " ripple factor is 0.0289 \n", + "\n", + "\n", + " Therefore new DC load voltage is 314.9155 V \n", + "\n" + ] + } + ], + "source": [ + "Es=230 # rms value of input voltage\n", + "f=50 # frequency\n", + "Idc=50e-6#\n", + "Rl=100 # load resistance\n", + "C=1000e-6 # filter capacitor\n", + "Esm=sqrt(2)*Es#\n", + "Edc=2*Esm/pi#\n", + "print \"\\n Therefore DC output voltage is %.2f V \\n\"%(Edc)\n", + "Idc=Edc/Rl#\n", + "print \"if the capacitor filter C=1000e-6 is use then \"\n", + "Rf=(4*sqrt(3)*f*C*Rl)**(-1) # ripple factor\n", + "print \"\\n ripple factor is %.4f \\n\"%(Rf)\n", + "Edc=Esm-Idc/(4*f*C)#\n", + "print \"\\n Therefore new DC load voltage is %.4f V \\n\"%(Edc)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_25 Pg-3.60" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " For a half wave rectifier Ripple factor=(2*sqrt(3)*f*C*Rl)**(-1)\n", + "\n", + " Therefore capacitance required is 5.576 mF\n" + ] + } + ], + "source": [ + "Es=230#\n", + "f=50#frequency\n", + "Rf=.005 # ripple factor\n", + "Il=0.5 # average load current\n", + "Esm=sqrt(2)*Es # peak value of input voltage\n", + "print \" For a half wave rectifier Ripple factor=(2*sqrt(3)*f*C*Rl)**(-1)\"\n", + "Edc=Esm/pi#for half wave rectifier\n", + "Rl=Edc/Il#\n", + "C=(2*sqrt(3)*f*Rf*Rl)**(-1) # for half wave rectifier\n", + "C=C*1e3#\n", + "print \"\\n Therefore capacitance required is %.3f mF\"%(C)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_26 PG-3.60" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " ripple factor is 5.77 10**(-6) \n", + "\n" + ] + } + ], + "source": [ + "Rl=1000#\n", + "C=500e-3\n", + "f=50#\n", + "Rf=(4*sqrt(3)*f*C*Rl)**(-1) # ripple factor\n", + "Rf=Rf*1e6#\n", + "print \"\\n ripple factor is %.2f 10**(-6) \\n\"%(Rf)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_27 PG-3.60" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " For a half wave rectifier Ripple factor=1/(2*sqrt(3)*f*C*Rl)\n", + "\n", + " Therefore minimum value of capacitance required is 9.619 microF\n" + ] + } + ], + "source": [ + "Il=12e-3 # load current\n", + "Es=200 # rms voltage\n", + "Rf=0.02 # riplle factor\n", + "Esm=sqrt(2)*Es # peak value of input voltage\n", + "Edc=2*Esm/pi#\n", + "Idc=Il#\n", + "Rl=Edc/Idc # load resistance\n", + "f=50 # frequency of the supply in Hz\n", + "print \" For a half wave rectifier Ripple factor=1/(2*sqrt(3)*f*C*Rl)\"\n", + "C=(4*sqrt(3)*f*Rf*Rl)**(-1) # filter capacitor\n", + "print \"\\n Therefore minimum value of capacitance required is %.3f microF\"%(C*1e6)\n", + "#C=9.619 microF not 9.622 microF" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_28 PG-3.61" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Therefore capacitance required is 13.94 microF\n" + ] + } + ], + "source": [ + "Es=230 # rms voltage\n", + "f=50#\n", + "Il=10e-3 # load current\n", + "Rf=.01 # ripple factor\n", + "Esm=sqrt(2)*Es # peak value of input voltage\n", + "Edc=2*Esm/pi # for full wave\n", + "Rl=Edc/Il#\n", + "C=(4*sqrt(3)*f*Rf*Rl)**(-1) # for full wave rectifier\n", + "C=C*1e6#\n", + "print \"\\n Therefore capacitance required is %.2f microF\"%(C)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_29 PG-3.61" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Therefore Average DC load current is 0.09 A \n", + "\n", + "\n", + " Therefore average DC voltage is 180 V \n", + "\n", + "\n", + " rms value of ripple voltage is 86.4 V \n", + " \n", + "if a filter capacitor C=500 microF is used then\n", + "\n", + " rms value of new ripple voltage is 0.5198 V \n", + " \n" + ] + } + ], + "source": [ + "Rl=2e3 # load resistance\n", + "Es=200 # rms voltage\n", + "f=50#\n", + "Esm=sqrt(2)*Es # peak value of input voltage\n", + "Rf=0 # ideal diodes\n", + "Rs=0#\n", + "Ism=Esm/(Rf+Rs+Rl)#\n", + "Idc=2*Ism/pi#\n", + "print \"\\n Therefore Average DC load current is %.2f A \\n\"%(Idc)\n", + "Edc=Idc*Rl#\n", + "print \"\\n Therefore average DC voltage is %.0f V \\n\"%(Edc)\n", + "Rf=0.48 # ripple factor\n", + "Vrip=Rf*Edc # ripple voltage\n", + "print \"\\n rms value of ripple voltage is %.1f V \\n \"%(Vrip)\n", + "print \"if a filter capacitor C=500 microF is used then\"\n", + "C=500e-6 # capacitor filter\n", + "Rf=(4*sqrt(3)*f*C*Rl)**(-1) # for full wave rectifier\n", + "Vrip=Rf*Edc # new ripple voltage\n", + "print \"\\n rms value of new ripple voltage is %.4f V \\n \"%(Vrip)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_30 PG-3.67" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " percentage load regulation is +2.04 %\n" + ] + } + ], + "source": [ + "Vnl=10 # no load output voltage\n", + "Vfl=9.8 # full output voltage\n", + "LR=Vnl-Vfl # load regulation\n", + "LR=(Vnl-Vfl)/Vfl*100 # percentage load regulation\n", + "print \"\\n percentage load regulation is +%.2f %%\"%(LR)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_31 PG-3.67" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " percentage load regulation is +0.02 %\n" + ] + } + ], + "source": [ + "LR=3e-3 # load regulation\n", + "Vnl=15 # no load voltage or maximum voltage\n", + "Vfl=Vnl-LR # full load voltage\n", + "LR=(Vnl-Vfl)/Vfl*100 # percentage load regulation\n", + "print \"\\n percentage load regulation is +%.2f %%\"%(LR)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_32 PG-3.67" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " percentage source regulation is 6 %\n" + ] + } + ], + "source": [ + "Vhl=10+.3 # high line voltage\n", + "Vll=10-.3 # low line voltage\n", + "SR=Vhl-Vll # source regulation\n", + "Vnom=10 # nominal load voltage\n", + "SR=SR/Vnom*100 # percentage source regulation\n", + "print \"\\n percentage source regulation is %.0f %%\"%(SR)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_33 PG-3.70" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Refer to the figure-3.45 shown\n", + "\n", + " minimum input voltage(Vin_min) is 25.02 V \n", + "\n", + "\n", + " maximum input voltage(Vin_max) is 74.52 V \n", + "\n", + "\n", + " range of input voltage is from 25.020 V to 74.52 V \n", + "\n" + ] + } + ], + "source": [ + "print \"Refer to the figure-3.45 shown\"\n", + "Vz=6.1 # zener voltage\n", + "Iz_min=2.5e-3 # minimum zener current\n", + "Iz_max=25e-3 # maximum zener current\n", + "rZ=0 # ideal zener diode\n", + "R=2.2e3#\n", + "Rl=1e3 # loadd resistance\n", + "Il=Vz/Rl#\n", + "#For minimum input voltage(Vin_min)\n", + "Iz=Iz_min\n", + "I=Iz_min+Il#\n", + "Vin_min=Vz+I*R#\n", + "print \"\\n minimum input voltage(Vin_min) is %.2f V \\n\"%(Vin_min)\n", + "#For maximum input voltage(Vin_max)\n", + "I=Iz_max+Il#\n", + "Vin_max=Vz+I*R#\n", + "print \"\\n maximum input voltage(Vin_max) is %.2f V \\n\"%(Vin_max)\n", + "print \"\\n range of input voltage is from %.3f V to %.2f V \\n\"%(Vin_min,Vin_max)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_34 PG-3.70" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Step1 : Maximum power dissipation correesponds to Iz_max\n", + "\n", + " maximum current that should flow through the zener diode is 0.1 A \n", + "\n", + "Step2 : We know that Il is constant\n", + "\n", + " minimum resistance required is 83.33 ohm \n", + "\n", + "Iz is maximum when R=Rminimum\n", + "Step3 : for calculation of Rmax I must be minimum ie I=Iz_min \n", + "\n", + " maximum resistance required is 133.33 ohm \n", + "\n", + "\n", + " Thus R must be greater than 83.33 ohm and less than \n", + " 133.33 ohm for proper regulation \n", + "\n" + ] + } + ], + "source": [ + "Vo=5 # output voltage\n", + "Vin_min=12-3 # min input voltage\n", + "Vin_max=12+3 # max input voltage\n", + "Iz_min=10e-3 # minimum zener current\n", + "Il=20e-3 # load current\n", + "Pz=500e-3 # Zener wattage\n", + "Vz=Vo # zener voltage\n", + "print \"Step1 : Maximum power dissipation correesponds to Iz_max\"\n", + "Iz_max=Pz/Vz#\n", + "print \"\\n maximum current that should flow through the zener diode is %.1f A \\n\"%(Iz_max)\n", + "print \"Step2 : We know that Il is constant\"\n", + "#for Vin_max, Iz=Iz_max\n", + "I=Il+Iz_max#\n", + "Rmin=(Vin_max-Vz)/I#\n", + "print \"\\n minimum resistance required is %.2f ohm \\n\"%(Rmin)\n", + "print \"Iz is maximum when R=Rminimum\"\n", + "print \"Step3 : for calculation of Rmax I must be minimum ie I=Iz_min \"\n", + "I=Il+Iz_min\n", + "Rmax=(Vin_min-Vz)/I#\n", + "print \"\\n maximum resistance required is %.2f ohm \\n\"%(Rmax)\n", + "print \"\\n Thus R must be greater than %.2f ohm and less than \\n %.2f ohm for proper regulation \\n\"%(Rmin,Rmax)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_35 PG-3.72" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "refer to the figure-3.47 shown\n", + "\n", + " minimum load current is 8.33 mA \n", + "\n", + "\n", + " maximum load current is 28.33 mA \n", + "\n", + "\n", + " minimum load resistance is 352.941 ohm \n", + "\n" + ] + } + ], + "source": [ + "print \"refer to the figure-3.47 shown\"\n", + "Vz=10 # output voltage\n", + "Vin=20 # input voltage\n", + "Iz_max=25e-3 # maximum zener current\n", + "Iz_min=5e-3 # minimum zener current\n", + "R=300#\n", + "Rz=0 # zener resistance\n", + "I=(Vin-Vz)/R#\n", + "#for Il_min Iz=Iz_max\n", + "Il_min=I-Iz_max # minimum load current\n", + "print \"\\n minimum load current is %.2f mA \\n\"%(Il_min*1e3)\n", + "#for Il_max, Iz=Iz_min\n", + "Il_max=I-Iz_min # maximum load current\n", + "print \"\\n maximum load current is %.2f mA \\n\"%(Il_max*1e3)\n", + "Rl_min=Vz/Il_max # minimum load resistance\n", + "print \"\\n minimum load resistance is %.3f ohm \\n\"%(Rl_min)\n", + "# in the book in the question it given that Iz_max=50mA\n", + "#but during the solution Iz_max is taken as 25mA I have taken Iz_max=25mA\n", + "# in this program " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_38 Pg-3.75" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " maximum resistance required is 160 ohm \n", + "\n", + "\n", + " minimum resistance required is 83.33 ohm \n", + "\n", + "\n", + " So series resistance must be selected between 83.33 ohm to 160 ohm \n", + "\n" + ] + } + ], + "source": [ + "Vo=5#\n", + "Il=20e-3#\n", + "Pz=500e-3#\n", + "Rl=Vo/Il#\n", + "Il_min=Il # minimum load current\n", + "Il_max=Il # maximum load current\n", + "Iz_max=Pz/Vo # maximum zener current\n", + "Iz_min=5e-3 # minimum zener current\n", + "V=12 # input DC voltage\n", + "Vin_min=12-3 # min input voltage\n", + "Vin_max=12+3 # max input voltage\n", + "Rmax=(Vin_min-Vo)/(Il_max+Iz_min)#\n", + "print \"\\n maximum resistance required is %.0f ohm \\n\"%(Rmax)\n", + "Rmin=(Vin_max-Vo)/(Il_min+Iz_max)#\n", + "print \"\\n minimum resistance required is %.2f ohm \\n\"%(Rmin)\n", + "print \"\\n So series resistance must be selected between %.2f ohm to %.0f ohm \\n\"%(Rmin,Rmax)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_39 Pg-3.76" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " maximum resistance required is 833.33 ohm \n", + "\n", + "\n", + " minimum resistance required is 400 ohm \n", + "\n", + "\n", + " So series resistance must be selected between 400 ohm to 833.33 ohm \n", + "\n" + ] + } + ], + "source": [ + "Vo=10#\n", + "Il_min=0 # mainimum load current\n", + "Il_max=10e-3 # maximum load current\n", + "Iz_max=50e-3 # maximum zener current\n", + "Iz_min=2e-3 # minimum zener current\n", + "Vin_min=20 # min input voltage\n", + "Vin_max=30 # max input voltage\n", + "Rl_min=Vo/Il_max#\n", + "Rmax=(Vin_min-Vo)/(Il_max+Iz_min)#\n", + "print \"\\n maximum resistance required is %.2f ohm \\n\"%(Rmax)\n", + "Rmin=(Vin_max-Vo)/(Il_min+Iz_max)#\n", + "print \"\\n minimum resistance required is %.0f ohm \\n\"%(Rmin)\n", + "print \"\\n So series resistance must be selected between %.0f ohm to %.2f ohm \\n\"%(Rmin,Rmax)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_40 Pg-3.76" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " minimum resistance required is 320 ohm \n", + "\n", + "\n", + " As Vin and Il are not changing R=Rmin=320 ohm\n", + " is sufficient to work as a regulator\n", + "\n", + "For Rl=1200 ohm\n", + " \n", + " load current is: 0.02 A \n", + "\n", + "\n", + " zener current is :0.005 A \n", + "\n", + " As Iz=Iz_min=0.005 A, the circuit will work as a regulator\n" + ] + } + ], + "source": [ + "Vo=24#\n", + "Il_min=0 # minimum load current\n", + "Pz=600e-3#\n", + "Vin=32 # input voltage\n", + "Iz_max=Pz/Vo#\n", + "Rmin=(Vin-Vo)/(Il_min+Iz_max)#\n", + "print \"\\n minimum resistance required is %.0f ohm \\n\"%(Rmin)\n", + "print \"\\n As Vin and Il are not changing R=Rmin=%.0f ohm\\n is sufficient to work as a regulator\\n\"%(Rmin)\n", + "print \"For Rl=1200 ohm\"\n", + "Rl=1200#\n", + "Il=Vo/Rl#\n", + "print \" \\n load current is: %.2f A \\n\"%(Il)\n", + "R=Rmin\n", + "It=(Vin-Vo)/R#\n", + "Iz=It-Il#\n", + "print \"\\n zener current is :%.3f A \\n\"%(Iz)\n", + "print \" As Iz=Iz_min=%.3f A, the circuit will work as a regulator\"%(Iz)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 3_41 PG-3.79" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " maximum series resistance is 139.725 ohm \n", + "\n", + "\n", + " maximum load current is 0.0443827 A \n", + "\n", + "\n", + " voltage stability factor is 0.052 \n", + "\n", + "\n", + " line regulation is 0.9629 % \n", + "\n", + "\n", + " load regulation is 4.1461 % \n", + "\n", + "\n", + " ripple rejection ratio is 0.052 \n", + "\n", + "\n", + " output resistance is 7.567 ohm \n", + "\n" + ] + } + ], + "source": [ + "Pd=400e-3#\n", + "Vz=8.1 # output voltage\n", + "Vo=Vz#\n", + "Zz=8#\n", + "Vin=15#\n", + "Izm=Pd/Vz#\n", + "Rmax=(Vin-Vz)/Izm#\n", + "print \"\\n maximum series resistance is %.3f ohm \\n\"%(Rmax)\n", + "Iz_min=5e-3 # we select the minimum zener current\n", + "Il_max=Izm-Iz_min # maximum load current\n", + "print \"\\n maximum load current is %.7f A \\n\"%(Il_max)\n", + "Rl=Vz/Il_max # load resistance\n", + "deltaVin=.1*Vin # change in input voltage is equal to 10% of the original input voltage\n", + "R=Rmax # series resistance\n", + "x=(Rl*Zz)/(Rl+Zz)#\n", + "deltaVo=(deltaVin*x)/(R+x)#\n", + "Sv=deltaVo/deltaVin # voltage stability factor \n", + "print \"\\n voltage stability factor is %.3f \\n\"%(Sv)\n", + "SR=deltaVo/Vo*100 # line regulation for a 10% change in Vin\n", + "print \"\\n line regulation is %.4f %% \\n\"%(SR)\n", + "deltaIL=Il_max#\n", + "y=(R*Zz)/(R+Zz)\n", + "deltaVo=deltaIL*y#\n", + "LR=deltaVo/Vo*100 # load regulation \n", + "print \"\\n load regulation is %.4f %% \\n\"%(LR)\n", + "z=(Rl*Zz)/(Rl+Zz)\n", + "RR=z/(R+z) # ripple rejection ratio\n", + "print \"\\n ripple rejection ratio is %.3f \\n\"%(RR)\n", + "Ro=y # output resistance\n", + "print \"\\n output resistance is %.3f ohm \\n\"%(Ro)" + ] + } + ], + "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 +} diff --git a/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter4.ipynb b/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter4.ipynb new file mode 100644 index 00000000..21bc4afd --- /dev/null +++ b/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter4.ipynb @@ -0,0 +1,203 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 4 Transistors" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 4_1 PG-4.11" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Therefore base current is 235 microA \n", + "\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "Ie=12e-3##emitter current\n", + "Ic=Ie/1.02##collector current\n", + "Ib=Ie-Ic##base current\n", + "print \"\\n Therefore base current is %.0f microA \\n\"%(Ib*1e6)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 4_2 Pg-4.14" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "When beta_dc=50 \n", + "\n", + " alpha_dc=0.9804 \n", + "\n", + "\n", + " When beta_dc=190 \n", + "\n", + " alpha_dc=0.9948 \n", + "\n", + "\n", + " When alpha_dc=0.995 \n", + "\n", + " beta_dc=199 \n", + "\n", + "\n", + " When alpha_dc=0.9765 \n", + "\n", + " beta_dc=41.55 \n", + "\n" + ] + } + ], + "source": [ + "print \"When beta_dc=50 \"\n", + "beta_dc=50#\n", + "alpha_dc=beta_dc/(1+beta_dc)#\n", + "print \"\\n alpha_dc=%.4f \\n\\n\"%(alpha_dc)\n", + "print \" When beta_dc=190 \"\n", + "beta_dc=190#\n", + "alpha_dc=beta_dc/(1+beta_dc)#\n", + "print \"\\n alpha_dc=%.4f \\n\\n\"%(alpha_dc)\n", + "print \" When alpha_dc=0.995 \"\n", + "alpha_dc=0.995#\n", + "beta_dc=alpha_dc/(1-alpha_dc)#\n", + "print \"\\n beta_dc=%.0f \\n\\n\"%(beta_dc)\n", + "print \" When alpha_dc=0.9765 \"\n", + "alpha_dc=0.9765#\n", + "beta_dc=alpha_dc/(1-alpha_dc)#\n", + "print \"\\n beta_dc=%.2f \\n\"%(beta_dc)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 4_3 Pg-4.15" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " beta_dc=319 \n", + " \n", + " alpha_dc=0.996875 \n", + "\n", + "\n", + " collector current is 6.380 mA \n", + "\n" + ] + } + ], + "source": [ + "Ib=20e-6#\n", + "Ie=0.0064#\n", + "beta_dc=Ie/Ib-1#\n", + "alpha_dc=beta_dc/(1+beta_dc)#\n", + "print \"\\n beta_dc=%.0f \\n \\n alpha_dc=%f \\n\"%(beta_dc,alpha_dc)\n", + "Ic=beta_dc*Ib##collector current\n", + "print \"\\n collector current is %.3f mA \\n\"%(Ic*1e3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 4_4 PG-4.15" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " alpha_dc=0.996 \n", + "\n", + "We know that Ic=alpha_dc*Ie+Icbo \n", + "Therefore emitter current is Ie=(Ic-Icbo)/alpha_dc\n", + "\n", + " emitter current is 20.08 mA\n" + ] + } + ], + "source": [ + "Icbo=5e-6##leakage current\n", + "Ic=20e-3##collector current\n", + "Ie=Ic/0.996##Ic=o.996Ie\n", + "alpha_dc=Ic/Ie#\n", + "print \"\\n alpha_dc=%.3f \\n\"%(alpha_dc)\n", + "print \"We know that Ic=alpha_dc*Ie+Icbo \"\n", + "print \"Therefore emitter current is Ie=(Ic-Icbo)/alpha_dc\"\n", + "Ie=(Ic-Icbo)/alpha_dc##emitter current\n", + "Ie=Ie*1e3#\n", + "print \"\\n emitter current is %.2f mA\"%(Ie)" + ] + } + ], + "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 +} diff --git a/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter5.ipynb b/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter5.ipynb new file mode 100644 index 00000000..bfbe6ed3 --- /dev/null +++ b/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter5.ipynb @@ -0,0 +1,1013 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 5 Biasing Methods" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 5_1 PG 5.4" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Refer to the figure-5.5 shown\n", + "i) When Rb=300 kohm\n", + " Base emitter junction is not reverse biased \n", + " Assume transistor is operating in active region\n", + " We know that Vcc=Ib*Rb+Vbe \n", + "\n", + " base current Ib is: 31.00 microA \n", + "\n", + "\n", + " Collector current is 3.1 mA \n", + "\n", + " Applying KVL around collector loop ie Vcc=Ic*Rc+Vce\n", + "\n", + " Now Vce= 3.8 V \n", + "\n", + "\n", + " Since Vce=3.8 V collector to base junction is reverse biased and we can say \n", + " that our assumption that transistor is in active region is justified\n", + "\n", + "\n", + " ii)When Rb=150 kohm\n", + "\n", + "\n", + " base emitter junction is not reverse biased \n", + " assume transistor is operating in active region\n", + " Applying KVL around base loop ie Vcc=Ib*Rb+Vbe\n", + "\n", + " base current Ib is: 62 microA \n", + "\n", + "\n", + " Collector current is 6.2 mA \n", + "\n", + " Applying KVL around collector loop ie Vcc=Ic*Rc+Vce\n", + "\n", + " Therefore Vce= -2.4 V \n", + "\n", + "\n", + " Collector voltage Vce has to be +ve or zero but Vce=-2.4 V hence \n", + " transistor is not in active region but it is in saturation region\n", + "\n", + " \n", + " Applying KVL around base loop ie Vcc=Ib*Rb+Vbe_sat\n", + "\n", + " base current Ib is: 61 microA \n", + "\n", + " Applying KVL around collector loop ie Vcc=Ic*Rc+Vce_sat\n", + "\n", + " Collector current is 4.9 mA \n", + "\n", + " To justify transistor is in saturation then \n", + " Ib must be greater than (Ic/Beta)\n", + "\n", + "\n", + " Now Ib=61 microA \n", + " \n", + " (Ic/Beta)=49 microA \n", + "\n", + " Hence transistor in saturation region is satisfied \n" + ] + } + ], + "source": [ + "print \" Refer to the figure-5.5 shown\"\n", + "print \"i) When Rb=300 kohm\"\n", + "print \" Base emitter junction is not reverse biased \"\n", + "print \" Assume transistor is operating in active region\"\n", + "Rb=300e3#\n", + "Rc=2e3##collector resistance\n", + "Vcc=10##supply voltage\n", + "Vbe=0.7##base emitter voltage\n", + "print \" We know that Vcc=Ib*Rb+Vbe \"\n", + "Ib=(Vcc-Vbe)/Rb##since Vcc=Ib*Rb+Vbe\n", + "print \"\\n base current Ib is: %.2f microA \\n\"%(Ib*1e6)\n", + "Beta=100#\n", + "Ic=Beta*Ib##colector current in active region\n", + "print \"\\n Collector current is %.1f mA \\n\"%(Ic*1e3)\n", + "print \" Applying KVL around collector loop ie Vcc=Ic*Rc+Vce\"\n", + "Vce=Vcc-Ic*Rc##since Vcc=Ic*Rc+Vce\n", + "print \"\\n Now Vce= %.1f V \\n\\n\"%(Vce)\n", + "print \" Since Vce=3.8 V collector to base junction is reverse biased and we can say \\n that our assumption that transistor is in active region is justified\"\n", + "print \"\\n\\n ii)When Rb=150 kohm\\n\\n\"\n", + "print \" base emitter junction is not reverse biased \"\n", + "Rb=150e3#\n", + "print \" assume transistor is operating in active region\"\n", + "print \" Applying KVL around base loop ie Vcc=Ib*Rb+Vbe\"\n", + "Ib=(Vcc-Vbe)/Rb##since Vcc=Ib*Rb+Vbe\n", + "print \"\\n base current Ib is: %.0f microA \\n\"%(Ib*1e6)\n", + "Ic=Beta*Ib##colector current in active region\n", + "print \"\\n Collector current is %.1f mA \\n\"%(Ic*1e3)\n", + "print \" Applying KVL around collector loop ie Vcc=Ic*Rc+Vce\"\n", + "Vce=Vcc-Ic*Rc##since Vcc=Ic*Rc+Vce\n", + "print \"\\n Therefore Vce= %.1f V \\n\\n\"%(Vce)\n", + "print \" Collector voltage Vce has to be +ve or zero but Vce=-2.4 V hence \\n transistor is not in active region but it is in saturation region\\n\\n \"\n", + "Vbe_sat=0.8##base saturation voltage\n", + "Vce_sat=0.2##collector saturation voltage\n", + "print \" Applying KVL around base loop ie Vcc=Ib*Rb+Vbe_sat\"\n", + "Ib=(Vcc-Vbe_sat)/Rb##since Vcc=Ib*Rb+Vbe_sat\n", + "print \"\\n base current Ib is: %.0f microA \\n\"%(Ib*1e6)\n", + "print \" Applying KVL around collector loop ie Vcc=Ic*Rc+Vce_sat\"\n", + "Ic=(Vcc-Vce_sat)/Rc#since Vcc=Ic*Rc+Vce_sat\n", + "print \"\\n Collector current is %.1f mA \\n\"%(Ic*1e3)\n", + "print \" To justify transistor is in saturation then \\n Ib must be greater than (Ic/Beta)\"\n", + "x=Ic/Beta\n", + "print \"\\n\\n Now Ib=%.0f microA \\n \\n (Ic/Beta)=%.0f microA \\n\"%(Ib*1e6,x*1e6)\n", + "if (Ib>x) :\n", + " x=(Ic/Beta)\n", + " print \" Hence transistor in saturation region is satisfied \" " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 5_2 PG-5.6" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " base current is 0.00007533 A \n", + "\n", + "\n", + " for hFE_min=50\n", + "\n", + " Ic=3.767 A \n", + "\n", + " Vce=4.4667 V \n", + "\n", + "\n", + "\n", + " for hFE_max=60\n", + "\n", + " Ic=4.52 A \n", + "\n", + " Vce=3 V \n", + "\n" + ] + } + ], + "source": [ + "Vbe=0.7##base emitter voltage for silicon\n", + "Vcc=12##supply voltage\n", + "Rb=150e3#\n", + "Rc=2e3\n", + "hFE_min=50##minimum voltage gain\n", + "hFE_max=60##maximum voltage gain\n", + "Ib=(Vcc-Vbe)/Rb##since Vcc=Ib*Rb+Vbe\n", + "print \"\\n base current is %.8f A \\n\"%(Ib)\n", + "print \"\\n for hFE_min=50\"\n", + "Ic=hFE_min*Ib\n", + "print \"\\n Ic=%.3f A \\n\"%(Ic*1e3)\n", + "Vce=Vcc-Ic*Rc\n", + "print \" Vce=%.4f V \\n\"%(Vce)\n", + "print \"\\n\\n for hFE_max=60\"\n", + "Ic=hFE_max*Ib\n", + "print \"\\n Ic=%.2f A \\n\"%(Ic*1e3)\n", + "Vce=Vcc-Ic*Rc\n", + "print \" Vce=%.0f V \\n\"%(Vce)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 5_3 PG5.8 " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Refer to the figure-5.8 shown\n", + "\n", + " base current is 10.18 microA \n", + "\n", + "\n", + " Ic=1.018 mA \n", + "\n", + "\n", + " Vce=1.7180 V \n", + "\n" + ] + } + ], + "source": [ + "print \"Refer to the figure-5.8 shown\"\n", + "Vbe=0.7##base emitter voltage for silicon\n", + "Vcc=12##supply voltage\n", + "Rb=100e3#\n", + "Rc=10e3#\n", + "Beta=100##voltage gain\n", + "Ib=(Vcc-Vbe)/((1+Beta)*Rc+Rb)##since Vcc=Ib*Rb+Vbe\n", + "print \"\\n base current is %.2f microA \\n\"%(Ib*1e6)\n", + "Ic=Beta*Ib\n", + "print \"\\n Ic=%.3f mA \\n\"%(Ic*1e3)\n", + "Vce=Vcc-(Ib+Ic)*Rc\n", + "print \"\\n Vce=%.4f V \\n\"%(Vce)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 5_4 PG-5.9" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "i) for hFE_min=50\n", + "\n", + " base current is 44.84 microA \n", + "\n", + " Ic=2.242 mA \n", + "\n", + " Vce=7.426 V \n", + "\n", + "\n", + " for hFE_max=60\n", + "\n", + " base current is 41.54 microA \n", + "\n", + " Ic=2.493 mA \n", + "\n", + " Vce=6.932 V \n", + "\n" + ] + } + ], + "source": [ + "Vbe=0.7##base emitter voltage for silicon\n", + "Vcc=12##supply voltage\n", + "Rb=150e3#\n", + "Rc=2e3\n", + "hFE_min=50#\n", + "hFE_max=60#\n", + "print \"i) for hFE_min=50\"\n", + "Beta=hFE_min##minimum voltage gain\n", + "Ib=(Vcc-Vbe)/((1+Beta)*Rc+Rb)##since Vcc=Ib*Rb+Vbe\n", + "print \"\\n base current is %.2f microA \\n\"%(Ib*1e6)\n", + "Ic=Beta*Ib\n", + "print \" Ic=%.3f mA \\n\"%(Ic*1e3)\n", + "Vce=Vcc-(Ib+Ic)*Rc\n", + "print \" Vce=%.3f V \\n\"%(Vce)\n", + "print \"\\n for hFE_max=60\"\n", + "Beta=hFE_max##maximum voltage gain\n", + "Ib=(Vcc-Vbe)/((1+Beta)*Rc+Rb)##since Vcc=Ib*Rb+Vbe\n", + "print \"\\n base current is %.2f microA \\n\"%(Ib*1e6)\n", + "Ic=Beta*Ib\n", + "print \" Ic=%.3f mA \\n\"%(Ic*1e3)\n", + "Vce=Vcc-(Ib+Ic)*Rc\n", + "print \" Vce=%.3f V \\n\"%(Vce)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 5_5 PG-5.11" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Refer to the figure-5.13 shown\n", + "\n", + " Vb=3.33 V\n", + "\n", + "\n", + " Ve=2.63 V \n", + "\n", + "\n", + " Ie=5.27 mA \n", + "\n", + "\n", + " Ib=52.08 microA \n", + "\n", + "\n", + " Ic=5.208 mA \n", + "\n", + "We apply KVL to the collector circuit\n", + "Vcc-Ic*Rc-Vce-Ie*Re=0\n", + "\n", + " Vce=2.16 V \n", + "\n" + ] + } + ], + "source": [ + "print \"Refer to the figure-5.13 shown\"\n", + "Vbe=0.7##base emitter voltage for silicon\n", + "Vcc=10##supply voltage\n", + "R1=10e3#\n", + "Rc=1e3#\n", + "R2=5e3#\n", + "Re=500#\n", + "Beta=100##voltage gain\n", + "Vb=R2*Vcc/(R1+R2)##base voltage\n", + "print \"\\n Vb=%.2f V\\n\"%(Vb)\n", + "Ve=Vb-Vbe##emitter voltage\n", + "print \"\\n Ve=%.2f V \\n\"%(Ve)\n", + "Ie=Ve/Re#\n", + "print \"\\n Ie=%.2f mA \\n\"%(Ie*1e3)\n", + "Ib=5.26e-3/(1+Beta)##Ie=0.00526 A=5.26 mA\n", + "print \"\\n Ib=%.2f microA \\n\"%(Ib*1e6)\n", + "Ic=Beta*Ib#\n", + "print \"\\n Ic=%.3f mA \\n\"%(Ic*1e3)\n", + "print \"We apply KVL to the collector circuit\"\n", + "print \"Vcc-Ic*Rc-Vce-Ie*Re=0\"\n", + "Vce=Vcc-Ic*Rc-Ie*Re##since Vcc-Ic*Rc-Vce-Ie*Re=0\n", + "print \"\\n Vce=%.2f V \\n\"%(Vce)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 5_6 PG-5.12" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Refer to the figure-5.13 shown in the question no 5.5\n", + "\n", + "\n", + " Vt=3.33 V\n", + "\n", + "\n", + " Rb=3333 ohm \n", + "\n", + "\n", + " Ib=48.916 microA \n", + "\n", + "\n", + " Ic=4.89 mA \n", + "\n", + "\n", + " Vce=2.638 V \n", + "\n" + ] + } + ], + "source": [ + "print \"Refer to the figure-5.13 shown in the question no 5.5\\n\"\n", + "#We must find the value of Ic,Ve,Vce using exact analysis\n", + "Vbe=0.7##base emitter voltage for silicon\n", + "Vcc=10##supply voltage\n", + "R1=10e3#\n", + "Rc=1e3#\n", + "R2=5e3#\n", + "Re=500#\n", + "Beta=100##voltage gain\n", + "Vt=R2*Vcc/(R1+R2)##thevenin's voltage\n", + "print \"\\n Vt=%.2f V\\n\"%(Vt)\n", + "Rb=R1*R2/(R1+R2)#\n", + "print \"\\n Rb=%.0f ohm \\n\"%(Rb)\n", + "Ib=(Vt-Vbe)/(Rb+(1+Beta)*Re)#\n", + "print \"\\n Ib=%.3f microA \\n\"%(Ib*1e6)\n", + "Ic=Beta*Ib#\n", + "print \"\\n Ic=%.2f mA \\n\"%(Ic*1e3)\n", + "Vce=Vcc-Ic*Rc-(Ic+Ib)*Re##since Vcc-Ic*Rc-Vce-Ie*Re=0\n", + "print \"\\n Vce=%.3f V \\n\"%(Vce)\n", + "#the ans for Ve in the book is 2.648V whereas in output it is 2.638V because\n", + "# in the book the values has been rounded off so that the final answer is \n", + "#2.648V same is the case for Rb,Ib andIc " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 5_7 PG-5.13" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Vb=2 V\n", + "\n", + "\n", + " Ve=1.3 V \n", + "\n", + "\n", + " Ie=2.77 mA \n", + "\n", + "\n", + "i) for hFE_min=50\n", + "\n", + " Ic=2.712 mA \n", + "\n", + " Vce=5.277 V \n", + "\n", + "ii)for hFE_max=60\n", + " Ic=2.721 mA \n", + "\n", + " Vce=5.26 V \n", + "\n" + ] + } + ], + "source": [ + "Vbe=0.7##base emitter voltage for silicon\n", + "Vcc=12##supply voltage\n", + "R1=10e3#\n", + "R2=2e3\n", + "Re=470#\n", + "Rc=2e3\n", + "hFE_min=50#\n", + "hFE_max=60#\n", + "Vb=R2*Vcc/(R1+R2)##base voltage\n", + "print \"\\n Vb=%.0f V\\n\"%(Vb)\n", + "Ve=Vb-Vbe##emitter voltage\n", + "print \"\\n Ve=%.1f V \\n\"%(Ve)\n", + "Ie=Ve/Re#\n", + "print \"\\n Ie=%.2f mA \\n\"%(Ie*1e3)\n", + "print \"\\ni) for hFE_min=50\"\n", + "Beta=hFE_min#\n", + "Ib=Ie/(Beta+1)#\n", + "Ic=Beta*Ib#\n", + "print \"\\n Ic=%.3f mA \\n\"%(Ic*1e3)\n", + "Vce=Vcc-Ic*Rc-Ve#\n", + "print \" Vce=%.3f V \\n\"%(Vce)\n", + "print \"ii)for hFE_max=60\"\n", + "Beta=hFE_max#\n", + "Ib=Ie/(Beta+1)#\n", + "Ic=Beta*Ib#\n", + "print \" Ic=%.3f mA \\n\"%(Ic*1e3)\n", + "Vce=Vcc-Ic*Rc-Ve#\n", + "print \" Vce=%.2f V \\n\"%(Vce)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 5_8 PG-5.16" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "refer to the figure-5.17 shown\n", + "We apply KVL to the collector circuit ie Vcc-Vce-Ic*Rc=0\n", + "\n", + " Rc=1 kohm \n", + "\n", + "\n", + " Ib=50.00 microA \n", + "\n", + "We apply KVL to the base circuit ie Vcc-Vbe-Ib*Rb=0\n", + "\n", + " Rb=186 kohm \n", + "\n", + "the standard value of Rb=200k ohm\n" + ] + } + ], + "source": [ + "print \"refer to the figure-5.17 shown\"\n", + "Vbe=0.7##base emitter voltage for silicon\n", + "Vcc=10##supply voltage\n", + "Beta=100##voltage gain\n", + "Vce=5##colector to emitter voltage \n", + "Ic=5e-3##collector current\n", + "print \"We apply KVL to the collector circuit ie Vcc-Vce-Ic*Rc=0\"\n", + "Rc=(Vcc-Vce)/Ic##since Vcc-Vce-Ic*Rc=0\n", + "print \"\\n Rc=%.0f kohm \\n\"%(Rc*1e-3)\n", + "Ib=Ic/Beta##base current\n", + "print \"\\n Ib=%.2f microA \\n\"%(Ib*1e6)\n", + "print \"We apply KVL to the base circuit ie Vcc-Vbe-Ib*Rb=0\"\n", + "Rb=(Vcc-Vbe)/Ib##since Vcc-Vbe-Ib*Rb=0\n", + "print \"\\n Rb=%.0f kohm \\n\"%(Rb*1e-3)\n", + "print \"the standard value of Rb=200k ohm\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 5_9 PG-5.17" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "refer to the figure-5.19 shown\n", + "\n", + " Ib=50 microA \n", + "\n", + "\n", + " Rc=2.178 kohm \n", + "\n", + "Rc=2 kohm standard value\n", + "We apply KVL to the input circuit ie Vce-Vbe-Ib*Rb=0\n", + "\n", + " Rb=86 kohm \n", + "\n", + "the standard value of Rb=91 kohm\n" + ] + } + ], + "source": [ + "print \"refer to the figure-5.19 shown\"\n", + "Vbe=0.7##base emitter voltage for silicon\n", + "Vcc=16##supply voltage\n", + "Beta=100##voltage gain\n", + "Vce=5##colector to emitter voltage \n", + "Ic=5e-3##collector current\n", + "Ib=Ic/Beta##base current\n", + "print \"\\n Ib=%.0f microA \\n\"%(Ib*1e6)\n", + "Rc=(Vcc-Vce)/(Ic+Ib)##since Vcc-Vce-Ic*Rc=0\n", + "print \"\\n Rc=%.3f kohm \\n\"%(Rc*1e-3)\n", + "print \"Rc=2 kohm standard value\"\n", + "print \"We apply KVL to the input circuit ie Vce-Vbe-Ib*Rb=0\"\n", + "Rb=(Vce-Vbe)/Ib##since Vce-Vbe-Ib*Rb=0\n", + "print \"\\n Rb=%.0f kohm \\n\"%(Rb*1e-3)\n", + "print \"the standard value of Rb=91 kohm\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 5_10 PG-5.18" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Refer to the figure-5.20 shown\n", + "\n", + " Ib=30 microA \n", + "\n", + "\n", + " Ie=3.03 mA \n", + "\n", + "\n", + " Re=990 ohm \n", + "\n", + " the standard value of Re=910 ohm\n", + "\n", + "\n", + " Ve=2.757 V \n", + "\n", + "\n", + " Rc=1414 ohm \n", + "\n", + " the lower side standard value is selected to reduce Ic*Rc and increase Vce \n", + "\n", + "\n", + " Therefore Vb=3.45730 V \n", + "\n", + "\n", + " I=0.3 mA \n", + "\n", + "\n", + " R2=11524 ohm \n", + "\n", + " the standard value of R2=11 kohm\n", + "\n", + "the lower side standard is selected to satisfy I>=10*Ib\n", + "\n", + " I=0.3143 mA \n", + "\n", + "\n", + " R1=24.812 kohm \n", + "\n", + " the standard value of R1=22kohm\n", + "\n", + "The lowest standard value is selected to satisfy I>=10*Ib\n" + ] + } + ], + "source": [ + "print \"Refer to the figure-5.20 shown\"\n", + "Vbe=0.7##base emitter voltage for silicon\n", + "Vcc=12##supply voltage\n", + "Beta=100##voltage gain\n", + "Vce=5##colector to emitter voltage \n", + "Ve=3##assumption\n", + "Ic=3e-3##collector current\n", + "Ib=Ic/Beta##base current\n", + "print \"\\n Ib=%.0f microA \\n\"%(Ib*1e6)\n", + "Ie=Ic+Ib##emitter current\n", + "print \"\\n Ie=%.2f mA \\n\"%(Ie*1e3)\n", + "Re=Ve/Ie#\n", + "print \"\\n Re=%.0f ohm \\n\"%(Re)\n", + "print \" the standard value of Re=910 ohm\"\n", + "Re=910##standard value\n", + "Ve=Ie*Re#\n", + "print \"\\n\\n Ve=%.3f V \\n\"%(Ve)\n", + "Rc=(Vcc-Ve-Vce)/Ic\n", + "print \"\\n Rc=%.0f ohm \\n\"%(Rc)\n", + "print \" the lower side standard value is selected to reduce Ic*Rc and increase Vce \"\n", + "Vb=Ve+Vbe\n", + "print \"\\n\\n Therefore Vb=%.5f V \\n\"%(Vb)\n", + "I=10*Ib\n", + "print \"\\n I=%.1f mA \\n\"%(I*1e3)\n", + "R2=Vb/I#\n", + "print \"\\n R2=%.0f ohm \\n\"%(R2)\n", + "print \" the standard value of R2=11 kohm\\n\"\n", + "print \"the lower side standard is selected to satisfy I>=10*Ib\"\n", + "R2=11e3#\n", + "I=Vb/R2#\n", + "print \"\\n I=%.4f mA \\n\"%(I*1e3)\n", + "R1=(Vcc-Vb)/(I+Ib)\n", + "print \"\\n R1=%.3f kohm \\n\"%(R1*1e-3)\n", + "print \" the standard value of R1=22kohm\\n\"\n", + "print \"The lowest standard value is selected to satisfy I>=10*Ib\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 5_11 PG-5.26" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " For base bias: stability factor=101 \n", + "\n", + "\n", + " For collector to base bias: stability factor=10 \n", + "\n", + "\n", + " For voltage divider bias: stability factor=7.19 \n", + "\n" + ] + } + ], + "source": [ + "#for base bias take the figure as shown the Example5.1\n", + "Beta=100#\n", + "S=1+Beta##stability factor\n", + "print \"\\n For base bias: stability factor=%.0f \\n\"%(S)\n", + "#for collector to base bias the figure as shown the Example5.3\n", + "Beta=100#\n", + "Rc=10e3#\n", + "Rb=100e3\n", + "S=(1+Beta)/(1+Beta*(Rc/(Rc+Rb)))#\n", + "print \"\\n For collector to base bias: stability factor=%.0f \\n\"%(S)\n", + "#for voltage divider bias take the figure as shown the Example5.5\n", + "Re=500#\n", + "R1=10e3#\n", + "R2=5e3#\n", + "Rb=R1*R2/(R1+R2)##R1 and R2 are in parallel\n", + "S=(1+Beta)/(1+Beta*(Re/(Re+Rb)))#\n", + "print \"\\n For voltage divider bias: stability factor=%.2f \\n\"%(S)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 5_12 PG-5.28" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Refer to the figure-5.25 shown\n", + "Icbo doubles for every 10 degree Celsius\n", + "\n", + " Therefore Icbo2=64.00 microA \n", + "\n", + "Apply KVL to the base circuit Vbb=Vbe+Icbo2*Rb we get\n", + "\n", + " Rb=76.563 kohm \n", + "\n" + ] + } + ], + "source": [ + "print \"Refer to the figure-5.25 shown\"\n", + "Icbo1=2e-6##at a temperature T1=25 degree celsius\n", + "Vbb=5#\n", + "Vbe=0.1\n", + "print \"Icbo doubles for every 10 degree Celsius\"\n", + "T1=25##temperature in degree celsius\n", + "T2=80##temperature in degree celsius\n", + "Icbo2=Icbo1*2**((T2-T1)/10)##at a temperature T2=80 degree celsius\n", + "print \"\\n Therefore Icbo2=%.2f microA \\n\"%(Icbo2*1e6)\n", + "print \"Apply KVL to the base circuit Vbb=Vbe+Icbo2*Rb we get\"\n", + "Rb=(Vbb-Vbe)/Icbo2#\n", + "print \"\\n Rb=%.3f kohm \\n\"%(Rb*1e-3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 5_13 PG-5.29" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Refer to the figure-5.26 shown\n", + "\n", + " Apply KVL to the collector side Vcc=Ic*R3+Vce+Ie*R4\n", + "\n", + " Therefore R3=5.394 kohm \n", + "\n", + "\n", + " Apply KVL to the base side I*R2=Vbe+Ie*R4\n", + "\n", + " Therefore I=0.1812 mA \n", + "\n", + "\n", + " Apply KVl to the potential divider side we get Vcc=(I+Ib)*R1+I*R2\n", + "\n", + " therefore R1=65.547 kohm \n", + "\n" + ] + } + ], + "source": [ + "print \"Refer to the figure-5.26 shown\"\n", + "Vcc=15##supply voltage\n", + "Beta=100##voltage gain\n", + "Vbe=0.6##base emitter voltage \n", + "Ic=2e-3\n", + "Vce=3#\n", + "R4=600#\n", + "R2=10e3#\n", + "Ib=Ic/Beta#\n", + "Ie=Ic+Ib##collector current\n", + "print \"\\n Apply KVL to the collector side Vcc=Ic*R3+Vce+Ie*R4\"\n", + "R3=(Vcc-Vce-Ie*R4)/Ic##since Vcc=Ic*R3+Vce+Ie*R4\n", + "print \"\\n Therefore R3=%.3f kohm \\n\"%(R3*1e-3)\n", + "print \"\\n Apply KVL to the base side I*R2=Vbe+Ie*R4\"\n", + "I=(Vbe+Ie*R4)/R2##since I*R2=Vbe+Ie*R4\n", + "print \"\\n Therefore I=%.4f mA \\n\"%(I*1e3)\n", + "print \"\\n Apply KVl to the potential divider side we get Vcc=(I+Ib)*R1+I*R2\"\n", + "R1=(Vcc-I*R2)/(I+Ib)##since Vcc=(I+Ib)*R1+I*R2\n", + "print \"\\n therefore R1=%.3f kohm \\n\"%(R1*1e-3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 5_14 PG-5.30" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Refer to the figure-5.27 shown\n", + "apply KVl to the potential divider side we get Vcc-(I+Ib)*R1-I*R2=0 we get\n", + "\n", + " Re=148.51 ohm \n", + "\n", + "Apply KVL to the collector side Vcc-Ic*Rc-Vce+Ie*Re=0\n", + "\n", + " Therefore Vce=7.7 V \n", + "\n", + "\n", + " stability factor=24.256 \n", + "\n" + ] + } + ], + "source": [ + "print \"Refer to the figure-5.27 shown\"\n", + "Vcc=12##supply voltage\n", + "Beta=100##voltage gain\n", + "Vbe=0.7##base emitter voltage \n", + "Ic=2e-3#\n", + "Ib=Ic/Beta#\n", + "R1=50e3#\n", + "R2=5e3#\n", + "Rc=2e3#\n", + "print \"apply KVl to the potential divider side we get Vcc-(I+Ib)*R1-I*R2=0 we get\"\n", + "I=(Vcc-R1*Ib)/(R1+R2)##since Vcc-(I+Ib)*R1-I*R2=0\n", + "Vb=R2*I#\n", + "Ie=Ib+Ic#\n", + "Re=(Vb-Vbe)/(Ib+Ic)##Vb=Vbe+Re*Ie\n", + "print \"\\n Re=%.2f ohm \\n\"%(Re)\n", + "print \"Apply KVL to the collector side Vcc-Ic*Rc-Vce+Ie*Re=0\"\n", + "Vce=Vcc-Ic*Rc-Ie*Re##since Vcc-Ic*Rc-Vce+Ie*Re=0\n", + "print \"\\n Therefore Vce=%.1f V \\n\"%(Vce)\n", + "Rb=R1*R2/(R1+R2)##R1 and R2 are in parallel\n", + "S=(1+Beta)/(1+Beta*(Re/(Re+Rb)))#\n", + "print \"\\n stability factor=%.3f \\n\"%(S)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 5_15 PG-5.31" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Refer to the figure-5.28 shown\n", + "at T1=25 degree celsius, applying KVL to the base circuit we get\n", + "Vcc-Ib*Rb-Vbe=0\n", + "\n", + " Therefore Ic=11.3 mA \n", + "\n", + "Apply KVL to the collector side Vcc-Ic*Rc-Vce=0\n", + "\n", + " Therefore Vce=5.22 V \n", + "\n", + "\n", + " At 75 degree celsius Vce=3.525\n", + "\n", + "\n", + " change in Ic=25 % (an increase)\n", + "\n", + "\n", + " change in Vce=-32.47 % (a decrease) \n", + "\n" + ] + } + ], + "source": [ + "print \"Refer to the figure-5.28 shown\"\n", + "Vbe=0.7#\n", + "Rb=100e3#\n", + "Rc=600#\n", + "Vcc=12##supply voltage\n", + "T1=25##temperature in degree celsius\n", + "T2=75##temperature in degree celsius\n", + "print \"at T1=25 degree celsius, applying KVL to the base circuit we get\"\n", + "print \"Vcc-Ib*Rb-Vbe=0\"\n", + "Beta=100##voltage gain at T1=25 degree celsius\n", + "Ib=(Vcc-Vbe)/Rb##since Vcc-Ib*Rb-Vbe=0\n", + "Ic=Beta*Ib#\n", + "print \"\\n Therefore Ic=%.1f mA \\n\"%(Ic*1e3)\n", + "print \"Apply KVL to the collector side Vcc-Ic*Rc-Vce=0\"\n", + "Vce=Vcc-Ic*Rc##since Vcc-Ic*Rc-Vce=0\n", + "print \"\\n Therefore Vce=%.2f V \\n\"%(Vce)\n", + "Beta=125##voltage gain at T1=25 degree celsius\n", + "Ic1=Beta*Ib#\n", + "Vce1=Vcc-Ic1*Rc##since Vcc-Ic*Rc-Vce=0\n", + "print \"\\n At 75 degree celsius Vce=%.3f\\n\"%(Vce1)\n", + "Ic_change=(Ic1-Ic)*100/Ic##percentage in Ic \n", + "print \"\\n change in Ic=%.0f %% (an increase)\\n\"%(Ic_change)\n", + "Vce_change=(Vce1-Vce)*100/Vce##percentage in Vce\n", + "print \"\\n change in Vce=%.2f %% (a decrease) \\n\"%(Vce_change)" + ] + } + ], + "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 +} diff --git a/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter6.ipynb b/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter6.ipynb new file mode 100644 index 00000000..ab527934 --- /dev/null +++ b/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter6.ipynb @@ -0,0 +1,298 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 6 Power control devices" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 6_1 PG-6.15" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Therefore peak value of the input voltage is 28.2843 V \n", + "\n", + "\n", + " Therefore forward and reverse blocking voltge of SCR>28.2843 V \n", + "\n", + "\n", + " Vl_peak=26.5843 V \n", + "\n", + "\n", + " Il_peak=0.8861 A \n", + "\n", + "\n", + " rms value of current flowing through the SCR is 0.443 A \n", + "\n", + "\n", + " voltage which cause SCR to switch off is 1.85 V \n", + "\n" + ] + } + ], + "source": [ + "from math import sqrt\n", + "Es=20##rms value of the supply voltage \n", + "Ep=sqrt(2)*Es##peak value\n", + "print \"\\n Therefore peak value of the input voltage is %.4f V \\n\"%(Ep)\n", + "print \"\\n Therefore forward and reverse blocking voltge of SCR>%.4f V \\n\"%(Ep)\n", + "Rl=30##load resistance\n", + "Ih=5e-3##holding current\n", + "Vtm=1.7##state voltage drop\n", + "Vl_peak=Ep-Vtm#\n", + "print \"\\n Vl_peak=%.4f V \\n\"%(Vl_peak)\n", + "Il_peak=Vl_peak/Rl#\n", + "print \"\\n Il_peak=%.4f A \\n\"%(Il_peak)\n", + "Il_rms=Il_peak/2#\n", + "print \"\\n rms value of current flowing through the SCR is %.3f A \\n\"%(Il_rms)\n", + "#SCR current rating should be greater than Il_rms\n", + "Es_off=Vtm+Ih*Rl##voltage which cause SCR to switch off\n", + "print \"\\n voltage which cause SCR to switch off is %.2f V \\n\"%(Es_off)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 6_2 PG-6.18" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Refer to the figure-6.19 shown\n", + "\n", + " Position of R2 at top to trigger at 10 degree \n", + "\n", + " Therefore R1=4.6894 kohm \n", + "\n", + " We use R1=4.7 kohm standard value \n", + "\n", + "\n", + " Position of R2 at bottom to trigger at 90 degree \n", + "\n", + " Therefore R3=252.22 ohm \n", + "\n", + " We use R3=270 ohm standard value \n", + "\n", + "\n", + " Therefore R2=1.18 kohm \n", + "\n", + " We use the pot=1.5 kohm standard value for precise judgement\n" + ] + } + ], + "source": [ + "print \"Refer to the figure-6.19 shown\"\n", + "Es=25##rms value of the supply voltage \n", + "Vd1=0.7##diode drop\n", + "Vg=0.75##SCR triggering voltage\n", + "alpha1=10##minimum phase angle \n", + "alpha2=90##maximum phase angle\n", + "Ep=sqrt(2)*Es##peak value\n", + "from math import sin, pi\n", + "Es1=Ep*sin(alpha1*pi/180)\n", + "Es2=Ep*sin(alpha2*pi/180)\n", + "Vt=Vd1+Vg##voltage across R3\n", + "print \"\\n Position of R2 at top to trigger at 10 degree \"\n", + "Vr1=Es1-Vt##since Vt=Vr2+Vr3\n", + "#I1_min>>Ig ie 200 microA\n", + "I1_min=1e-3#\n", + "R1=Vr1/I1_min#\n", + "print \"\\n Therefore R1=%.4f kohm \\n\"%(R1*1e-3)\n", + "print \" We use R1=4.7 kohm standard value \\n\\n\"\n", + "R1=4.7e3##standard value R1\n", + "x=Vt/I1_min##x=R2+R3\n", + "print \" Position of R2 at bottom to trigger at 90 degree \"\n", + "Vr3=Vt#\n", + "I1=Es2/(R1+x)#\n", + "R3=Vr3/I1#\n", + "print \"\\n Therefore R3=%.2f ohm \\n\"%(R3)\n", + "print \" We use R3=270 ohm standard value \\n\"\n", + "R3=270##standard value R3\n", + "R2=x-R3##since x=R2+R3\n", + "print \"\\n Therefore R2=%.2f kohm \\n\"%(R2*1e-3)\n", + "print \" We use the pot=1.5 kohm standard value for precise judgement\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 6_3 PG-6.33" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Therefore frequency of oscillation is 2.305 kHz \n", + "\n" + ] + } + ], + "source": [ + "Rt=5##resistance in kohm\n", + "Ct=0.1##capacitance in micro farad\n", + "n=0.58##standoff ratio\n", + "from math import log\n", + "T=Rt*Ct*log(1/(1-n))##time period in seconds\n", + "fo=1/T##frequency of oscillations\n", + "fo=fo#\n", + "print \"\\n Therefore frequency of oscillation is %.3f kHz \\n\"%(fo)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 6_4 PG-6.34" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "We know that Vp=Vbb(1-exp(-T/(Rt*Ct)))\n", + "\n", + " Therefore frequency of oscillation is 1.218 kHz \n", + "\n" + ] + } + ], + "source": [ + "Vbb=20#\n", + "Ct=0.1e-6##capacitance\n", + "Rt=10e3##resistance \n", + "Vv=1.5##valley potential\n", + "Vd=0.7##cut in voltage of diode \n", + "n=0.6##stand off ratio\n", + "Vp=n*Vbb+Vd#\n", + "print \"We know that Vp=Vbb(1-exp(-T/(Rt*Ct)))\"\n", + "x=(Vp-Vv)/Vbb##x=(1-exp(-T/(Rt*Ct))\n", + "y=1-x##y=exp(-T/(Rt*Ct)\n", + "z=Rt*Ct#\n", + "T=-log(y)*z##time period\n", + "fo=1/T##frequency of oscillations\n", + "fo=fo*1e-3#\n", + "print \"\\n Therefore frequency of oscillation is %.3f kHz \\n\"%(fo)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 6_5 PG-6.34" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " For turn ON\n", + "\n", + " Rt<(Vbb-Vp)/Ip\n", + "\n", + " therefore Rt<342857 0hm \n", + "\n", + " \n", + " For turn OFF\n", + "\n", + " Rt>(Vbb-Vv)/Iv\n", + "\n", + " therefore Rt>1947 0hm \n", + "\n", + "\n", + " So range of Rt is 1.947 kohm< Rt <342.86 kohm \n", + "\n" + ] + } + ], + "source": [ + "Vbb=30#\n", + "Vv=0.8##valley potential\n", + "Iv=15e-3\n", + "Vd=0.7##cut in voltage of diode \n", + "n=0.33##stand off ratio\n", + "Vp=18#\n", + "Ip=35e-6#\n", + "print \" For turn ON\"\n", + "print \"\\n Rt<(Vbb-Vp)/Ip\"\n", + "Rt=(Vbb-Vp)/Ip#\n", + "print \"\\n therefore Rt<%.0f 0hm \\n\"%(Rt)\n", + "print \" \\n For turn OFF\"\n", + "print \"\\n Rt>(Vbb-Vv)/Iv\"\n", + "Rt1=(Vbb-Vv)/Iv\n", + "print \"\\n therefore Rt>%.0f 0hm \\n\"%(Rt1)\n", + "print \"\\n So range of Rt is %.3f kohm< Rt <%.2f kohm \\n\"%(Rt1*1e-3,Rt*1e-3)" + ] + } + ], + "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 +} diff --git a/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter7.ipynb b/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter7.ipynb new file mode 100644 index 00000000..38a12f90 --- /dev/null +++ b/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter7.ipynb @@ -0,0 +1,143 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 7 Junction field effect transistors" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 7_1 PG-7.13" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "For Vgs =0 V\n", + "\n", + " Idss=10 mA \n", + "\n", + "\n", + " For Vgs =-1 V\n", + "\n", + " Idss=5.625 mA \n", + "\n", + "\n", + " For Vgs =-4 V\n", + "\n", + " Idss=0 A \n", + "\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "Idss=10e-3#\n", + "Vgs_off=-4#\n", + "print\"For Vgs =0 V\"\n", + "Vgs=0#\n", + "Id=Idss#\n", + "print\"\\n Idss=%.0f mA \\n\"%(Id*1e3)\n", + "print\"\\n For Vgs =-1 V\"\n", + "Vgs=-1#\n", + "Id=Idss*(1-Vgs/Vgs_off)**2#\n", + "print\"\\n Idss=%.3f mA \\n\"%(Id*1e3)\n", + "print\"\\n For Vgs =-4 V\"\n", + "Vgs=-4#\n", + "Id=Idss*(1-Vgs/Vgs_off)**2#\n", + "print\"\\n Idss=%.0f A \\n\"%(Id)\n", + "#In the book this example is mention as Example-4_3\n", + "#but it is the first example in this chapter so I've taken this as Example-7_1 " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 7_2 PG-7.17" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " For Yfs_max=4000e-6\n", + "\n", + " Change in Id is +/- 0.2 mA \n", + "\n", + "\n", + " Voltage gain is 20 \n", + "\n", + " For Yfs_min=1000e-6\n", + "\n", + " Change in Id is +/- 0.05 mA \n", + "\n", + "\n", + " Voltage gain is 5 \n", + "\n" + ] + } + ], + "source": [ + "Vi=50e-3#input supply\n", + "Rd=5e3#\n", + "Yfs_max=4000e-6#\n", + "Yfs_min=1000e-6#\n", + "print \" For Yfs_max=4000e-6\"\n", + "Id_delta=Yfs_max*Vi#\n", + "print\"\\n Change in Id is +/- %.1f mA \\n\"%(Id_delta*1e3)\n", + "Vo=Id_delta*Rd##output voltage \n", + "Av=Vo/Vi##voltge gain\n", + "print\"\\n Voltage gain is %.0f \\n\"%(Av)\n", + "print \" For Yfs_min=1000e-6\"\n", + "Id_delta=Yfs_min*Vi#\n", + "print\"\\n Change in Id is +/- %.2f mA \\n\"%(Id_delta*1e3)\n", + "Vo=Id_delta*Rd##output voltage \n", + "Av=Vo/Vi##voltge gain\n", + "print\"\\n Voltage gain is %.0f \\n\"%(Av)\n", + "#In the book this example is mention as Example-7_1\n", + "#but it is the second example in this chapter so I've taken this as Example-7_2 " + ] + } + ], + "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 +} diff --git a/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter8.ipynb b/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter8.ipynb new file mode 100644 index 00000000..94ae286c --- /dev/null +++ b/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter8.ipynb @@ -0,0 +1,162 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 8 Amplifiers" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex8_1 PG-8.3" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Therefore gain in decibel=40 dB \n", + "\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from math import log10\n", + "Av=100##voltage gain\n", + "G=20*log10(Av)##gain in decibel\n", + "print \"\\n Therefore gain in decibel=%.0f dB \\n\"%(G)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex8_2 PG-8.5" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Therefore maximum voltage gain=282.84 \n", + "\n" + ] + } + ], + "source": [ + "from math import sqrt\n", + "Av=200##gain at cut-off frequencies\n", + "Avm=Av*sqrt(2)##maximum voltage gain\n", + "print \"\\n Therefore maximum voltage gain=%.2f \\n\"%(Avm)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex8_3 PG-8.6" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Therefore the gain of the amplifier at f = 20Hz is 2 \n", + "\n" + ] + } + ], + "source": [ + "Amid=100##mid-band gain\n", + "f1=1e3##loer cut-off frequency\n", + "f=20##frquency at which the gain of the amplifier should be found\n", + "A=Amid/sqrt(1+(f1/f)**2)\n", + "print \"\\n Therefore the gain of the amplifier at f = 20Hz is %.0f \\n\"%(A)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex8_4 PG-8.7" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Therefore the gain of the amplifier at f=100kHz is 55.47 \n", + "\n" + ] + } + ], + "source": [ + "G=200##3dB gain\n", + "f2=20e3##higher cut-off frequency\n", + "Amid=G*sqrt(2)##mid-band gain\n", + "f=100e3##frquency at which the gain of the amplifier should be found\n", + "A=Amid/sqrt(1+(f/f2)**2)\n", + "print \"\\n Therefore the gain of the amplifier at f=100kHz is %.2f \\n\"%(A)\n", + "#in the book the answer for the gain is 115.47 which is wrong \n", + "#the corect answer is 55.47" + ] + } + ], + "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 +} diff --git a/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter9.ipynb b/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter9.ipynb new file mode 100644 index 00000000..75e94453 --- /dev/null +++ b/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/Chapter9.ipynb @@ -0,0 +1,547 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 9 Oscillators" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 9_1 PG-9.13" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Therefore frequency of oscillation is 29.414 Hz \n", + "\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from math import sqrt, pi\n", + "R=4.7e3 # each resistance of the RC phase shift oscillator\n", + "C=0.47e-6 # each capacitance of the RC phase shift oscillator\n", + "f=1/(2*pi*sqrt(6)*R*C) # \n", + "print \"\\n Therefore frequency of oscillation is %.3f Hz \\n\"%(f)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 9_2 PG-9.13" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " each resistance of the RC phase shift oscillator is 72.194 kohm \n", + "\n", + "\n", + " R1=1 kohm \n", + "\n", + "\n", + " Rf=29 kohm \n", + "\n", + "the design circuit is shown \n" + ] + } + ], + "source": [ + "f=900e3 # frequency of oscillation\n", + "C=1e-12 # each capacitance of the RC phase shift oscillator\n", + "R=1/(2*pi*sqrt(6)*f*C) # \n", + "print \"\\n each resistance of the RC phase shift oscillator is %.3f kohm \\n\"%(R*1e-3)\n", + "G=29 # opamp gain Rf/R1=29\n", + "R1=1e3 # \n", + "print \"\\n R1=%.0f kohm \\n\"%(R1*1e-3)\n", + "Rf=G*R1 # \n", + "print \"\\n Rf=%.0f kohm \\n\"%(Rf*1e-3)\n", + "print \"the design circuit is shown \"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 9_3 PG-9.14" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " each resistance of the RC phase shift oscillator is 649.747 ohm \n", + "\n", + " The standard value of R=680 ohm\n" + ] + } + ], + "source": [ + "f=1e3 # frequency of oscillation\n", + "C=0.1e-6 # We choose the value of each capacitance of the RC phase shift oscillator\n", + "R=1/(2*pi*sqrt(6)*f*C) # \n", + "print \"\\n each resistance of the RC phase shift oscillator is %.3f ohm \\n\"%(R)\n", + "print \" The standard value of R=680 ohm\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 9_4 PG-9.14" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Therefore frequency of oscillation is 129.949 Hz \n", + "\n" + ] + } + ], + "source": [ + "R=5e3 # each resistance of the RC phase shift oscillator\n", + "C=0.1e-6 # each capacitance of the RC phase shift oscillator\n", + "f=1/(2*pi*sqrt(6)*R*C) # \n", + "print \"\\n Therefore frequency of oscillation is %.3f Hz \\n\"%(f)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 9_5 PG-9.20" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "We know that for a colpitts oscillator f=1/(2*pi*sqrt(L*Ceq))\n", + "\n", + " Ceq = 1.01321 nF \n", + "\n", + "\n", + " Therefore C = 2.02642 nF \n", + "\n" + ] + } + ], + "source": [ + "L=100e-6 # \n", + "f=500e3 # \n", + "print \"We know that for a colpitts oscillator f=1/(2*pi*sqrt(L*Ceq))\"\n", + "Ceq=1/(f**2*4*pi**2*L)\n", + "Ceq1=Ceq*1e9 # \n", + "print \"\\n Ceq = %.5f nF \\n\"%(Ceq1)\n", + " # C1=C2=C\n", + "C=Ceq1*2 # Ceq=(C*C)/(C+C)\n", + "print \"\\n Therefore C = %.5f nF \\n\"%(C)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 9_6 PG-9.20" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Therefore frequency of oscillation is 1.927 MHz \n", + "\n" + ] + } + ], + "source": [ + "L=50e-6 # \n", + "C1=150e-12 # \n", + "C2=1.5e-9 # \n", + "Ceq=(C1*C2)/(C1+C2) # \n", + "f=1/(2*pi*sqrt(L*Ceq)) # \n", + "f=f*1e-6 # \n", + "print \"\\n Therefore frequency of oscillation is %.3f MHz \\n\"%(f)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 9_7 PG-9.21" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Therefore L=202.642 micro H \n", + "\n" + ] + } + ], + "source": [ + "C=1000e-12 # \n", + "C1=C # \n", + "C2=C # \n", + "f=500e3 # \n", + "Ceq=(C1*C2)/(C1+C2) # \n", + "L=1/(4*pi**2*f**2*Ceq) # since f=1/(2*pi*sqrt(L*Ceq)) # \n", + "L=L*1e6 # \n", + "print \"\\n Therefore L=%.3f micro H \\n\"%(L)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 9_8 PG-9.21" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Therefore inductor L = 7.6 microH \n", + "\n" + ] + } + ], + "source": [ + "C1=100e-12 # \n", + "C2=50e-12 # \n", + "f=10e6 # \n", + "Ceq=(C1*C2)/(C1+C2) # \n", + "L=1/(4*pi**2*f**2*Ceq) # f=1/(2*pi*sqrt(L*Ceq)) # \n", + "L=L*1e6 # \n", + "print \"\\n Therefore inductor L = %.1f microH \\n\"%(L)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 9_9 PG-9.24" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Therefore frequency of oscillation is 9189 Hz \n", + "\n" + ] + } + ], + "source": [ + "L1=0.5e-3 # \n", + "L2=1e-3 # \n", + "C=0.2e-6 # \n", + "Leq=L1+L2 # total inductance for Hartley oscillator\n", + "f=1/(2*pi*sqrt(Leq*C)) # \n", + "print \"\\n Therefore frequency of oscillation is %.f Hz \\n\"%(f)\n", + "# there is a slight difference between the answer given in the book\n", + "# and the and output in the book they have taken the approximate value " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 9_10 PG-9.24" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "For f=fmax=2050kHz\n", + "\n", + " C=2.98 pF \n", + "\n", + "\n", + " For f=fmin=950kHz\n", + "\n", + " C=13.89 pF \n", + "\n", + "\n", + " Hence C must be varied between 2.98 pF and 13.89 pF \n", + "\n" + ] + } + ], + "source": [ + "L1=2e-3 # \n", + "L2=20e-6 # \n", + "Leq=L1+L2 # total inductance for Hartley oscillator\n", + "fmax=2050e3 # maximum frequency\n", + "fmin=950e3 # minimum frequency\n", + "print \"For f=fmax=2050kHz\"\n", + "f=fmax # \n", + "C=1/(4*pi**2*f**2*Leq) # since f=1/(2*pi*sqrt(Leq*C)) # \n", + "C=C*1e12\n", + "print \"\\n C=%.2f pF \\n\"%(C)\n", + "print \"\\n For f=fmin=950kHz\"\n", + "f=fmin # \n", + "C1=1/(4*pi**2*f**2*Leq) # since f=1/(2*pi*sqrt(Leq*C)) # \n", + "C1=C1*1e12\n", + "print \"\\n C=%.2f pF \\n\"%(C1)\n", + "print \"\\n Hence C must be varied between %.2f pF and %.2f pF \\n\"%(C,C1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 9_11 PG-9.25" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "For f=fmax=2.5MHz\n", + "\n", + " C=2.006 pF \n", + "\n", + "\n", + " For f=fmin=1MHz\n", + "\n", + " C=12.540 pF \n", + "\n", + "\n", + " Hence C must be varied between 2.006 pF and 12.54 pF \n", + "\n" + ] + } + ], + "source": [ + "L1=20e-6 # \n", + "L2=2e-3\n", + "Leq=L1+L2 # total inductance for Hartley oscillator\n", + "fmax=2.5e6 # maximum frequency\n", + "fmin=1e6 # minimum frequency\n", + "print \"For f=fmax=2.5MHz\"\n", + "f=fmax # \n", + "C=1/(4*pi**2*f**2*Leq) # since f=1/(2*pi*sqrt(Leq*C)) # \n", + "C=C*1e12\n", + "print \"\\n C=%.3f pF \\n\"%(C)\n", + "print \"\\n For f=fmin=1MHz\"\n", + "f=fmin # \n", + "C1=1/(4*pi**2*f**2*Leq) # since f=1/(2*pi*sqrt(Leq*C)) # \n", + "C1=C1*1e12\n", + "print \"\\n C=%.3f pF \\n\"%(C1)\n", + "print \"\\n Hence C must be varied between %.3f pF and %.2f pF \\n\"%(C,C1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 9_12 PG-9.32" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " series resonant frequency for crystal oscillator fs=0.863 MHz \n", + "\n", + "\n", + " parallel resonant frequency for crystal oscillator=0.899 MHz \n", + "\n", + "\n", + " increase in parallel frequency fp=4.163 % \n", + "\n", + "\n", + " Therefore Q factor=433.861 \n", + "\n" + ] + } + ], + "source": [ + "L=0.4 # \n", + "C=0.085e-12 # \n", + "R=5e3 # \n", + "Cm=1e-12 # \n", + "f=1/(2*pi*sqrt(L*C)) # series resonant frequency for crystal oscillator\n", + "print \"\\n series resonant frequency for crystal oscillator fs=%.3f MHz \\n\"%(f*1e-6)\n", + "Ceq=C*Cm/(C+Cm) # \n", + "fp=1/(2*pi*sqrt(L*Ceq)) # parallel resonant frequency for crystal oscillator\n", + "print \"\\n parallel resonant frequency for crystal oscillator=%.3f MHz \\n\"%(fp*1e-6)\n", + "increase=(fp-f)/f*100 # \n", + "print \"\\n increase in parallel frequency fp=%.3f %% \\n\"%(increase)\n", + "w=2*pi*f # \n", + "Q=w*L/R # Q factor\n", + "print \"\\n Therefore Q factor=%.3f \\n\"%(Q)\n", + "# in the book fs=0.856MHz is wrong,correct answer is fs=.863MHz\n", + "# in the book 1Jncrease=5.023% is wrong the correct answer is 1Jncrease=4.163%\n", + "# in the Q=430.272 which is wrong the correct answer is Q=433.861" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 9_13 PG-9.32" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " series resonant frequency for crystal oscillator fs=1.125 MHz \n", + "\n", + "\n", + " parallel resonant frequency for crystal oscillator=1.128 MHz \n", + "\n" + ] + } + ], + "source": [ + "C=0.01e-12 # \n", + "Cm=2e-12 # \n", + "L=2 # \n", + "R=2e3 # \n", + "fs=1/(2*pi*sqrt(L*C)) # series resonant frequency for crystal oscillator\n", + "print \"\\n series resonant frequency for crystal oscillator fs=%.3f MHz \\n\"%(fs*1e-6)\n", + "Ceq=C*Cm/(C+Cm) # \n", + "fp=1/(2*pi*sqrt(L*Ceq)) # parallel resonant frequency for crystal oscillator\n", + "print \"\\n parallel resonant frequency for crystal oscillator=%.3f MHz \\n\"%(fp*1e-6)" + ] + } + ], + "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 +} diff --git a/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/screenshots/freqSpec.png b/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/screenshots/freqSpec.png Binary files differnew file mode 100644 index 00000000..94fe7821 --- /dev/null +++ b/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/screenshots/freqSpec.png diff --git a/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/screenshots/freqSpectrum.png b/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/screenshots/freqSpectrum.png Binary files differnew file mode 100644 index 00000000..204d772e --- /dev/null +++ b/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/screenshots/freqSpectrum.png diff --git a/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/screenshots/waveformOfModulateSigna.png b/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/screenshots/waveformOfModulateSigna.png Binary files differnew file mode 100644 index 00000000..afec2193 --- /dev/null +++ b/Basic_Electronics_by_A._P._Godse_and_U._A._Bakshi/screenshots/waveformOfModulateSigna.png |