# chapter 04 : Antenna Arrays¶

## Exa 4.3 : page 4.67¶

In [18]:
from math import acos, pi, cos, sqrt, degrees
#given data :
from sympy import symbols
lamda, Ep = symbols('lamda Ep')
d = 3.0/2*lamda
beta = 2*pi/lamda
delta = 0 # for broad side array
theta = pi/2 # for maxima
si = 3*pi/2*cos(theta)
E0 = Ep/sqrt(2) # at half power beam width
#Ep = 2*E0*cos(si/2)
theta = degrees(theta)  # degree
HPBW=2*(90-theta) #in degree
print "(i) HPBW = %0.f degree " %HPBW
# 2nd part is wrong. Some mistake in question as cos(theta) = 13/12 which >1 not possible

(i) HPBW = 19 degree


## Exa 4.4 : page 4.68¶

In [22]:
from math import log10
from sympy import symbols
lamda = symbols('lamda')
#given data :
n=10 #no. of elements
d=lamda/4 #separation in meter
D=2*n/(lamda/d)
Ddb=10*log10(D) #in db
print "For broad side array D = %0.2f db " %Ddb
D=4*n/(lamda/d)
Ddb=10*log10(D) #in db
print "For end fire array D = %0.2f db " %Ddb

For broad side array D = 6.99 db
For end fire array D = 10.00 db


## Exa 4.5 : page 4.68¶

In [32]:
from math import sqrt, pi
#given data :
from sympy import symbols, N
lamda = symbols('lamda')
delta=-90 #in degree
#Formula : HPBW=57.3/(sqrt(L/(2*lambda))) in Degree
n=20 #no. of point sources
d=lamda/4 #in meter
L=(n-1)*d
HPBW=57.3/(sqrt(L/lamda/2)) # in Degree
print "HPBW = %0.2f Degree " %HPBW
D=4*L/lamda #Directivity
print "Directivity = %0.2f " %D
Ae = D*lamda**2/4/pi
print "Effective aperture : Ae =",N(Ae,3)
print "Beam Solid Angle : Omega =",round(Omega,2),"Steradian"
#Note : Answer in the book is not accurate.

HPBW = 37.18 Degree
Directivity = 19.00
Effective aperture : Ae = 1.51*lamda**2
Beam Solid Angle : Omega = 0.66 Steradian


## Exa 4.6 : page 4.69¶

In [34]:
from math import degrees
#given data :
n=8 #no. of half wave dipoles
lamda=100 #in cm
lamda=lamda*10**-2 #in m
d=50 #in cm
d=d*10**-2 #in m
I=0.5 #in A
Rr=73 #in Ohm
Pr=n*I**2*Rr #in Watts
print "Pr = %0.2f Watts " %Pr
print "HPBW = %0.2f degree" % degrees(HPBW)

Pr = 146.00 Watts
HPBW = 14.32 degree


## Exa 4.7 : page 4.69¶

In [36]:
from math import log10
from sympy import symbols, N
lamda = symbols('lamda')
#given data :
n=10 #no. of elements
d=lamda/4 #separation in meter
Do=1.789*4*n*d/lamda
Dodb=10*log10(Do) #in db
print "Do = %0.2f db" %(Dodb)

Do = 12.53 db


## Exa 4.13 : page 4.74¶

In [37]:
from math import sin, pi
#given data :
n=8 #no. of elements
BWFN=45 #in degree
theta=45 #in degree
f=40 #in MHz
f=f*10**6 #in Hz
#Formula : theta=2*asin(2*pi/(n*dr))
dr=(2*pi/n)/sin((theta/2)*(pi/180)) #
c=3*10**8 #speed of light in m/s
lamda=c/f #in m
d=dr*lamda/(2*pi) #in m
print "Distance = %0.2f m " %d

Distance = 2.34 m


## Exa 4.14 : page 4.74¶

In [40]:
#given data :
n=10 #no. of elements
from sympy import symbols, N
lamda = symbols('lamda')
#given :
d=lamda/4 #in m
Llambda=n*d/lamda
D=2*Llambda #in unitless
print "Directivity of broadside uniform array = %0.2f " %D

Directivity of broadside uniform array = 5.00


## Exa 4.16 : page 4.75¶

In [74]:
from math import pi
n=4
from sympy import symbols, N, cos, solve
lamda, theta = symbols('lamda theta')
d=lamda/2
delta = pi/3
dr = 2*pi*d/lamda
# Peaks
si = pi*cos(theta)+pi/3
theta = solve(si, theta) # radian
theta = degrees(theta[0]) # degree
print "Peaks : theta =",round(theta,2),"degree"
# Nulls
print "Nulls : "
for k in range(0,3):
theta = degrees(acos(-1.0/3+k/2.0))
print "k =",k,", theta =",round(theta,2),"degree"
print "Side lobes :"
for k in range(0,3):
theta = degrees(acos(-1.0/3+(2*k+1)/4.0))
print "k =",k,", theta =",round(theta,2),"degree"
# Ans in the textbook is not accurate.

Peaks : theta = 109.47 degree
Nulls :
k = 0 , theta = 109.47 degree
k = 1 , theta = 80.41 degree
k = 2 , theta = 48.19 degree
Side lobes :
k = 0 , theta = 94.78 degree
k = 1 , theta = 65.38 degree
k = 2 , theta = 23.56 degree


## Exa 4.17 : page 4.76¶

In [82]:
from math import cos, sin, pi
#given data :
MainBeamwidth=45 #in degree
thetaN=MainBeamwidth/2 #in degree
m=5 #no. of elements
#given : d=lambda/2 in meter
x=cos(pi/(2*(m-1)))
xo=x/cos((pi/2)*sin(thetaN)) #unitless
print "E5=ao*z+a1*(2*z**2-1)+a2*(8*z**4-8*z**2+1)"
print "We Know that : z=x/xo, E5=T4*xo"
print "ao=a1*(2*(x/xo)**2-1)+a2*[8*(x/xo)**4-8*(x/xo)**2+1]=8*x**4-8*x**2+1"
print "By comparing the term we have : "
print "a2=xo**4  a1=4*a2-4*xo**2  ao=1+a1-a2 "
a2=xo**4
a1=4*a2-4*xo**2
ao=1+a1-a2
print "And therefore the 5 elements array is given by : "
print (a2),"  ",(a1),"  ",(2*ao),"  ",(a1),"  ",a2

E5=ao*z+a1*(2*z**2-1)+a2*(8*z**4-8*z**2+1)
We Know that : z=x/xo, E5=T4*xo
ao=a1*(2*(x/xo)**2-1)+a2*[8*(x/xo)**4-8*(x/xo)**2+1]=8*x**4-8*x**2+1
By comparing the term we have :
a2=xo**4  a1=4*a2-4*xo**2  ao=1+a1-a2
And therefore the 5 elements array is given by :
1.5218051188    1.15276185234    1.26191346708    1.15276185234    1.5218051188


## Exa 4.18 : page 4.77¶

In [86]:
from __future__ import division
#given data :
#Side lobe level below main lobe
print "Side lobe level below main lobe : "
SideLobe=20 #in dB
r=10**(SideLobe/20) #
print "r=",r
#No. of elements are 5, n=5
print "No. of elements are 5, n=5 :"
print "Tchebyscheff polynomials of degree (n-1) is"
print "5-1=4"
print "T4(xo)=r"
print "8*xo**4-8*xo**2+1=10"
print "By using alternate formula, we get"
m=4
r=10
xo=(1/2)*((r+sqrt(r**2-1))**(1/m)+(r-sqrt(r**2-1))**(1/m))
print "xo=" ,xo
print "E5=T4(xo)"
print "E5=ao*z+a1*(2*z**2-1)+a2*(8*z**4-8*z**2+1)"
print "We Know that : z=x/xo, E5=T4*xo"
print "ao=a1*(2*(x/xo)**2-1)+a2*[8*(x/xo)**4-8*(x/xo)**2+1]=8*x**4-8*x**2+1"
print "By comparing the term we have : "
print "a2=xo**4  a1=4*a2-4*xo**2  ao=1+a1-a2 "
a2=xo**4
a1=4*a2-4*xo**2
ao=1+a1-a2
print "And therefore the 5 elements array is given by : "
print round(a2,3),"  ",round(a1,3),"  ",round(2*ao,3),"  ",round(a1,3),"  ",round(a2,3)
# Ans in the textbook are not accurate.

Side lobe level below main lobe :
r= 10.0
No. of elements are 5, n=5 :
Tchebyscheff polynomials of degree (n-1) is
5-1=4
T4(xo)=r
8*xo**4-8*xo**2+1=10
By using alternate formula, we get
xo= 1.29329190052
E5=T4(xo)
E5=ao*z+a1*(2*z**2-1)+a2*(8*z**4-8*z**2+1)
We Know that : z=x/xo, E5=T4*xo
ao=a1*(2*(x/xo)**2-1)+a2*[8*(x/xo)**4-8*(x/xo)**2+1]=8*x**4-8*x**2+1
By comparing the term we have :
a2=xo**4  a1=4*a2-4*xo**2  ao=1+a1-a2
And therefore the 5 elements array is given by :
2.798    4.5    5.405    4.5    2.798