MATLAB Examples

Radiation Pattern Optimization of a 6 element Yagi-Uda Antenna

This example, optimizes a 6 element Yagi-Uda antenna for higher directivity at zenith (elevation = 90 deg). The design frequency and typical dimensions of the metal structures are chosen for VHF operation [2]. The design of a Yagi-Uda is a challenging task owing to the sensitivity of the pattern to physical parameters. This example will design a Yagi-Uda antenna by using a direct search based optimization approach. The Yagi-Uda antenna is a widely used radiating structure for a variety of applications in commercial and military sectors. Arguably, the most popular use of this antenna was in reception of TV signals in the VHF-UHF range of frequencies [1]. The Yagi is a directional traveling-wave antenna with a single driven element, usually a folded dipole or a standard dipole, which is surrounded by several passive dipoles. The passive elements form the reflector and director, with the name identifying the position relative to the driven element. The reflector dipole is positioned behind the driven element in the direction of the back lobe of the antenna radiation while the director, as the name suggests, is placed in front of the driven element, in the direction where a main beam would form.

This example requires the following product:

  • Global Optimization Toolbox™


Design Parameters

We begin the process of designing the Yagi-Uda antenna using optimization techniques. Choose the design frequency at the center of the VHF band [2].

freq = 165e6;
wirediameter = 19e-3;
c = physconst('lightspeed');
lambda = c/freq;

Create Yagi-Uda Antenna

The driven element for the Yagi-Uda antenna is a folded dipole. This is a standard exciter for such an antenna due to the required higher input impedance. Adjust the length and width parameters of the folded dipole. Since we model cylindrical structures as equivalent metal strips, the width is calculated using a utility function available in the Antenna Toolbox™. The length is chosen to be $\lambda/2$ at the design frequency.

d = dipoleFolded;
d.Length = lambda/2;
d.Width = cylinder2strip(wirediameter/2);
d.Spacing = d.Length/60;

Create a Yagi-Uda antenna with the exciter as the folded dipole. Choose the reflector and director length to be $\lambda/2$. Choose the reflector and director spacing to be $0.3\lambda$, $0.25\lambda$ respectively. These choices are an initial guess and will serve as a start point for the optimization procedure.

Numdirs = 4;
refLength = 0.5;
dirLength = 0.5*ones(1,Numdirs);
refSpacing = 0.3;
dirSpacing = 0.25*ones(1,Numdirs);
initialdesign = [dirLength refSpacing dirSpacing].*lambda;
yagidesign = yagiUda;
yagidesign.Exciter = d;
yagidesign.NumDirectors = Numdirs;
yagidesign.ReflectorLength = refLength*lambda;
yagidesign.DirectorLength = dirLength.*lambda;
yagidesign.ReflectorSpacing = refSpacing*lambda;
yagidesign.DirectorSpacing = dirSpacing*lambda;

Plot Radiation Pattern at Design Frequency

Prior to executing the optimization process, plot the radiation pattern for the initial guess in 3D.

fig1 = figure;

As expected, this antenna does not have a higher directivity in the direction we desire, i.e. at zenith (elevation = 90 deg). Overall the initial Yagi-Uda antenna design is a poorly designed radiator.

Set up Optimization Parameters

Our optimization will include the parasitic element lengths and the inter-element spacings. We establish lower and upper bounds on the allowed reflector length and director lengths as well as the spacings in terms of $\lambda$. We choose a 60 degree sector around zenith to compute the directivity, with the ultimate goal of maximizing the directed radiation in this sector as compared to sidelobes and the backlobe.

dirLengthBounds = [0.40 0.40 0.40 0.40;   % lower bound on director length
                   0.495 0.495 0.495 0.495];  % upper bound on director length
refSpacingBounds = [0.05;                 % lower bound on reflector spacing
                    0.30];                % upper bound on reflector spacing
dirSpacingBounds = [0.05 0.05 0.05 0.05;  % lower bound on director spacing
                    0.23 0.23 0.23 0.23]; % upper bound on director spacing

LB = [dirLengthBounds(1,:) refSpacingBounds(1) dirSpacingBounds(1,:) ].*lambda;
UB = [dirLengthBounds(2,:) refSpacingBounds(2) dirSpacingBounds(2,:) ].*lambda;
parasitic_values = [ yagidesign.DirectorLength,                         ...
                     yagidesign.ReflectorSpacing                        ...

elang = [60 120];                   % elevation beamwidth angles at az = 90

Direct Search Optimization

The Global Optimization Toolbox™ provides a direct search based optimization function called patternsearch. We use this function with two options specified with the psoptimset function. At every iteration, plot the best value of the objective function and limit the total number of iterations to 30. The objective function aims to maximize the difference between the maximum directivity of the main beam and the maxima of sidelobes and the back-lobe. Pass the objective function to the patternsearch function by using an anonymous function together with the bounds and the options structure.The objective function used during the optimization process by patternsearch is available in the file yagi_objective_function.

The evaluation of the directivity in different directions corresponding to the angular region defined for maximum radiation as well as maximum sidelobe/ and the backlobe level is given in the function calculate_objectives available within yagi_objective function.

patternoptions = psoptimset(@patternsearch);
patternoptions.PlotFcns = @psplotbestf;
patternoptions.MaxIter = 50;
optimdesign = patternsearch(@(x) yagi_objective_function(yagidesign,x,freq,elang),...
Maximum number of iterations exceeded: increase options.MaxIterations.

Plot Optimized Pattern

The optimized antenna pattern is now plotted at the design frequency.

yagidesign.DirectorLength = optimdesign(1:4);
yagidesign.ReflectorSpacing = optimdesign(5);
yagidesign.DirectorSpacing  = optimdesign(6:9);
fig2 = figure;

E and H-Plane Cuts of Pattern

To obtain a better insight into the behavior in the two orthogonal planes, we plot the normalized magnitude of the electric field in the E and H-planes, i.e. azimuth = 0 and 90 deg respectively.

fig3 = figure;
fig4 = figure;

The optimized design shows a significant improvement in the radiation pattern. There is higher directivity achieved in the desired direction toward zenith. The back lobe is small resulting in a good front to back ratio for this antenna. Let us calculate the directivity at zenith , the Front-to-Back ratio and the beamwidth in E and H-planes, respectively.

D_max = pattern(yagidesign,freq,0,90);
D_back = pattern(yagidesign,freq,0,-90);
F_B_ratio = D_max - D_back;
Eplane_beamwidth = beamwidth(yagidesign,freq,0,1:1:360);
Hplane_beamwidth = beamwidth(yagidesign,freq,90,1:1:360);

Comparison with Manufacturer Data Sheet

The optimized Yagi-Uda antenna achieves a forward directivity of 10.2 dBi, which translates to 8.1 dBd (relative to a dipole). This is close to the gain value reported by the datasheet (8.5 dBd). The F/B ratio is 30 dB. The optimized Yagi-Uda antenna has a E-plane beamwidth of 55 deg while the datasheet lists the E-plane beamwidth of 56 deg. The H-plane beamwidth of the optimized Yagi-uda antenna is 67 deg, which is slightly broader than the datasheet listed value of 63 deg. Furthermore, impedance matching over the band has not been considered.

Tabulating Initial and Optimized Design

The initial design guesses and the final optimized design values are shown in the table below:

yagiparam=  {'Director Length - 1'; 'Director Length - 2';
             'Director Length - 3'; 'Director Length - 4';
             'Reflector Spacing';   'Director Spacing - 1';
             'Director Spacing - 2';'Director Spacing - 3';
             'Director Spacing - 4'};
initialdesign = initialdesign';
optimdesign = optimdesign';
T = table(initialdesign,optimdesign,'RowNames',yagiparam)
T =

  9x2 table

                            initialdesign    optimdesign
                            _____________    ___________

    Director Length - 1        0.90846         0.77438  
    Director Length - 2        0.90846         0.77438  
    Director Length - 3        0.90846         0.77438  
    Director Length - 4        0.90846         0.77438  
    Reflector Spacing          0.54508         0.10758  
    Director Spacing - 1       0.45423         0.16789  
    Director Spacing - 2       0.45423         0.29289  
    Director Spacing - 3       0.45423         0.41789  
    Director Spacing - 4       0.45423         0.29289  


[1] C. A. Balanis, Antenna Theory. Analysis and Design, p. 514, Wiley, New York, 3rd Edition, 2005

[2]Online at: