# Chapter 4 Antenna Arrays¶

## 4.1 HPBW calculation¶

In [1]:
from __future__ import division
import math

#D=2(L/lamda)
L=1;
Lamda=1;#assume
BWFN=2 *180/(math.pi); #2/(L/lamda)
print("The Beam Width First Null is %g degree"%BWFN);
HPBW=BWFN/2;
print("The half power beam width is %g degree"%HPBW);

The Beam Width First Null is 114.592 degree
The half power beam width is 57.2958 degree


## 4.2 BWFN calculation¶

In [2]:
from __future__ import division
import math

#end fire array
#D=4(L/lamda)
#BWFN=2sqrt(2m/(L/lamda))
lamda=1;
D=36;
L=D/4;
m=1;
BWFN=114.6*math.sqrt(2*m/L);
print("The Beam Width First Null is %g degree"%BWFN);

The Beam Width First Null is 54.023 degree


## 4.3 Maxima Minima calculation¶

In [3]:
from __future__ import division
import math

#2 element array
#part a
max1=math.acos(0);
max2=math.acos(1);
max3=math.acos(-1);
print("The positions of maxima are %g,%d,%g radians"%(max1,max2,max3));

#part b
#minima
min1=math.acos(0.5);
min2=math.acos(0.5);
print("The positions of minima are %g,%g radians"%(min1,min2));

The positions of maxima are 1.5708,0,3.14159 radians
The positions of minima are 1.0472,1.0472 radians


## 4.4 Radiation Pattern calculation¶

In [6]:
from __future__ import division
import math

#2 element array
max1=math.acos(1);
print("The only position of maximum radiation is %d radians"%max1);
min1=math.acos(-1);
print("The position of minimum radiation pattern is %g radians"%min1);
phi=180;#assume phi=180 degree;
Et=2*math.cos(((math.pi/4)*math.cos(phi))-(math.pi/4));
print('Et',Et);
print("Hence as the radiation pattern suggest that antenna is unidirectional antenna");

The only position of maximum radiation is 0 radians
The position of minimum radiation pattern is 3.14159 radians
Et 0.6203340637620398
Hence as the radiation pattern suggest that antenna is unidirectional antenna


## 4.5 Null Calculation¶

In [7]:
from __future__ import division
import math

#part a
n=8;
m1=1;
d=0.5;
lamda=1;
ph1=math.acos((m1*lamda)/(n*d));
m2=2;
ph2=math.acos((m2*lamda)/(n*d));
m3=3;
ph3=math.acos((m3*lamda)/(n*d));
print("The direction of nulls are %g %g %g radians"%(ph1,ph2,ph3));

The direction of nulls are 1.31812 1.0472 0.722734 radians


## 4.6 Lobe calculation¶

In [8]:
from __future__ import division
import math

#taking values from previous problems
m1=1;
n=8;
d=0.5;
lamda=1;
ph1=math.acos(lamda*(2*m1+1)/(2*n*d));
m2=2;
ph2=math.acos(lamda*(2*m2+1)/(2*n*d));
m3=3;
ph3=math.acos(lamda*(2*m3+1)/(2*n*d));
print("The minor lobes values are %g %g %g"%(ph1,ph2,ph3));

The minor lobes values are 1.1864 0.895665 0.505361


## 4.7 BWFN calculation¶

In [9]:
from __future__ import division
import math

n=4;
lamda=0.1
d=0.5
i=0.25

#part a

#part b
L=n*d;
print("The length is %d m"%L);
BWFN=2*lamda/L;
HPBW=BWFN/2;
print("The Beam width first null is %g radians"%BWFN);
print("The half power beam width is %g radians"%HPBW);

The radiated power is 18.25 W
The length is 2 m
The Beam width first null is 0.1 radians
The half power beam width is 0.05 radians


## 4.8 Dmin calculation¶

In [10]:
from __future__ import division
import math

Gdmax=5.01108; #antilog[7/10]
n=10;
lamda=1;
d=Gdmax/(20*lamda);
print("The minimum distance between array is %g m"%d);

The minimum distance between array is 0.250554 m


## 4.9 Gain calculation¶

In [12]:
from __future__ import division
import math

n=8;
d=0.25;
lamda=1;

#part a
Gdmax=(2*n*d)/lamda;
Gdmaxdb=10*math.log10(Gdmax);
print("In Case of Broadside array")
print("The directive gain is %g"%Gdmax);
print("The directive gain in db is %g db"%Gdmaxdb);

#part b
#end fire array
Gdmax1=(4*n*d)/lamda;
Gdmaxdb1=10*math.log10(Gdmax1);
print("\nIn case of End fire array");
print("The directive gain is %g"%Gdmax1);
print("The directive gain in db is %g db"%Gdmaxdb1);

In Case of Broadside array
The directive gain is 4
The directive gain in db is 6.0206 db

In case of End fire array
The directive gain is 8
The directive gain in db is 9.0309 db


## 4.10 BWFN calculation¶

In [14]:
from __future__ import division
import math

Gdmax=15;
L=Gdmax/2;
print("The length is %g m"%L);

#endfire array
L1=Gdmax/4;
print("The length is %g m"%L1);
BWFN=114.6*math.sqrt(2/L1);
print("The BWFN is %g degree"%BWFN);

The length is 7.5 m
The length is 3.75 m
The BWFN is 83.692 degree


## 4.11 Directivity calculation¶

In [15]:
from __future__ import division
import math

#Hansen-Woodyard end fire array
n=10;
d=0.25;
L=n*d;
D=1.789*4*L;
Ddb=10*math.log10(D);
print("The directivity is %g"%D);
print("The directivity in db is %g db"%Ddb);

The directivity is 17.89
The directivity in db is 12.5261 db


## 4.12 Effective Aperture calculation¶

In [16]:
from __future__ import division
import math

#end fire array
n=16;
d=0.25;
L=(n-1)*d;
m=1;

#part a
HPBW=57.3*math.sqrt((2*m)/L);
print("The HPBW is %g degree"%HPBW);

#part b
D=4*L;
Ddb=10*math.log10(D);
print("The directivity is %d"%D);
print("The directivity in db is %g db"%Ddb);

#part c
A=4*(math.pi)/D;
print("The beam solid angle is %g sr"%A);

#part d
lamda=1;
Ae=D*lamda**2/(4*(math.pi));
print("The effective aperture is %g m^2"%Ae);

The HPBW is 41.846 degree
The directivity is 15
The directivity in db is 11.7609 db
The beam solid angle is 0.837758 sr
The effective aperture is 1.19366 m^2


## 4.13 Directive Gain Calculation¶

In [18]:
from __future__ import division
import math

#end fire array
n=10;
d=0.25;
lamda=1;#assume
Gdmax=4*n*d;
Gdmaxdb=10*math.log10(Gdmax);
print("The directive gain is %d"%Gdmax);
print("The directive gain in db is %d db"%Gdmaxdb);

The directive gain is 10
The directive gain in db is 10 db


## 4.14 Directivity calculation¶

In [19]:
from __future__ import division
import math

n=50;
d=0.5;
lamda=1;#assume
L=n*d;
D=2*(L/lamda);
print("The directivity is %g"%D);

The directivity is 50