LAB MANUAL
OF
ANTENNA AND WAVE
PROPAGATION
Using MATLAB
DEPARTMENT OF EC
GOVERNMENT ENGINEERING COLLEGE
DAHOD -389151
Prepared By :
Prof. Alpesh H. Dafda
Asst. Prof. (E.C.)
CERTIFICATE
This
is
to
certify
that
__________________________________ Enrollement
number
____________________
has
successfully
completed his/her term work and practical work in the
subject Antenna and Wave Propagation(161003) for
the
term
ending
in
__________________
Government Engineering College, Dahod,
at
for partial
fulfillment of B.E. degree to be awarded by Gujarat
Technological University. This work has been carried
out under my supervision and is to my satisfaction.
Date:
Place:
Subject Teacher
Head of Department
INDEX
NO
SUBJECT
DATE PAGE
To write a program to plot the
radiation pattern of Dipole
Antenna.
To write a program to plot radiation
pattern of Monopole antenna.
To write a program to plot radiation
pattern of Loop antenna.
To write a Program to plot radiation
pattern of Linear array antenna.
To write a Program to plot radiation
pattern of Circular array antenna.
To write program to plot radiation
pattern of rectangular aperture
antenna.
To write a program to plot radiation
pattern of travelling wave antenna.
To write a program to plot radiation
pattern of linear array of isotropic
antennas.
To
perform
the
numerical
evaluation of directivity for a half
wave dipole.
10
To write a program to determine
the directivity [D(,)], the beam
solid angle A and the maximum
directivity [Do] of an antenna
defined by F(,) = sin2cos2.
11
To write a program
Microstrip Antenna.
to
Design
SIGN
REMARKS
12
To write a program to plot 3-D
pattern of Rectangular Apertures as
a function of the independent
variables vx, vy, for aperture
dimensions a = 8 and b = 4.
13
To write a program to plot 3-D
pattern of Circular Aperture as a
function
of
the
independent
variables vx = (a/)sincos and vy
= (a/)sinsin, for an aperture
radius of a = 3.
14
To write a program to plot the
radiation pattern of a horn
antenna.
15
To write a program to plot the
radiation pattern of a Optimized
six-element Yagi-Uda antenna.
16
To write a program to plot the
radiation pattern for Binomial
antenna array.
17
To write a program to plot radiation
pattern for Broadside antenna
array.
18
To write a program to plot radiation
pattern for Endfire antenna array.
19
To write a program to plot 3D
radiation pattern for Binomial
antenna array.
20
To write a program to plot 3D
radiation pattern for Broadside
antenna array.
21
To write a program to plot 3D
radiation
pattern
for
Endfire
antenna array.
22
To write a program to plot 3-D
Radiation Pattern of Dipole
Antenna.
Practical -1
AIM : To write a program to plot the radiation pattern of Dipole Antenna.
THEORY :
MATLAB PROGRAM
%This program print pattern (AF) for Short and any Dipole
%Antenna by giving the length of your Dipole and the
%wavelength you work with
clc;
lamda=input('enter the value of wave length= ');
l=input('enter your dipole length l in terms of lamda(for ex:
0.5 for 0.5lamda)= ');
ratio=l/lamda;
B=(2*pi/lamda);
theta= pi/100:pi/100:2*pi;
if ratio<= 0.1
%check if Short Dipole
E=sin(theta);
En=abs(E);
polar(theta,En)
%This plot polar pattern in plane
which dipole appear as line
else
%check if not short dipole
f1=cos(B*l/2.*cos(theta));
f2=cos(B*l/2);
f3=sin(theta);
E=(f1-f2)./f3;
En=abs(E);
polar(theta,En)
%This plot polar pattern in plane
which dipole appear as line
end
OUTPUT
enter the value of wave length= 1
enter your dipole length l in terms of lamda(for ex: 0.5 for
0.5lamda)= 0.5
90
120
60
0.8
0.6
150
30
0.4
0.2
180
210
330
240
300
270
CONCLUSIONS :
Practical - 2
AIM : To write a program to plot radiation pattern of Monopole antenna.
THEORY :
MATLAB PROGRAM
%%This program print pattern for Short and any monopole
%Antenna by giving the length of your Dipole
%and the wavelength you work with
lamda=input('enter the value of wave length= ');
l=input('enter your monopole length l= ');
ratio=l/lamda;
B=(2*pi/lamda);
theta= -pi/2:pi/100:pi/2;
if ratio<= 0.1
%check if Short monopole
E=sin(theta);
En=abs(E);
polar(theta,En)
%This plot polar pattern in plane
which monopole appear as line
else
%check if not short monopole
f1=cos(B*l/2.*cos(theta));
f2=cos(B*l/2);
f3=sin(theta);
E=(f1-f2)./f3;
En=abs(E);
polar(theta,En)
%This plot polar pattern in plane
which monopole appear as line
end
OUTPUT
enter the value of wave length= 1
enter your monopole length l= 0.5
90
120
60
0.8
0.6
150
30
0.4
0.2
180
210
330
240
300
270
CONCLUSIONS :
10
Practical -3
AIM : To write a program to plot radiation pattern of Loop antenna.
THEORY :
11
MATLAB PROGRAM :
%This program print pattern for Loop Antenna by giving the
%radius of your Loop and the wavelength you work with
clc;
lamda=input('enter the value of wave length= ');
a=input('enter your loop radius a= ');
B=(2*pi/lamda);
theta= pi/100:pi/100:2*pi;
E=besselj(1,B*a.*sin(theta));
polar(theta,E)
OUTPUT :
enter the value of wave length= 1
enter your loop radius a= 0.5
90
0.6
120
60
0.4
150
30
0.2
180
210
330
240
300
270
CONCLUSIONS :
12
Practical - 4
AIM
To write a Program to plot radiation pattern of Linear array
antenna.
THEORY :
13
MATLAB PROGRAM :
%This program print pattern for linear Array (uniform) Antenna
%by giving N,alfa,d and the wavelength you work with
%if you want full pattern multiply this pattern by any Antenna
%pattern
clc;
lamda=input('enter the value of wave length= ');
N=input('enter the no. of elements(3,4,5...)= ');
alfa=input('enter your progressive phase(alpha=0,45...)= ');
d=input('enter the seperation distance between elements(in
terms of lamda for ex: 0.3 for 0.3lamda)= ');
B=(2*pi/lamda);
theta= pi/100:pi/100:2*pi;
w=alfa+B*d.*cos(theta);
AF=sinc(N*(w./2))./sinc(w./2);
polar(theta,AF)
OUTPUT
enter
enter
enter
enter
lamda
the value of wave length= 1
the no. of elements(3,4,5...)= 6
your progressive phase(alpha=0,45...)= 0
the seperation distance between elements(in terms of
for ex: 0.3 for 0.3lamda)= 0.3
14
90
120
60
0.8
0.6
150
30
0.4
0.2
180
210
330
240
300
270
CONCLUSIONS :
15
Practical - 5
AIM
To write a Program to plot radiation pattern of Circular array
antenna.
THEORY :
16
MATLAB PROGRAM :
% This program print pattern for circular Array (uniform)
%Antenna by giving N,a and the wavelength you work with
%if you want full pattern multiply this pattern by any Antenna
%pattern
clc;
lamda=input('enter the value of wave length= ');
N=input('enter the no. of elements(3,4,5...)= ');
a=input('enter your circular radius( in terms of lamda for ex
0.2 for 0.2lamda)= ');
theta0=input('enter angle theta at which main lobe occurs(ex:
45)= ');
phi0=input('enter angle phi at which main lobe occurs(ex: 90)=
');
B=(2*pi/lamda);
theta= pi/100:pi/100:2*pi;
phi=pi/100:pi/100:2*pi;
f1=sin(theta0)*cos(phi0);
f2=sin(theta0)*sin(phi0);
f3=sin(theta).*cos(phi);
f4=sin(theta).*sin(phi);
x=f3-f1;
y=f4-f2;
ro=a.*sqrt(x.^2+y.^2);
AFn=besselj(0,B.*ro);
polar(theta,AFn)
OUTPUT
enter the value of wave length= 1
enter the no. of elements(3,4,5...)= 2
enter your circular radius( in terms of lamda for ex 0.2 for
0.2lamda)= 0.2
enter angle theta at which main lobe occurs(ex: 45)= 45
enter angle phi at which main lobe occurs(ex: 90)= 90
17
90
120
60
0.8
0.6
150
30
0.4
0.2
180
210
330
240
300
270
CONCLUSIONS :
18
Practical - 6
AIM : To write program to plot radiation pattern of rectangular aperture
antenna.
THEORY :
19
MATLAB PROGRAM :
% This program prints electric field pattern for rectangular
%Aperture Antenna by giving the a,b
%and the wavelength you work with
kind=input('Enter your antenna type Rectangular (1) or
circular (2)= ');
lamda=input('enter the value of wave length= ');
theta= pi/100:pi/100:2*pi;
B=(2*pi/lamda);
u0=0;
%@phi=90
u=B.*(sin(theta));
v0=0;
%@phi=0
v=B.*(sin(theta));
if kind==1
feeding=input('enter your feeding type "uniform(1),blocked
in one dim. Aperture(2),TE10(3)": ');
if feeding==1
%uniform
a=input('enter ur larg rectanglar length a= ');
b=input('enter ur small rectanglar length b= ');
E1=sinc((b.*v)./2);
%E-plane phi=90
E2=sinc((a.*u)./2);
%H-plane phi=0
subplot(3,3,1)
polar(theta,E1),title('E-plane')
subplot(3,3,2)
polar(theta,E1),title('H-plane')
elseif feeding==2
%blocked
delta=input('enter value of blocking= ');
E1=(b.*sinc((b.*v)./2)) (delta.*sinc((delta.*v)./2));
%E-plane
E2=sinc((a.*u)./2);
%H-plane phi=0
subplot(3,3,3)
polar(theta,E1),title('E-plane')
subplot(3,3,4)
polar(theta,E1),title('H-plane')
elseif feeding==3
%TE10
E1=sinc((b.*v)./2);
%E-plane phi=90
f1=(a/2).*(u-(pi/a));
f2=(a/2).*(u+(pi/a));
E2=sinc(f1)+sinc(f2); %H-plan phi=0
subplot(3,3,5)
polar(theta,E1),title('E-plane')
subplot(3,3,6)
polar(theta,E1),title('H-plane')
end
elseif kind==2
a=input('Enter radius of Circular Aperture= ');
20
f1=B*a;
f=f1.*(sin(theta));
E=(besselj(1,f))./f;
subplot(3,3,7)
polar(theta,E)
%E-plane or H-plane
end
OUTPUT
Enter your antenna type Rectangular (1) or circular (2)= 1
enter the value of wave length= 1
enter your feeding type "uniform(1),blocked in one dim.
Aperture(2),TE10(3)": 1
enter ur larg rectanglar length a= 0.3
enter ur small rectanglar length b= 0.2
E-plane
1
120 90 60
0.5
150
30
180
210
330
240 270 300
H-plane
1
120 90 60
0.5
150
30
180
210
330
240 270300
CONCLUSIONS :
21
Practical - 7
AIM
: To write a program to plot radiation pattern of travelling wave
antenna.
THEORY :
22
MATLAB PROGRAM :
%This program print pattern for TWA(Travelling Wave Antenna)
%by giving the length of your Line
%and the wavelength you work with
clc;
lamda=input('enter the value of wave length= ');
l=input('enter your Line length l= ');
B=(2*pi/lamda);
theta= pi/100:pi/100:2*pi;
f1=sin(theta);
f2=1-cos(theta);
f3=sin(B*l/2.*(f2));
E=(f1./f2).*f3;
En=abs(E);
polar(theta,En);
OUTPUT:
enter the value of wave length= 1
enter your Line length l= 1
90
120
60
1.5
1
150
30
0.5
180
210
330
240
300
270
CONCLUSIONS :
23
Practical - 8
AIM
To write a program to plot radiation pattern of linear array of
isotropic antennas.
THEORY :
24
MATLAB PROGRAM :
% clc;
lamda=input('enter the value of wave length(in
meter)= ');
N=input('enter the no. of elements= ');
alpha=input('enter your progressive phase= ');
d=input('enter the separation distance between
elements(in meter)= ');
beta=(2*pi/lamda);
theta= pi/100:pi/100:2*pi;
psi=alpha+beta*d.*cos(theta);
e=sin(N*(psi./2))./sin(psi./2);
polar(theta,e/N);
Case 1: When =0, d=/4
N=2
90
N=4
90
120
60
60
0.8
0.6
0.6
150
30
150
30
0.4
0.4
0.2
0.2
180
210
180
330
240
120
0.8
210
300
330
240
270
300
270
25
N=8
N=16
90
90
120
60
120
60
0.8
0.8
0.6
0.6
150
30
150
30
0.4
0.4
0.2
0.2
180
180
210
330
240
210
330
300
240
300
270
270
Observation:
As the number of isotropic antennas increase, the
directivity increases.
Case 2: When N=2, =0
d=/4
90
d=/2
90
120
60
60
0.8
0.8
0.6
0.6
150
30
150
30
0.4
0.4
0.2
0.2
180
180
210
330
240
120
210
300
330
240
270
300
270
26
d=
d=3/4
90
90
120
60
120
60
0.8
0.8
0.6
0.6
150
30
150
30
0.4
0.4
0.2
0.2
180
180
210
330
240
210
330
300
240
300
270
270
d=5/2
d=3/2
90
90
120
60
0.8
0.8
0.6
0.6
150
150
30
30
0.4
0.4
0.2
0.2
180
180
210
210
330
240
120
60
330
240
300
300
270
270
Observation: As the distance between antennas increases, the radiation
pattern is not only broadsided but also radiates in other directions.
27
Case 3: When N=2, d=/2
=0
=45
90
90
120
60
60
0.8
0.6
0.6
150
30
150
0.4
30
0.4
0.2
0.2
180
210
180
330
240
210
300
330
240
270
300
270
=90
90
=135
90
120
60
120
60
0.8
0.8
0.6
0.6
150
30
150
30
0.4
0.4
0.2
0.2
180
180
210
330
240
120
0.8
210
300
330
240
270
300
270
Observation: As the phase difference between the excitation increases,
the main lobe directivity is decreasing whereas the side lobe is increasing.
CONCLUSIONS :
28
Practical - 9
AIM :
To perform the numerical evaluation of directivity for a half wave
dipole .
THEORY :
29
MATLAB PROGRAM :
% sum=0.0;
N=input(Enter the number of segments in the theta
direction\n);
for i=1:N
thetai=(pi/N)*(i-0.5);
sum=sum+(cos((pi/2)*cos(thetai)))^2/sin(thetai);
end
D=(2*N)/(pi*sum)
OUTPUT
Enter number of segments in the theta direction
5
D =
1.6428
Enter number of segments in the theta direction
10
D =
1.6410
Enter number of segments in the theta direction
15
D =
1.6409
Enter number of segments in the theta direction
20
D =
1.6409
CONCLUSIONS:
30
Practical - 10
AIM
To write a program to determine the directivity [D(,)], the
beam solid angle A and the maximum directivity [Do] of an
antenna defined by F(,) = sin2cos2.
THEORY :
31
32
MATLAB PROGRAM :
% for i=1:100
theta(i)=pi*(i-1)/99;
d(i)=7.5*((cos(theta(i)))^2)*((sin(theta(i)))^2);
end
polar(theta,d)
OUTPUT
90
120
60
1.5
1
150
30
0.5
180
210
330
240
300
270
CONCLUSIONS :
33
Practical - 11
AIM :
To write a program to Design Microstrip Antenna.
THEORY :
34
MATLAB PROGRAM :
% clc
clear all
format long
% er=2.2;
% f=10e9;
% h=0.1588*10;
er=input('Enter the di-electric constant:');
h=input('Enter the substrate thickness (in mil)');
f=input('Enter the frequency (GHz):');
% er=3.5;
f=f*1e9;
h=h*0.0254; % in mm
wid=(3e8/(sqrt((er+1)/2)*2*f))*1000; %in mm
e_eff=((er+1)/2)+ (((er-1)/2)* (1+((12*h)/wid))^-0.5);
l_eff=(3e8/(2*f*sqrt(e_eff)))*1000;
del_l=(((e_eff+0.3)*((wid/h)+0.264))/((e_eff0.258)*((wid/h)+0.8)))*(0.412*h); %in mm
L=l_eff-(2*del_l);
la=(3e8/f)*1000;
k=(2*pi)/la;
x=k*(wid);
i1=-2+cos(x)+(x*sinint(x))+(sin(x)/x);
g1=i1/(120*pi*pi);
%Conductance % jb=besselj(0,(k.*L.*sin(th)));
a=@(th)(((sin((x./2).*cos(th))./cos(th)).^2).*(besselj(0,(k.*L
.*sin(th)))).*(sin(th)).^3); a1=quad(a,0,pi);
g12=a1/(120*pi*pi); %in siemens
r_in=1/(2*(g1+g12)); %in ohms
inset=(L/pi)*(acos(sqrt(50/r_in))); %in mm
disp(['The width is:',num2str(wid),' mm'])
disp(['The length is:',num2str(L),' mm'])
disp(['The inset feed point is:',num2str(inset),' mm'])
OUTPUT :
Enter the di-electric constant:12
Enter the substrate thickness (in mil)15
Enter the frequency (GHz):7
The width is:8.405 mm
The length is:6.1601 mm
The inset feed point is:2.5294 mm
CONCLUSIONS :
35
Practical - 12
AIM : To write a program to plot 3-D pattern of Rectangular Apertures
as a function of the independent variables vx, vy, for aperture
dimensions a = 8 and b = 4.
THEORY :
36
MATLAB PROGRAM :
% a = 8; b = 4;
[theta,phi] = meshgrid([Link], [Link]);
theta = theta*pi/180; phi = phi*pi/180;
vx = a*sin(theta).*cos(phi);
vy = b*sin(theta).*sin(phi);
E = abs((1 + cos(theta))/2 .* sinc(vx) .* sinc(vy));
surfl(vx,vy,E);
shading interp; colormap(gray(16));
OUTPUT
1
0.8
0.6
0.4
0.2
0
4
2
10
5
-2
-5
-4
-10
CONCLUSIONS :
37
Practical - 13
AIM : To write a program to plot 3-D pattern of Circular Aperture as a
function of the independent variables vx = (a/)sincos and vy
= (a/)sinsin, for an aperture radius of a = 3.
THEORY :
38
MATLAB PROGRAM :
% a = 3;
[theta,phi] = meshgrid([Link], [Link]);
theta = theta*pi/180; phi = phi*pi/180;
vx = a*sin(theta).*cos(phi);
vy = a*sin(theta).*sin(phi);
u = a*sin(theta);
E = ones(size(u));
i = find(u);
E(i) = abs(2*besselj(1,2*pi*u(i))./(2*pi*u(i)));
surfl(vx,vy,E);
shading interp; colormap(gray(16));
OUTPUT
1
0.8
0.6
0.4
0.2
0
4
2
4
2
-2
-2
-4
-4
CONCLUSIONS :
39
Practical - 14
AIM
To write a program to plot the radiation pattern of a horn
antenna.
THEORY :
40
MATLAB PROGRAM :
% function []=horn;
disp('E-Plane and H-Plane Horn Specifications');
%R1=[]; R2=[];
%R1 = input('rho1(in wavelengths) = ');
%R2 = input('rho2(in wavelengths) = ');
R1=6; R2=6;a=0.5; b=0.25; a1=5.5; b1=2.75;
%a=[]; b=[];
%a = input('a(in wavelengths) = ');
%b = input('b(in wavelengths) = ');
%a1=[]; b1=[];
%a1 = input('a1(in wavelengths) = ');
%b1 = input('b1(in wavelengths) = ');
u = (1/sqrt(2))*((sqrt(R2)/a1)+(a1/sqrt(R2)));
v = (1/sqrt(2))*((sqrt(R2)/a1)-(a1/sqrt(R2)));
u = Fresnel(u);
v = Fresnel(v);
w = Fresnel(b1/sqrt(2*R1));
DH = 4*pi*b*R2/a1*((real(u)-real(v))^2 + (imag(u)-imag(v))^2);
DE = 64*a*R1/(pi*b1)*((real(w))^2 + (imag(w))^2);
DP = pi/(32*a*b)*DE*DH;
k = 2*pi;
Emax = 0;
Hmax = 0;
% E and H plane Outputs
% E-Plane Amplitude
for(theta = 0:0.5:360);
I = theta*2 + 1;
theta = theta*pi/180;
phi = pi/2;
ky = k*sin(theta);
kxp = pi/a1;
kxdp = -pi/a1;
t1 = sqrt(1/(pi*k*R1))*(-k*b1/2-ky*R1);
t2 = sqrt(1/(pi*k*R1))*(k*b1/2-ky*R1);
t1p = sqrt(1/(pi*k*R2))*(-k*a1/2-pi/a1*R2);
t2p = sqrt(1/(pi*k*R2))*(k*a1/2-pi/a1*R2);
t1dp = -t2p;
t2dp = -t1p;
I1 =.5*sqrt(pi*R2/k)*(exp(j*R2/(2*k)*kxp^2)*(Fresnel(t2p)Fresnel(t1p)) + exp(j*R2/(2*k)*kxdp^2)*(Fresnel(t2dp) Fresnel(t1dp)));
I2 = sqrt(pi*R1/k) * exp(j*R1/(2*k)*ky^2) * (Fresnel(t2) Fresnel(t1));
y(I) = (1 + cos(theta))*I1*I2;
y(I) = abs(y(I));
end
for(I = 1:721)
if(y(I) > Emax)
Emax = y(I);
41
end
end
for(I = 1:721)
if(y(I) <= 0)
Edb = -100;
else
Edb = 20*log10(abs(y(I))/Emax);
end
theta = (I-1)/2;
x(I)=theta;
q1(I)=Edb;
end
% H-Plane Amplitude
for(theta = 0:0.5:360);
I = theta*2 + 1;
theta = theta*pi/180;
phi = 0;
kxp = k*sin(theta) + pi/a1;
kxdp = k*sin(theta) - pi/a1;
t1 = sqrt(1/(pi*k*R1))*(-k*b1/2);
t2 = sqrt(1/(pi*k*R1))*(k*b1/2);
t1p = sqrt(1/(pi*k*R2))*(-k*a1/2-kxp*R2);
t2p = sqrt(1/(pi*k*R2))*(k*a1/2-kxp*R2);
t1dp = sqrt(1/(pi*k*R2))*(-k*a1/2-kxdp*R2);
t2dp = sqrt(1/(pi*k*R2))*(k*a1/2-kxdp*R2);
I1 = .5*sqrt(pi*R2/k)*(exp(j*R2/(2*k)*kxp^2)*(Fresnel(t2p)Fresnel(t1p)) + exp(j*R2/(2*k)*kxdp^2)*(Fresnel(t2dp) Fresnel(t1dp)));
I2 = sqrt(pi*R1/k) * exp(j*R1/(2*k)*ky^2) * (Fresnel(t2) Fresnel(t1));
y(I) = (1 + cos(theta))*I1*I2;
y(I) = abs(y(I));
end
for(I = 1:721)
if(y(I) > Hmax)
Hmax = y(I);
end
end
for(I = 1:721)
if(y(I) <= 0)
Hdb = -100;
else
Hdb = 20*log10(abs(y(I))/Hmax);
end
theta = (I-1)/2;
x(I)=theta;
q2(I)=Hdb;
end
% Figure 1
ha=plot(x,q1); set(ha,'linestyle','-','linewidth',2);
hold on; hb=plot(x,q2,'r--'); set(hb,'linewidth',2);
42
xlabel('Theta (degrees)');
ylabel('Field Pattern (dB)');
title('Horn Analysis');
legend('E-Plane','H-Plane');
grid on;
axis([0 360 -60 0]);
% Figure 2
figure(2)
ht1=polar(x*pi/180,q1,'b-');
hold on;
ht2=polar(x*pi/180,q2,'r--');
set([ht1 ht2],'linewidth',2);
legend([ht1 ht2],{'E-plane','H-plane'});
title('Field patterns');
% Directivity Output
directivity = 10*log10(DP)
% Fresnel Subfunction
function[y] = Fresnel(x);
A(1) = 1.595769140;
A(2) = -0.000001702;
A(3) = -6.808508854;
A(4) = -0.000576361;
A(5) = 6.920691902;
A(6) = -0.016898657;
A(7) = -3.050485660;
A(8) = -0.075752419;
A(9) = 0.850663781;
A(10) = -0.025639041;
A(11) = -0.150230960;
A(12) = 0.034404779;
B(1) = -0.000000033;
B(2) = 4.255387524;
B(3) = -0.000092810;
B(4) = -7.780020400;
B(5) = -0.009520895;
B(6) = 5.075161298;
B(7) = -0.138341947;
B(8) = -1.363729124;
B(9) = -0.403349276;
B(10) = 0.702222016;
B(11) = -0.216195929;
B(12) = 0.019547031;
CC(1) = 0;
CC(2) = -0.024933975;
CC(3) = 0.000003936;
CC(4) = 0.005770956;
CC(5) = 0.000689892;
CC(6) = -0.009497136;
CC(7) = 0.011948809;
CC(8) = -0.006748873;
CC(9) = 0.000246420;
43
CC(10) = 0.002102967;
CC(11) = -0.001217930;
CC(12) = 0.000233939;
D(1) = 0.199471140;
D(2) = 0.000000023;
D(3) = -0.009351341;
D(4) = 0.000023006;
D(5) = 0.004851466;
D(6) = 0.001903218;
D(7) = -0.017122914;
D(8) = 0.029064067;
D(9) = -0.027928955;
D(10) = 0.016497308;
D(11) = -0.005598515;
D(12) = 0.000838386;
if(x==0)
y=0;
return
elseif(x<0)
x=abs(x);
x=(pi/2)*x^2;
F=0;
if(x<4)
for(k=1:12)
F=F+(A(k)+j*B(k))*(x/4)^(k-1);
end
y = F*sqrt(x/4)*exp(-j*x);
y = -y;
return
else
for(k=1:12)
F=F+(CC(k)+j*D(k))*(4/x)^(k-1);
end
y = F*sqrt(4/x)*exp(-j*x)+(1-j)/2;
y =-y;
return
end
else
x=(pi/2)*x^2;
F=0;
if(x<4)
for(k=1:12)
F=F+(A(k)+j*B(k))*(x/4)^(k-1);
end
y = F*sqrt(x/4)*exp(-j*x);
return
else
for(k=1:12)
F=F+(CC(k)+j*D(k))*(4/x)^(k-1);
end
y = F*sqrt(4/x)*exp(-j*x)+(1-j)/2;
44
return
end
end
OUTPUT
E-Plane and H-Plane Horn Specifications
directivity =
18.827820259174445
Horn Analysis
0
E-Plane
H-Plane
Field Pattern (dB)
-10
-20
-30
-40
-50
-60
50
100
150
200
Theta (degrees)
45
250
300
350
Field patterns
90
100
120
60
80
E-plane
H-plane
60
150
30
40
20
180
210
330
240
300
270
CONCLUSIONS :
46
Practical - 15
AIM : To write a program to plot the radiation pattern of a Optimized
six-element Yagi-Uda antenna.
THEORY :
47
Chen and Cheng, applied Kings three-term current approximation and
devised procedures for optimizing the choices of the antenna lengths and
separations of Yagi-Uda arrays. The gains before and after optimization of
a six-element Yagi-Uda array were calculated with the functions yagi and
gain2s. The antenna radii were a = 0.003369. For the unoptimized case,
the antenna lengths and x-locations were in units of : L = [L1, L2, L3,
L4, L5, L6]= [0.510, 0.490, 0.430, 0.430, 0.430, 0.430] d = [x1, x2, x3,
x4, x5, x6]= [0.25, 0, 0.310, 0.620, 0.930, 1.240]. The directors were
identical and equally spaced at spacing of 0.31. The computed directivity
and front/back ratio were 11 dB and 9.84 dB, respectively. The optimized
case has slightly different lengths and x-locations: L = [L1, L2, L3, L4, L5,
L6]= [0.476, 0.452, 0.436, 0.430, 0.434, 0.430] d = [x1, x2, x3, x4, x5,
x6]= [0.25, 0, 0.289, 0.695, 1.018, 1.440]. The optimized directivity
was 12.54 dB and the forward/backward ratio 17.6 dB.
MATLAB PROGRAM :
% clear all;
clc;
L = [0.476, 0.452, 0.436, 0.430, 0.434, 0.430];
a = 0.003369 * [1,1,1,1,1,1];
d = [-0.25, 0, 0.289, 0.695, 1.018, 1.440];
[I,D,Rfb] = yagi(L,a,d);
[ge,gh,th] = gain2(L,d,I,360);
figure; dbz2(th,gh,30,40);
figure; dbp2(th,ge,30,40);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% yagi.m - simplified Yagi-Uda array design
%
% Usage: [I,D,Rfb] = yagi(L,a,d)
%
% L = dipole lengths (in wavelengths) = [L1,L2,..,LK]
% a = dipole diameters = [a1,a2,...,aK]
% d = dipole locations along x-axis = [d1,d2,...,dK]
%
% I
= input currents on dipoles = [I1,I2,...,IK]
% D
= directivity in absolute units
% Rfb = forward-backward ratio in absolute units
%
% notes: dipole 1 is the reflector,
%
dipole 2 is the driving element,
%
dipoles 3:K are the directors (K>=3)
%
%
current on p-th dipole is assumed to be sinusoidal:
I(p)*sin(2*pi(L(p)/2 - z)),
%
this assumption is approximately correct if all the
lengths are near lambda/2,
%
none of the lengths should be a multiple of lambda.
%
48
%
imput impedance of driven element is 1/I(2)
%
%
the currents I can be passed to ARRAY2D to compute the
array gain
function [I,D,Rfb] = yagi(L,a,d)
if nargin==0, help yagi; return; end
K = length(L);
more antennas, K>=3
% must have three or
Z = impedmat(L,a,d);
matrix for the yagi array
% mutual impedance
V = [0; 1; zeros(K-2,1)];
V(2) = 1
% driving voltage
I = Z \ V;
% solve Z*I = V
Nint = 16;
Legendre quadrature points
% number of Gauss-
[wth,th] = quadr(0,pi,Nint);
and angle points
[wph,ph] = quadr(0,2*pi,Nint);
% quadrature weights
A = zeros(Nint,Nint);
of array factor
Af = 0;
Ab = 0;
% matrix of values
h = L/2;
for p=1:K,
A = A + I(p) * F(h(p),d(p),th,ph);
Af = Af + I(p) * F(h(p),d(p),pi/2,0);
endfire
Ab = Ab + I(p) * F(h(p),d(p),pi/2,pi);
endfire
end
Rfb = abs(Af/Ab)^2;
ratio
% forward
% backward
% forward-backward
A = A / Af;
g = abs(A.*A);
% normalized gain
for m=1:Nint,
49
g(:,m) = g(:,m).*sin(th);
dOmega = sin(th)*dth*dph
end
% sin(th) comes from
DOm = wth' * g * wph;
th,ph to get beam solid angle
% integrate over
D = 4*pi / DOm;
% directivity
% -------------------------------------------------------------------------------function A = F(h,d,th,ph)
dipole at distance x=d
% array factor of
k = 2*pi;
th = th(:);
ph = ph(:)';
% theta is a column
% phi is a row
G = zeros(length(th),1);
dipole pattern values
% G(th) is column of
i = find(th~=0 & th~=pi);
G(i)
=
(cos(k*h*cos(th(i)))
sin(th(i)));
A = exp(j*k*d*sin(th)*cos(ph));
factors
cos(k*h))
./
(sin(k*h)
% displacement phase
for m=1:length(ph),
A(:,m) = A(:,m) .* G;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% gain2.m - normalized gain of arbitrary 2D array of linear
sinusoidal antennas
%
% Usage: [ge,gh,th] = gain2(L,d,I,N,ph0)
%
[ge,gh,th] = gain2(L,d,I,N)
(equivalent to ph0=0)
%
% L
= antenna lengths in wavelengths, L = [L1,L2,...,LK]
% d
= [x,y] or [x] locations of the K antennas, d must be Kx2
or Kx1 or 1xK
% I
= input currents at antenna terminals, I = [I1,I2,...,IK]
= Kx1 or 1xK
% N
= number of azimuthal and polar angles over [0,2*pi]
% ph0 = azimuthal direction for E-plane pattern (in degrees)
%
50
% ge,gh = E-plane/H-plane gains at (N+1) polar or azimuthal
angles over [0,2*pi]
% th
= (N+1) equally-spaced polar or azimuthal angles over
[0,2*pi] in radians
%
% notes: I = [I1,I2,...,IK] are the input currents on the K
antennas,
%
the current distributions on the antennas are assumed
to sinusoidal,
%
for example, on the p-th antenna, Ip(z) = Ip *
sin(k*(Lp/2-abs(z))).
%
%
d is the matrix of the [x,y] locations of the antennas
and is Kx2, that is,
%
d = [x1,y1; x2,y2; ...; xK,yK]. If the antennas are
along the x-axis then
%
d is the vector of x-coordinates only and can be
entered either as a column
%
or row vector, d=[x1,x2,...,xK].
%
%
E-plane gain is evaluated at phi = ph0 for 0 <= theta
<= 2*pi. The range
%
[0,pi] corresponds to the forward ph0-direction and the
range [pi,2*pi] to the
%
backward (ph0+pi)-direction. The E-plane gain must be
plotted with DBP2 or ABP2.
%
%
H-plane gain is evaluated at theta = pi/2 for 0 <= phi
<= 2*pi and must be
%
plotted with DBZ2 or ABZ2.
%
%
The input currents I can be obtained from the input
driving voltages
%
V = [V1,V2,...,VK]' by I = Z\V, where Z is the mutual
impedance matrix
%
obtained from IMPEDMAT, Z = impedmat(L,a,d), (a=antenna
diameters).
%
%
for an isotropic array, use L=[0,0,...,0]
function [ge,gh,th] = gain2(L,d,I,N,ph0)
if nargin==0, help gain2; return; end
if nargin==4, ph0=0; end
I = I(:);
expects I,L to be columns
L = L(:);
% U(th,phi)
K = length(L);
51
if max(size(d))~=K,
error('d must have size Kx2 or Kx1 or 1xK');
end
if min(size(d))==1,
d = [d(:),zeros(K,1)];
into [x,y] pairs
end
% make d
ph0 = ph0*pi/180;
th
= 0 : 2*pi/N : 2*pi;
for i=1:N+1,
ge(i) = U(L,d,I,th(i),ph0);
gh(i) = U(L,d,I,pi/2,th(i));
the azimuthal angle
end
% here th is
ge = ge/max(ge);
gh = gh/max(gh);
% --------------------------------------------------------------------------function G = U(L,d,I,th,phi)
intensity U(th,phi)
% radiation
k = 2*pi;
kx = k*sin(th)*cos(phi);
ky = k*sin(th)*sin(phi);
kz = k*cos(th);
x = d(:,1);
y = d(:,2);
A = (I./sin(pi*L)) .*
dimensional array factor
(exp(j*kx*x).*exp(j*ky*y));
if sin(th)==0,
antenna elements
F = zeros(length(L),1);
dimensional column
else
F = (cos(k*L*cos(th)/2) - cos(k*L/2)) / sin(th);
end
if max(L)==0,
array case
F = ones(K,1);
K-
% gains of
% F is K-
% isotropic
52
end
G = abs(F'*A)^2;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% dbz2.m - azimuthal gain plot in dB - 2pi angle range
%
% Usage: h = dbz2(phi, g, rays, Rm, width)
%
% Examples: dbz2(phi, g);
default (30-degree
lines and 40-dB scale)
%
dbz2(phi, g, 45);
use 45-degree grid
lines
%
dbz2(phi, g, 30, 60);
30-degree rays and
60-dB scale
%
dbz2(phi, g, 30, 60, 1.5);
use thicker line for
gain
%
h = dbz2(phi, g, 30, 60, 1.5); use h to add legends
(see dbadd)
%
% plots 10*log10(g(phi)), it assumes max-g is unity
% phi = azimuthal angles over [0,2pi]
%
% rays = 30 degrees by default, and can be omitted
% rays = 45 draws rays at 45-degree angles
%
% Rm = minimum dB level
% Rm = 40 by default
% Rm/4, 2Rm/4, 3Rm/4 grid circles displayed
%
% width = linewidth of gain curve
% width = 1.0 points by default
% width = 1.5 for thicker line
%
% useful when the gain is not an even function of phi,
% as for an array along the y-axis
%
% see also DBZ, ABZ, ABZ2, ABP, DBP, ARRAY
function h = dbz2(phi, g, rays, Rm, width)
if
if
if
if
nargin==0, help dbz2; return; end
nargin<3, rays = 30; end
nargin<4, Rm = 40; end
nargin<5, width = 1; end
sty = ':';
line style
% grid
53
gdb = g .* (g > eps) + eps * (g <= eps);
into g=eps, avoids -Inf's
gdb = 10 * log10(gdb);
gdb = gdb .* (gdb > -Rm) + (-Rm) * (gdb <= -Rm);
is Rm dB
gdb = (gdb + Rm)/Rm;
unity max.
% make g=0
% lowest
% scale to
x = gdb .* cos(phi);
y = gdb .* sin(phi);
N0 = 400;
phi0 = (0:N0) * 2*pi / N0;
x0 = sin(phi0);
circles
y0 = cos(phi0);
% gain
h = plot(x, y, 'LineWidth', width);
hold on;
plot(x0, y0, 0.75*x0, 0.75*y0, sty,
0.25*x0, 0.25*y0, sty);
0.50*x0,
0.50*y0,
sty,
axis square;
R = 1.1;
axis([-R, R, -R, R]);
axis off;
Nf = 15;
% fontsize of labels
line([0,0],[-1,1]);
line([-1,1],[0,0]);
text(0, 1.02,
' 90^o',
'vert', 'bottom');
text(0, -0.99, '-90^o',
'vert', 'top');
'fontsize', Nf, 'horiz', 'center',
'fontsize',
Nf,
'horiz',
'center',
text(1, 0.01, ' 0^o', 'fontsize', Nf, 'horiz', 'left', 'vert',
'middle');
text(-1.02, 0.01, '180^o',
'fontsize', Nf, 'horiz', 'right',
'vert', 'middle');
text(1.07*cos(pi/12), 1.07*sin(pi/12),
Nf+2, 'horiz', 'left');
'\phi',
if rays == 45,
x1 = 1/sqrt(2); y1 = 1/sqrt(2);
line([-x1,x1], [-y1,y1], 'linestyle', sty);
line([-x1,x1], [y1,-y1], 'linestyle', sty);
54
'fontsize',
text(1.04*x1, y1,
'45^o',
'fontsize',
'left', 'vert', 'bottom');
text(0.97*x1, -0.97*y1,
'-45^o', 'fontsize',
'left', 'vert', 'top');
text(-0.97*x1, 1.02*y1,
'135^o',
'fontsize',
'right', 'vert', 'bottom');
text(-1.01*x1, -1.01*y1, '-135^o', 'fontsize',
'right', 'vert', 'top');
else
x1 = cos(pi/3); y1 = sin(pi/3);
x2 = cos(pi/6); y2 = sin(pi/6);
line([-x1,x1], [-y1,y1], 'linestyle', sty);
line([-x2,x2], [-y2,y2], 'linestyle', sty);
line([-x2,x2], [y2,-y2], 'linestyle', sty);
line([-x1,x1], [y1,-y1], 'linestyle', sty);
text(1.02*x1,1.02*y1,
'60^o',
'horiz', 'left', 'vert', 'bottom');
text(0.95*x1,-0.97*y1,
'-60^o',
'horiz', 'left', 'vert', 'top');
text(1.04*x2,0.97*y2, '30^o', 'fontsize', Nf,
'vert', 'bottom');
text(0.98*x2,-0.93*y2,
'-30^o',
'horiz', 'left', 'vert', 'top');
text(-0.91*x1,1.02*y1,
'120^o',
'right', 'vert', 'bottom');
text(-0.97*x1,-1.01*y1, '-120^o',
'right', 'vert', 'top');
text(-1.02*x2,0.97*y2,
'150^o',
'right', 'vert', 'bottom');
text(-1.01*x2,-1.01*y2, '-150^o',
'right', 'vert', 'top');
end
Nf, 'horiz',
Nf,
'horiz',
Nf, 'horiz',
Nf,
'horiz',
'fontsize',
Nf,
'fontsize',
Nf,
'horiz', 'left',
'fontsize',
'fontsize',
'fontsize',
'fontsize',
'fontsize',
Nf,
Nf,
'horiz',
Nf,
'horiz',
Nf,
'horiz',
Nf,
'horiz',
s1 = sprintf('-%d', 0.25*Rm);
s2 = sprintf('-%d', 0.50*Rm);
s3 = sprintf('-%d', 0.75*Rm);
text(0.765, 0.125, s1, 'fontsize', Nf, 'horiz', 'left', 'vert',
'top');
text(0.515, 0.125, s2, 'fontsize', Nf, 'horiz', 'left', 'vert',
'top');
text(0.265, 0.125, s3, 'fontsize', Nf, 'horiz', 'left', 'vert',
'top');
text(0.55, -0.005,
'vert', 'top');
'dB',
'fontsize',
Nf,
'horiz',
'left',
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
55
% dbp2.m - polar gain plot in dB - 2*pi angle range
%
% Usage: h = dbp2(th, g, rays, Rm, width)
%
h = dbp2(th, g)
(equivalent to rays=30,
Rm=40, width=1)
%
h = dbp2(th, g, rays)
(equivalent to Rm=40,
width=1)
%
h = dbp2(th, g, rays, Rm)
(equivalent to width=1)
%
% th
= polar angles over [0,pi]
% g
= gain at th (g is in absolute units)
% rays = ray grid at 30 degree (default) or at 45 degree angles
% Rm
= minimum dB level (Rm = 40 dB by default)
% width = linewidth of gain curve (width=1 by default)
%
% h
= handle to use for adding more gains and legends (see
DBADD)
%
% examples: dbp2(th, g);
default (30-degree lines
and 40-dB scale)
%
dbp2(th, g, 45);
use 45-degree grid lines
%
dbp2(th, g, 30, 60);
30-degree rays and 60-dB
scale
%
dbp2(th, g, 30, 60, 1.5);
use thicker line for
gain
%
% notes: makes polar plot of gdb=10*log10(g) versus th,
%
%
%
max-g is assumed to be unity (e.g., as in the output of
ARRAY),
%
grid circles at Rm/4, 2Rm/4, 3Rm/4 are added and
labeled,
%
for EPS output, use width=1.50 for thicker gain line
(thinnest width=0.75)
%
function h = dbp(th, g, rays, Rm, width)
if
if
if
if
nargin==0, help dbp; return; end
nargin<3, rays = 30; end
nargin<4, Rm = 40; end
nargin<5, width = 1; end
sty = ':';
style
% grid line
gdb = g .* (g > eps) + eps * (g <= eps);
into g=eps, avoids -Inf's
gdb = 10 * log10(gdb);
56
% make g=0
gdb = gdb .* (gdb > -Rm) + (-Rm) * (gdb <= -Rm);
-Rm dB
gdb = (gdb + Rm)/Rm;
unity max.
% lowest is
% scale to
x = gdb .* sin(th);
plotted vertically
y = gdb .* cos(th);
% x-axis
N0 = 400;
phi0 = (0:N0) * 2*pi / N0;
x0 = sin(phi0);
circles
y0 = cos(phi0);
% gain
h = plot(x, y, 'LineWidth', width);
hold on;
plot(x0, y0, 0.75*x0, 0.75*y0, sty,
0.25*x0, 0.25*y0, sty);
0.50*x0,
0.50*y0,
sty,
axis square;
R = 1.1;
axis([-R, R, -R, R]);
axis off;
Nf = 15;
% fontsize of labels
line([0,0],[-1,1]);
line([-1,1],[0,0]);
text(0, 1.02,
' 0^o',
'vert', 'bottom');
text(0, -0.99, ' 180^o',
'vert', 'top');
'fontsize', Nf, 'horiz', 'center',
'fontsize',
Nf,
'horiz',
'center',
text(1, 0.01, ' 90^o', 'fontsize', Nf, 'horiz', 'left', 'vert',
'middle');
text(-1.02, 0.01, '90^o',
'fontsize', Nf, 'horiz', 'right',
'vert', 'middle');
text(1.07*cos(5*pi/12),
1.07*sin(5*pi/12),
'fontsize', Nf+2, 'horiz', 'left');
text(-1.07*cos(5*pi/12),
1.07*sin(5*pi/12),
'fontsize', Nf+2, 'horiz', 'right');
if rays == 45,
x1 = 1/sqrt(2); y1 = 1/sqrt(2);
line([-x1,x1], [-y1,y1], 'linestyle', sty);
line([-x1,x1], [y1,-y1], 'linestyle', sty);
57
'\theta',
'\theta',
text(1.04*x1, y1,
'45^o',
'fontsize',
'left', 'vert', 'bottom');
text(0.98*x1, -0.98*y1,
'135^o', 'fontsize',
'left', 'vert', 'top');
text(-0.97*x1, 1.02*y1,
'45^o',
'fontsize',
'right', 'vert', 'bottom');
text(-1.01*x1, -1.01*y1, '135^o', 'fontsize',
'right', 'vert', 'top');
else
x1 = cos(pi/3); y1 = sin(pi/3);
x2 = cos(pi/6); y2 = sin(pi/6);
line([-x1,x1], [-y1,y1], 'linestyle', sty);
line([-x2,x2], [-y2,y2], 'linestyle', sty);
line([-x2,x2], [y2,-y2], 'linestyle', sty);
line([-x1,x1], [y1,-y1], 'linestyle', sty);
Nf, 'horiz',
Nf,
'horiz',
Nf,
'horiz',
Nf,
'horiz',
text(1.02*x1,1.02*y1,
'30^o',
'fontsize', Nf,
'left', 'vert', 'bottom');
text(0.96*x1,-0.98*y1,
'150^o',
'fontsize',
Nf,
'left', 'vert', 'top');
text(1.04*x2,0.97*y2,
'60^o',
'fontsize', Nf,
'left', 'vert', 'bottom');
text(x2,-0.95*y2,
'120^o', 'fontsize', Nf,
'left', 'vert', 'top');
'horiz',
text(-0.91*x1,1.02*y1,
'right', 'vert', 'bottom');
text(-0.97*x1,-1.01*y1,
'right', 'vert', 'top');
text(-1.02*x2,0.97*y2,
'right', 'vert', 'bottom');
text(-1.01*x2,-1.01*y2,
'right', 'vert', 'top');
end
'horiz',
'30^o',
'150^o',
'60^o',
'120^o',
'fontsize',
'fontsize',
'fontsize',
'fontsize',
Nf,
'horiz',
'horiz',
'horiz',
Nf,
'horiz',
Nf,
'horiz',
Nf,
'horiz',
s1 = sprintf('-%d', 0.25*Rm);
s2 = sprintf('-%d', 0.50*Rm);
s3 = sprintf('-%d', 0.75*Rm);
text(0.765, 0.125, s1, 'fontsize', Nf, 'horiz', 'left', 'vert',
'top');
text(0.515, 0.125, s2, 'fontsize', Nf, 'horiz', 'left', 'vert',
'top');
text(0.265, 0.125, s3, 'fontsize', Nf, 'horiz', 'left', 'vert',
'top');
text(0.55, -0.005,
'vert', 'top');
'dB',
'fontsize',
Nf,
'horiz',
'left',
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
58
OUTPUT
:
120o
90o
30o
60o
150o
0o
30o
60o
30o
60o
-30 -20 -10 0o
dB
180
-30o
-150o
-120o
-90o
-30 -20 -10 90o
dB
90o
120o
120o
-60o
150o
CONCLUSIONS :
59
180o
150o
Practical - 16
AIM
To write a program to plot the radiation pattern for Binomial
antenna array.
THEORY :
60
MATLAB PROGRAM :
% tic;
clear;
clc;
%%Intialisation
% AF
=
zeros(1,360);
% AE
=
zeros(1,360);
%%ACCEPTING INPUTS..
N= 7;%input('\nEnter the number of Elements::->');
d= 0.5;%input('\nEnter the distance between the elements::>');
k= 360;
beta=
0;
theta=1:360;
%%CALCULATING ARRAY FACTOR AND ARRAY ELEMENT...
psi=
AF=
AE=
(k.*d.*cosd(theta)) + beta;
(1+exp(1j.*(deg2rad(psi)))).^(N-1);
(cosd(90.*cosd(theta)))./sind(theta);
AF=abs(AF);
%%PLOTTING...
theta= linspace(0,2*pi,360);
subplot(221);
polar(theta,AE)
subplot(222);
polar(theta,AF)
subplot(2,2,[3,4]);
polar(theta,AE.*AF)
legend('Binomial array','Location','SouthEastOutside')
toc;
61
OUTPUT
Elapsed time is 0.572803 seconds.
120
90 1
60
0.5
30
150
180
120
150
210
180
330
240
270
120
150
90 100
60
50
30
0
210
300
330
240
270
90 100
60
50
30
180
210
330
240
270
300
Binomial array
CONCLUSIONS :
62
300
Practical - 17
AIM : To write a program to plot radiation pattern for Broadside antenna
array.
THEORY :
63
MATLAB PROGRAM :
%%MATLAB PROGRAM FOR BROADSIDE ARRAY....
clear;
clc;
tic;
%%Initialising
AF
=
zeros(1,360);
AE
=
zeros(1,360);
theta=1:360;
%%ACCEPTING INPUTS..
N=
d=
k=
c=
input('\nEnter the number of Elements::->');
input('\nEnter the distance between the elements::->');
360;
(k.*d)./2;
%%CALCULATING ARRAY FACTOR AND ARRAY ELEMENT...
num=
den=
AF =
AE =
((1./N).*sind(N.*c.*cosd(theta)));
sind(c.*cosd(theta));
num./den;
(cosd(90.*cosd(theta)))./sind(theta);
AF=abs(AF);
%%PLOTTING...
theta= linspace(0,2*pi,360);
subplot(221);
polar(theta,AE)
subplot(222);
polar(theta,AF)
subplot(2,2,[3,4]);
polar(theta,AE.*AF)
legend('Broadside array','Location','SouthEastOutside')
toc;
64
OUTPUT
Enter the number of Elements::->5
Enter the distance between the elements::->0.5
Elapsed time is 11.856490 seconds.
90 1
120
60
0.5
30
150
180
120
180
330
240
270
120
60
0.5
30
150
210
90 1
210
300
330
240
270
90 1
60
0.5
30
150
180
210
330
240
270
300
Broadside array
CONCLUSIONS :
65
300
Practical - 18
AIM : To write a program to plot radiation pattern for Endfire antenna
array.
THEORY :
66
MATLAB PROGRAM :
% clear;
clc;
tic;
%%Initialisation
%AF
=
zeros(1,360);
%AE
=
zeros(1,360);
theta=1:360;
%%ACCEPTING INPUTS..
N=
d=
k=
c=
input('\nEnter the number of Elements::->');
input('\nEnter the distance between the elements::->');
360;
(k.*d)./2;
%%CALCULATING ARRAY FACTOR AND ARRAY ELEMENT...
num=
den=
AF=
AE=
((1./N).*sind(N.*c.*(cosd(theta)+1)));
sind(c.*(cosd(theta)+1));
num./den;
(cosd(90.*cosd(theta-90)))./sind(theta-90);
AF=abs(AF);
%%PLOTTING...
theta= linspace(0,2*pi,360);
subplot(221);
polar(theta,AE)
subplot(222);
polar(theta,AF)
subplot(2,2,[3,4]);
polar(theta,AE.*AF)
legend('Endfire array','Location','SouthEastOutside')
toc;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
67
OUTPUT
Enter the number of Elements::->5
Enter the distance between the elements::->0.5
Elapsed time is 6.356738 seconds.
90 1
120
60
0.5
30
150
180
120
180
330
240
270
210
300
120
60
0.5
30
150
210
90 1
330
240
270
90 1
60
0.5
30
150
180
210
330
240
270
300
Endfire array
CONCLUSIONS :
68
300
Practical - 19
AIM
To write a program to plot 3D radiation pattern for Binomial
antenna array.
THEORY :
69
MATLAB PROGRAM :
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% MATLAB code for Binomial Array in 3D
%% Pre-initialisation
clear;
clc;
close all;
%% Accepting inputs
N = input('\nEnter the number of Elements::(eg., 5,6,7,etc)>');
d = input('\nEnter the distance between the
elements::(eg.,0.4,0.5,etc)->');
tic;
k = 2*pi;
beta =
0;
[theta phi]=meshgrid(linspace(0,2*pi,180));
%% Calculating Array element(AE) and Array Factor(AF)
psi =
(k.*d.*cos(theta))
AF
AF
(1+exp(1j.*(psi))).^(N-1);
AF - min(min(AF));
=
=
+ beta;
AE = sqrt(1- ((sin(theta).^2).*(cos(phi).^2)));
%% Calculating Array Pattern(AP)
% Array Pattern is calculated as follows,
%
% Array Pattern = ArrayFactor * ArrayElement
AP = AF .* AE;
toc;
%% Plotting results
[x1,y1,z1] = sph2cart(phi,theta,abs(AE));
surf(x1,y1,z1,'FaceLighting','phong',...
'LineStyle','none',...
'FaceColor',[1 0 0]);
70
legend('Array Element','Location','SouthEastOutside')
light('Style','local',...
'Position',[-10.162701816704 -0.924193626363743
14.9951905283833]);
axis image
figure
[x2,y2,z2] = sph2cart(phi,theta,abs(AF));
surf(x2,y2,z2,'FaceLighting','phong',...
'LineStyle','none',...
'FaceColor',[1 0 0]);
light('Style','local',...
'Position',[-10.162701816704 -0.924193626363743
14.9951905283833]);
legend('Array Factor','Location','SouthEastOutside')
axis image
figure
[x3,y3,z3] = sph2cart(phi,theta,abs(AP));
surf(x3,y3,z3,'FaceLighting','phong',...
'LineStyle','none',...
'FaceColor',[1 0 0]);
light('Style','local',...
'Position',[-10.162701816704 -0.924193626363743
14.9951905283833]);
legend('Array Pattern','Location','SouthEastOutside')
axis image
OUTPUT
Enter the number of Elements::(eg., 5,6,7,etc)->6
Enter the distance between the elements::(eg.,0.4,0.5,etc)>0.5
Elapsed time is 0.056854 seconds.
71
CONCLUSIONS :
72
Practical - 20
AIM
To write a program to plot 3D radiation pattern for Broadside
antenna array.
THEORY :
73
MATLAB PROGRAM :
%%% MATLAB code for Broadside Array in 3D
%% Pre-initialisation
clear;
clc;
close all;
%% Accepting inputs
N = input('\nEnter the number of Elements::(eg., 5,6,7,etc)>');
d = input('\nEnter the distance between the
elements::(eg.,0.4,0.5,etc)->');
tic;
[theta phi] = meshgrid(linspace(0,2*pi,180));
k = 2*pi;
c = (k.*d)./2;
%% Calculating Array element(AE) and Array Factor(AF)
num
den
AF
AF
=
=
=
=
((1./N).*sin(N.*c.*cos(theta)));
sin(c.*cos(theta));
num./den;
AF - min(min(AF));
AE = sqrt(1- ((sin(theta).^2).*(cos(phi).^2)));
%% Calculating Array Pattern(AP)
% Array Pattern is calculated as follows,
%
% Array Pattern = ArrayFactor * ArrayElement
AP = AF .* AE;
toc;
%% Plotting results
[x1,y1,z1] = sph2cart(phi,theta,AE);
surf(x1,y1,z1,'FaceLighting','phong',...
'LineStyle','none',...
'FaceColor',[1 0 0]);
legend('Array Element','Location','SouthEastOutside')
axis image
74
light('Style','local',...
'Position',[-10.162701816704 -0.924193626363743
14.9951905283833]);
figure
[x2,y2,z2] = sph2cart(phi,theta,AF);
surf(x2,y2,z2,'FaceLighting','phong',...
'LineStyle','none',...
'FaceColor',[1 0 0]);
legend('Array Factor','Location','SouthEastOutside')
axis image
light('Style','local',...
'Position',[-10.162701816704 -0.924193626363743
14.9951905283833]);
figure
[x3,y3,z3] = sph2cart(phi,theta,AP);
surf(x3,y3,z3,'FaceLighting','phong',...
'LineStyle','none',...
'FaceColor',[1 0 0]);
legend('Array Pattern of Broadside
array','Location','SouthEastOutside')
axis image
light('Style','local',...
'Position',[-10.162701816704 -0.924193626363743
14.9951905283833]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%
75
OUTPUT
Enter the number of Elements::(eg., 5,6,7,etc)->6
Enter the distance between the elements::(eg.,0.4,0.5,etc)>0.5
Elapsed time is 0.173608 seconds.
CONCLUSIONS :
76
Practical - 21
AIM
To write a program to plot 3D radiation pattern for Endfire
antenna array
THEORY :
77
MATLAB PROGRAM :
%%% MATLAB code for Endfire Array in 3D
%% Pre-initialisation
clear;
clc;
close all;
%% Accepting inputs
N = input('\nEnter the number of Elements::(eg., 5,6,7,etc)>');
d = input('\nEnter the distance between the
elements::(eg.,0.4,0.5,etc)->');
tic;
[theta phi] = meshgrid(linspace(0,2*pi,360));
k = 2*pi;
c = (k.*d)./2;
%% Calculating Array element(AE) and Array Factor(AF)
num = ((1./N).*sin(N.*c.*(cos(theta)+1)));
den = sin(c.*(cos(theta)+1));
AF
AF
= num./den;
= AF - min(min(AF));
AE = sqrt(1- ((sin(theta).^2).*(cos(phi).^2)));
%% Calculating Array Pattern(AP)
% Array Pattern is calculated as follows,
%
% Array Pattern = ArrayFactor * ArrayElement
AP = AF .* AE;
toc;
%% Plotting results
[x1,y1,z1] = sph2cart(phi,theta,AE);
surf(x1,y1,z1,'FaceLighting','phong',...
'LineStyle','none',...
'FaceColor',[1 0 0]);
legend('Array Element','Location','SouthEastOutside')
78
axis image
light('Style','local',...
'Position',[-10.162701816704 -0.924193626363743
14.9951905283833]);
figure
[x2,y2,z2] = sph2cart(phi,theta,AF);
surf(x2,y2,z2,'FaceLighting','phong',...
'LineStyle','none',...
'FaceColor',[1 0 0]);
legend('Array Factor','Location','SouthEastOutside')
axis image
light('Style','local',...
'Position',[-10.162701816704 -0.924193626363743
14.9951905283833]);
figure
[x3,y3,z3] = sph2cart(phi,theta,AP);
surf(x3,y3,z3,'FaceLighting','phong',...
'LineStyle','none',...
'FaceColor',[1 0 0]);
legend('Array Pattern of Endfire
Array','Location','SouthEastOutside')
axis image
light('Style','local',...
'Position',[-10.162701816704 -0.924193626363743
14.9951905283833]);
OUTPUT
Enter the number of Elements::(eg., 5,6,7,etc)->6
Enter the distance between the elements::(eg.,0.4,0.5,etc)>0.5
Elapsed time is 0.136698 seconds.
79
CONCLUSIONS :
80
Practical - 22
AIM
To write a program to plot 3-D Radiation Pattern of Dipole
Antenna.
THEORY :
81
MATLAB PROGRAM :
%
%
%
%
Name:
RadPattern3D
Description:
3-D Radiation Pattern of Dipole Antenna
Reference
Constantine [Link], Antenna Theory
Analysis And Design , 3rd Edition, page 173, eq. 4-64
%*************************************************************
*************
%Usage:
%This program plots 3-D radiation Pattern of a Dipole Antenna
%All the parameters are entered in the M-File
clear all
%Defining variables in spherical coordinates
theta=[0:0.12:2*pi];%theta vector
phi=[0:0.12:2*pi];%phi vector
l_lamda1=1/100;% length of antenna in terms of wavelengths
I0=1;% max current in antenna structure
n=120*pi;%eta
% evaluating radiation intensity(U)
U1=( n*( I0^2 )*( ( cos(l_lamda1*cos(theta-(pi/2))/2) cos(l_lamda1/2) )./ sin(theta-(pi/2)) ).^2 )/(8*(pi)^2);
%converting to dB scale
U1_1=10*log10(U1);
%normalizing in order to make U vector positive
min1=min(U1_1);
U=U1_1-min1;
% expanding theta to span entire space
U(1,1)=0;
for n=1:length(phi)
theta(n,:)=theta(1,:);
end
% expanding phi to span entire space
phi=phi';
for m=1:length(phi)
phi(:,m)=phi(:,1);
end
% expanding U to span entire space
for k=1:length(U)
U(k,:)=U(1,:);
end
82
% converting to spherical coordinates
[x,y,z]=sph2cart(phi,theta,U);
%plotting routine
surf(x,y,z)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
OUTPUT
30
20
10
0
-10
-20
-30
40
20
40
20
-20
-20
-40
-40
CONCLUSIONS :
83