Yagi-Uda Antenna
Yagi-Uda Antenna
Naveela Sookoo
Electrical and Computer Engineering Department, University of Waterloo
The geometry of the antenna is shown in Fig. 2. Assuming that the driven dipole has a current of magnitude
1.0, the first director and reflector has a current of magnitude
0.9 and the rest of the directors have a current of magnitude 0.6,
the corresponding currents in each element are shown in Table
0.25
2.
Yagi_Uda.m
clear all
close all
clc
Directivity =
(4*pi*5.2^2)/dblquad('abs((0.9*exp(
j*0.2*pi*(1 - sin(x)*sin(y)))+ 1 + 0.9*exp(-
j*0.3*pi*(1 - sin(x)*sin(y)))+ 0.60*exp(-
j*0.6*pi*(1 - sin(x)*sin(y))) + 0.60*exp(-
j*0.9*pi*(1 - sin(x)*sin(y))) + 0.60*exp(-
j*1.2*pi*(1 - sin(x)*sin(y)))+ 0.60*exp(-
j*1.5*pi*(1 -
sin(x)*sin(y)))).^2.*((cos(x).^2.*cos(y).^2) +
sin(y).^2)).*(sin(x))',0,pi,0,2*pi)
Fig. 11. Reflection Loss (dB) versus Frequency (MHz)
10*log10(Directivity)
disp('dB');
%*********************************************
%------------------E-FIELD--------------------
%*********************************************
Ee1 = 0.9*exp(j*0.2*pi*(1 - sin(phi)));
Ee2 = 1;
Ee3 = 0.9*exp(-j*0.3*pi*(1 - sin(phi)));
Ee4 = 0.60*exp(-j*0.6*pi*(1 - sin(phi)));
Ee5 = 0.60*exp(-j*0.9*pi*(1 - sin(phi)));
Ee6 = 0.60*exp(-j*1.2*pi*(1 - sin(phi)));
Ee7 = 0.60*exp(-j*1.5*pi*(1 - sin(phi)));
Ee8 = sin(phi);
figure(1)
V. CONCLUSION %Normalise Ee
In this project, a 7-element end-fire Yagi-Uda was designed Enorm=Ee./Emax;
and its characteristics such as radiation pattern plot, gain, polar_dB(phi_deg,20.*log10(abs(Enorm)),-
directivity, front-to-back ratio (peak forward and peak 20,0,4,'b-');
backward power), SWR, reflection coefficient and reflection %*********************************************
loss were measured and calculated using simulation software %-------------------H-FIELD-------------------
and MATLAB code. The results obtained confirmed that the %*********************************************
proposed design can be applied to applications with an He1 = 0.9*exp(j*0.2*pi*(1 - sin(tetha)));
operating frequency of 600 MHz. He2 = 1;
He3 = 0.9*exp(-j*0.3*pi*(1 - sin(tetha))); % parameters
He4 = 0.60*exp(-j*0.6*pi*(1 - sin(tetha))); font_size = 16;
He5 = 0.60*exp(-j*0.9*pi*(1 - sin(tetha))); font_name = 'Times';
He6 = 0.60*exp(-j*1.2*pi*(1 - sin(tetha))); line_width = 1.5;
He7 = 0.60*exp(-j*1.5*pi*(1 - sin(tetha)));
if nargin < 5
He = sqrt((He1 + He2 + He3 + He4 + He5 + He6 + error('Requires 5 or 6 input
He7).^2); arguments.')
Hmax=max(abs(He)); elseif nargin == 5
if isstr(rho)
figure(2) line_style = rho;
%Normalise He rho = theta;
Hnorm=He./Hmax; [mr,nr] = size(rho);
polar_dB(tetha_deg,20.*log10(abs(Hnorm)),- if mr == 1
20,0,4,'b-'); theta = 1:nr;
else
%********************************************* th = (1:mr)';
Pnorm = abs(Enorm).^2; theta = th(:,ones(1,nr));
figure(3) end
plot(phi_deg,Pnorm,'b-'); grid on else
line_style = 'auto';
polar_dB.m end
%********************************************% elseif nargin == 1
polar_dB(theta,rho,rmin,rmax,rticks,line_style line_style = 'auto';
) rho = theta;
%********************************************* [mr,nr] = size(rho);
% POLAR_DB is a MATLAB function that plots 2-D if mr == 1
% patterns in polar coordinates where: theta = 1:nr;
% 0 <= THETA (in degrees) <= 360 else
% -infinity < RHO (in dB) < +infinity th = (1:mr)';
% theta = th(:,ones(1,nr));
% Input Parameters Description end
% ---------------------------- end
% - theta (in degrees) must be a row vector if isstr(theta) | isstr(rho)
% from 0 to 360 degrees error('Input arguments must be
% - rho (in dB) must be a row vector numeric.');
% - rmin (in dB) sets the minimum limit of the end
% plot (e.g., -60 dB) if any(size(theta) ~= size(rho))
% - rmax (in dB) sets the maximum limit of the error('THETA and RHO must be the same
% plot (e.g., 0 dB) size.');
% - rticks is the # of radial ticks (or end
% circles) desired. (e.g., 4)
% - linestyle is solid (e.g., '-') or dashed % get hold state
% (e.g., '--') cax = newplot;
%********************************************* next = lower(get(cax,'NextPlot'));
% Credits: hold_state = ishold;
% S. Bellofiore
% S. Georgakopoulos % get x-axis text color so grid is in same
% A. C. Polycarpou % color
% C. Wangsvick tc = get(cax,'xcolor');
% C. Bishop
% % Hold on to current Text defaults, reset them
% Tabulate your data accordingly, and call % to the Axes' font attributes so tick marks
% polar_dB to provide the 2-D polar plot % use them.
% fAngle = get(cax, 'DefaultTextFontAngle');
%--------------------------------------------- fName = get(cax, 'DefaultTextFontName');
fSize = get(cax, 'DefaultTextFontSize');
function hpol = fWeight = get(cax, 'DefaultTextFontWeight');
polar_dB(theta,rho,rmin,rmax,rticks,line_style set(cax, 'DefaultTextFontAngle', get(cax,
) 'FontAngle'), ...
'DefaultTextFontName', font_name, ...
% Convert degrees into radians 'DefaultTextFontSize', font_size, ...
theta = theta * pi/180; 'DefaultTextFontWeight', get(cax,
'FontWeight') )
% Font size, font style and line width
% only do grids if hold is off sn2 = [(rmax-rmin-george)*snt2; (rmax-
if ~hold_state rmin)*snt2];
plot(cs2,sn2,'-
% make a radial grid ','color',tc,'linewidth',0.15); % 0.5
hold on; plot(-cs2,-sn2,'-
% v returns the axis limits ','color',tc,'linewidth',0.15); % 0.5
% changed the following line to let the y
% limits become negative
hhh=plot([0 max(theta(:))],[min(rho(:)) % annotate spokes in degrees
max(rho(:))]); % Changed the next line to make the spokes
v = [get(cax,'xlim') get(cax,'ylim')]; % long enough
ticks = length(get(cax,'ytick')); rt = 1.1*(rmax-rmin);
delete(hhh); for i = 1:max(size(th))