summaryrefslogtreecommitdiff
path: root/Antenna_and_Wave_Propagation_by_S._Wali/chapter6.ipynb
diff options
context:
space:
mode:
authorThomas Stephen Lee2015-08-28 16:53:23 +0530
committerThomas Stephen Lee2015-08-28 16:53:23 +0530
commitdb0855dbeb41ecb8a51dde8587d43e5d7e83620f (patch)
treeb95975d958cba9af36cb1680e3f77205354f6512 /Antenna_and_Wave_Propagation_by_S._Wali/chapter6.ipynb
parent5a86a20b9de487553d4ef88719fb0fd76a5dd6a7 (diff)
downloadPython-Textbook-Companions-db0855dbeb41ecb8a51dde8587d43e5d7e83620f.tar.gz
Python-Textbook-Companions-db0855dbeb41ecb8a51dde8587d43e5d7e83620f.tar.bz2
Python-Textbook-Companions-db0855dbeb41ecb8a51dde8587d43e5d7e83620f.zip
add books
Diffstat (limited to 'Antenna_and_Wave_Propagation_by_S._Wali/chapter6.ipynb')
-rw-r--r--Antenna_and_Wave_Propagation_by_S._Wali/chapter6.ipynb483
1 files changed, 483 insertions, 0 deletions
diff --git a/Antenna_and_Wave_Propagation_by_S._Wali/chapter6.ipynb b/Antenna_and_Wave_Propagation_by_S._Wali/chapter6.ipynb
new file mode 100644
index 00000000..0debea51
--- /dev/null
+++ b/Antenna_and_Wave_Propagation_by_S._Wali/chapter6.ipynb
@@ -0,0 +1,483 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e5e51717065f48c86dca50bb80c877a8dccdac1a1049a8aa680cfb5df955894e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter6, Antenna Arrays"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No. 6.2.1, page 6-13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "n=2 #(No. of point source)\n",
+ "#E=E0*{exp(%i*pi/2)-exp(-%i*si/2)} where exp(-%i*si)=-1\n",
+ "#si=Beta*d*cosd(fi)=2*pi*cosd(fi)\n",
+ "#E=2*%i*E0*sind(pi*cosd(fi)) But 2*%i*E0=1\n",
+ "from numpy import arange, sin, pi, cos, nditer\n",
+ "fi=arange(0,331,30) #degree(angle)\n",
+ "En=sin(pi*cos(fi*pi/180)) #Normalized field\n",
+ "print \" fi :\\t\",\n",
+ "for x in fi:\n",
+ " print x,\"\\t\",\n",
+ "print \"\"\n",
+ "print \"|En| :\\t\",\n",
+ "for x in abs(En):\n",
+ " print \"%0.2f\"%x,\"\\t\","
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " fi :\t0 \t30 \t60 \t90 \t120 \t150 \t180 \t210 \t240 \t270 \t300 \t330 \t\n",
+ "|En| :\t0.00 \t0.41 \t1.00 \t0.00 \t1.00 \t0.41 \t0.00 \t0.41 \t1.00 \t0.00 \t1.00 \t0.41 \t"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No. 6.2.2, page 6-16"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "n=2 #(No. of point source)\n",
+ "#E=E0*{exp(%i*(pi/4+si/2))-exp(-%i*(pi/4+si/2))} as exp(%i*theta)+exp(-%i*theta)=2*cos(theta)\n",
+ "#E=2*E0*cos(pi/4+si/2) \n",
+ "#si=Beta*d*cosd(fi)=2*pi*cosd(fi)\n",
+ "#En=cos(pi/4+Beta*d*cosd(pi/4)) But 2*E0=1\n",
+ "from numpy import arange, sin, pi, cos, nditer\n",
+ "fi=arange(0,331,30) #degree(angle)\n",
+ "En=cos(pi/4+pi/4*cos(fi*pi/180)) #Normalized field\n",
+ "print \" fi :\\t\",\n",
+ "for x in fi:\n",
+ " print x,\"\\t\",\n",
+ "print \"\"\n",
+ "print \"|En| :\\t\",\n",
+ "for x in abs(En):\n",
+ " print \"%0.3f\"%x,\"\\t\","
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " fi :\t0 \t30 \t60 \t90 \t120 \t150 \t180 \t210 \t240 \t270 \t300 \t330 \t\n",
+ "|En| :\t0.000 \t0.105 \t0.383 \t0.707 \t0.924 \t0.994 \t1.000 \t0.994 \t0.924 \t0.707 \t0.383 \t0.105 \t"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No. 6.2.3, page 6-18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#E=cos(fi)+sin(fi)<si \n",
+ "#En=cos(pi/4+pi*cosd(fi)) as 2*E0=1\n",
+ "from numpy import arange, sin, pi, cos, nditer\n",
+ "fi=arange(0,331,30) #degree(angle)\n",
+ "si=pi/2*(cos(fi*pi/180)+1) #(Phase)\n",
+ "En=cos(pi/4+pi*cos(fi*pi/180)) #Normalized field\n",
+ "print \" fi :\\t\",\n",
+ "for x in fi:\n",
+ " print x,\"\\t\",\n",
+ "print \"\"\n",
+ "print \"|En| :\\t\",\n",
+ "for x in abs(En):\n",
+ " print \"%0.3f\"%x,\"\\t\",\n",
+ "#Answer in the book is wrong."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " fi :\t0 \t30 \t60 \t90 \t120 \t150 \t180 \t210 \t240 \t270 \t300 \t330 \t\n",
+ "|En| :\t0.707 \t0.934 \t0.707 \t0.707 \t0.707 \t0.356 \t0.707 \t0.356 \t0.707 \t0.707 \t0.707 \t0.934 \t"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No. 6.6.1, page 6-34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import degrees, acos\n",
+ "n=80.0 #(no. of elements)\n",
+ "N=1.0 #for first null\n",
+ "#d=lamda/2 (spacing)\n",
+ "dBYlamda=1.0/2 #(spacing/wavelength)\n",
+ "fi01=degrees(acos(N/n/dBYlamda)) #degree(Angle)\n",
+ "Null_1st=(pi/2*180/pi)-fi01 #degree(First Null)\n",
+ "print \"Location of 1st null from maxima = %0.2f degree \"%Null_1st "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Location of 1st null from maxima = 1.43 degree \n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.2, page 6-34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import degrees, acos\n",
+ "import numpy as np\n",
+ "n=4.0 #(No. of elements)\n",
+ "#d=lamda/2 (Spacing)\n",
+ "dBYlamda=1.0/2 #(Spacing/wavelength)\n",
+ "alfa=0 #degree(angle)\n",
+ "N=1.0 #(For first null)\n",
+ "print \"Part (i) :\" \n",
+ "theta01=np.array([degrees(acos(+N/2)),degrees(acos(-N/2))]) #degree(Angle)\n",
+ "N=2 #(For second null)\n",
+ "theta02=np.array([degrees(acos(+N/2)), degrees(acos(-N/2))]) #degree(angle)\n",
+ "#N=3 #not possible as N/2 is greater than 1\n",
+ "print \"\\tNull directions for N=1 : theta01 =\" ,theta01 ,\"degree\"\n",
+ "print \"\\tNull directions for N=2 : theta02 =\" ,theta02 ,\"degree\"\n",
+ "print \"Part (ii):\" \n",
+ "m=0 #for maxima\n",
+ "theta_m=degrees(acos(m/dBYlamda)) #degree(angle)\n",
+ "print \"\\tDirection of maxima : theta_m = %0.2f degree \" %theta_m\n",
+ "print \"Part (iii):\" \n",
+ "S=1 #for side lobe maxima\n",
+ "#S=2 & onwards not possible\n",
+ "theta_S=np.array([degrees(acos((2*S+1)/2/n/dBYlamda)), degrees(acos(-(2*S+1)/2/n/dBYlamda))]) #degree(angle for side lobe)\n",
+ "print \"\\tSide lobe maxima : theta_S =\",theta_S ,\"degree \"\n",
+ "print \"Part (iv):\" \n",
+ "HPBW=2*(90-degrees(acos(1.391/np.pi/n/dBYlamda))) #degree(HPBW)\n",
+ "print \"\\tHPBW = %0.2f degree \" %HPBW \n",
+ "print \"Part (v):\" \n",
+ "FNBW=2*(90-degrees(acos(1/n/dBYlamda))) #degree(FNBW)\n",
+ "print \"\\tFNBW = %0.2f degree \"%FNBW \n",
+ "print \"Part (vi):\" \n",
+ "SLL=-13.46 #dB##for isotropic sources array(Side lobe level)\n",
+ "print \"\\tSide lobe level = %0.2f dB \"%SLL \n",
+ "# Answer wrong in the textbook."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part (i) :\n",
+ "\tNull directions for N=1 : theta01 = [ 60. 120.] degree\n",
+ "\tNull directions for N=2 : theta02 = [ 0. 180.] degree\n",
+ "Part (ii):\n",
+ "\tDirection of maxima : theta_m = 90.00 degree \n",
+ "Part (iii):\n",
+ "\tSide lobe maxima : theta_S = [ 60. 180.] degree \n",
+ "Part (iv):\n",
+ "\tHPBW = 25.58 degree \n",
+ "Part (v):\n",
+ "\tFNBW = 60.00 degree \n",
+ "Part (vi):\n",
+ "\tSide lobe level = -13.46 dB \n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No. 6.8.1, page 6-41"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import numpy as np\n",
+ "from __future__ import division\n",
+ "n=4 #(No. of elements)\n",
+ "#d=lamda/2 (spacing)\n",
+ "dBYlamda=1/2 #(spacing/wavelength)\n",
+ "theta=0 #degree(angle)\n",
+ "#Beta=2*pi/lamda\n",
+ "print \"Part (i):\" \n",
+ "Beta_into_lamda=2*np.pi #(Coefficient)\n",
+ "#alfa=-Beta*d\n",
+ "alfa=-Beta_into_lamda*dBYlamda #radian(Progressive phase shift)\n",
+ "alfa=alfa*180/np.pi #degree(Progressive phase shift)\n",
+ "print \"\\tProgressive phase shift = %0.2f degree \"%alfa \n",
+ "print \"Part (ii):\" \n",
+ "N=range(1,4) #as N=4 is not allowed\n",
+ "theta01=degrees(acos(1-N[0]/n/dBYlamda)) #degree(angle)\n",
+ "theta02=degrees(acos(1-N[1]/n/dBYlamda)) #degree(angle)\n",
+ "theta03=degrees(acos(1-N[2]/n/dBYlamda)) #degree(angle)\n",
+ "print \"\\tNull directions, theta01, theta02 & theta03 are %0.2f, %0.2f & %0.2f degree \"%(theta01,theta02,theta03) \n",
+ "print \"Part (iii):\" \n",
+ "m=range(0,2) #as m=2 & onwards is not allowed\n",
+ "theta0=degrees(acos(1-m[0]/dBYlamda)) #degree(angle)\n",
+ "theta1=degrees(acos(1-m[1]/dBYlamda)) #degree(angle)\n",
+ "print \"\\tMaxima directions, theta0, theta1 are %0.2f & %0.2f degree \"%(theta0,theta1) \n",
+ "print \"Part (iv):\" \n",
+ "FNBW=2*degrees(acos(1-1/n/dBYlamda)) #degree(FNBW)\n",
+ "print \"\\tFNBW = %0.2f degree \"%(FNBW) \n",
+ "print \"Part (v):\" \n",
+ "HPBW=2*degrees(acos(1-1.391/n/np.pi/dBYlamda)) #degree(HPBW)\n",
+ "print \"\\tHPBW = %0.2f degree : \"%HPBW "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part (i):\n",
+ "\tProgressive phase shift = -180.00 degree \n",
+ "Part (ii):\n",
+ "\tNull directions, theta01, theta02 & theta03 are 60.00, 90.00 & 120.00 degree \n",
+ "Part (iii):\n",
+ "\tMaxima directions, theta0, theta1 are 0.00 & 180.00 degree \n",
+ "Part (iv):\n",
+ "\tFNBW = 120.00 degree \n",
+ "Part (v):\n",
+ "\tHPBW = 77.73 degree : \n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No. 6.8.2, page 6-43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "n=16 #no. of point source\n",
+ "#d=lamda/4 (spacing)\n",
+ "dBYlamda=1/4 #(Spacing/wavelength)\n",
+ "HPBW=2*degrees(acos(1-1.391/n/np.pi/dBYlamda)) #degree(HPBW)\n",
+ "print \"HPBW = %0.2f degree\" %HPBW"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "HPBW = 54.43 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No. 6.10.1, page 6-50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "n=10 #no. of elements\n",
+ "#d=lamda/4 (spacing)\n",
+ "dBYlamda=1/4 #/(Spacing/wavelength)\n",
+ "#Broadside array\n",
+ "D=2*n*dBYlamda #unitless(Directivity)\n",
+ "D=10*np.log10(D) #dB(Directivity)\n",
+ "print \"Directivity for broadside array = %0.2f dB \" %D\n",
+ "#Endfire array\n",
+ "D=4*n*dBYlamda #unitless(Directivity)\n",
+ "D=10*np.log10(D) #dB(Directivity)\n",
+ "print \"Directivity for Ordinary endfire array = %0.2f dB \"%D "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Directivity for broadside array = 6.99 dB \n",
+ "Directivity for Ordinary endfire array = 10.00 dB \n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No. 6.10.2, page 6-50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "D=20 #dB(Directivity)\n",
+ "#d=lamda/4 (spacing)\n",
+ "dBYlamda=1/4 #(spacing/wavelength)\n",
+ "D=10**(D/10) #unitless(Directivity)\n",
+ "n=D/4/dBYlamda #no. of elements\n",
+ "print \"(i) No. of elements : \",n \n",
+ "LBYlamda=(n-1)*dBYlamda #(length/wavelength)\n",
+ "print \"(ii) Length of the array is \",(LBYlamda),\"*lamda\" \n",
+ "HPBW=2*degrees(acos(1-1.391/np.pi/n/dBYlamda)) #degree(HPBW)\n",
+ "print \"(iii) HPBW = %0.2f degree \" %HPBW \n",
+ "SLL=-13.46 #dB(Side lobe level)\n",
+ "print \"(iv) SLL = %0.2f dB \" %SLL \n",
+ "Beta_into_lamda=2*np.pi #(temorary calculatuion)\n",
+ "#alfa=-Beta*d #for theta=0\n",
+ "#alfa=Beta*d #for theta=180\n",
+ "alfa1=-Beta_into_lamda*dBYlamda #radian##for theta=0\n",
+ "alfa1=alfa1*180/np.pi #degree(angle)\n",
+ "alfa2=Beta_into_lamda*dBYlamda #radian##for theta=180\n",
+ "alfa2=alfa2*180/np.pi #degree(angle)\n",
+ "print \"(v) Progressive phase shift, \u03b1 for theta equals to 0\u00b0 & 180\u00b0 are : \",(alfa1,alfa2) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i) No. of elements : 100.0\n",
+ "(ii) Length of the array is 24.75 *lamda\n",
+ "(iii) HPBW = 21.60 degree \n",
+ "(iv) SLL = -13.46 dB \n",
+ "(v) Progressive phase shift, \u03b1 for theta equals to 0\u00b0 & 180\u00b0 are : (-90.0, 90.0)\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No. 6.14.1, page 6-74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import symbols, solve\n",
+ "SLL=19.1 #dB(Side Lobe Level)\n",
+ "#d=lamda/2 (spacing)\n",
+ "dBYlamda=1/2 #(Spacing/wavelength)\n",
+ "n=4 #(no. of elements)\n",
+ "r=round(10**(SLL/20)) #(ratio of main lobe to side lobe)\n",
+ "m=n-1 #(degree )\n",
+ "x0 = symbols('x0')\n",
+ "#T3(x0)=r=4*x0**3-3*x0 \n",
+ "T3=4*x0**3-3*x0 -9\n",
+ "#x0=roots([4 0 -3 -r]) #(Coefficient)\n",
+ "x0=solve(T3)\n",
+ "x0=x0[0] #taking real value(Coefficient)\n",
+ "#E4(z)=T3(x)=4*x**3-3*x=4*a1*z**3-3*a1*z+a0*z\n",
+ "#4*a1*z**3=4*x**3 where z**3=(x/x0)**3\n",
+ "a1=4*x0**3/4 #(Coefficient)\n",
+ "#a0*z-3*z*a1=-3*x\n",
+ "a0=(3/x0*a1-3)*x0 #(Coefficient)\n",
+ "print \"Coefficients of array polynomial a1 & a0 are : \",float(a0),\"&\", float(a1)\n",
+ "print \"Relative current amplitudes are :\",round(float(a0/a1),2),\"&\",float(a1/a1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Coefficients of array polynomial a1 & a0 are : 5.625 & 3.375\n",
+ "Relative current amplitudes are : 1.67 & 1.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file