Antenna Analysis and Design in MATLAB

By Nishant Mittal


Effective capture area (Ae) is the product of the physical aperture area (A) and the aperture efficiency (η):


Thus gain is a function of aperture efficiency.

The gain of an antenna with losses is given by:


where ‘η’ is aperture efficiency, ‘A’ physical aperture area and ‘λ’ wavelength.

Note that the gain is proportional to the aperture area and inversely proportional to the square of the wavelength. So if the frequency is doubled, or the wavelength halved, the aperture could be decreased four times to maintain the same gain.

Radiation patterns of various antennas
According to ANITA’s website (, radiation patterns of the antennas presented in the previous section are for the most commonly used antenna geometries. The antenna should be viewed as a matching network that takes the power from a transmission line (50-ohm, for example) and matches it to the free space impedance of 377 ohms. The most critical parameter is the change of VSWR with frequency. The pattern usually does not vary much from acceptable to the start of unacceptable VSWRs (>2:1). For a given physical antenna geometric size, the actual radiation pattern varies with frequency.

Fig. 5: Cartesian plot
Fig. 5: Cartesian plot
Fig. 6: Polar plot
Fig. 6: Polar plot

Antenna arrays

According to, an antenna array, often called a ‘phased array,’ is a set of two or more antennas, as shown in Fig. 3. The signals from the antennas are combined or processed in order to achieve improved performance over a single antenna.

It is generally noticed that the antenna array factors for arrays with uniform weights have unequal sidelobe levels (refer Fig. 4). Often, it is desirable to reduce the highest sidelobes at the expense of increasing number of lower sidelobes. The optimal sidelobe level for a specified beamwidth will occur when the sidelobes are all equal in magnitude.

Fig. 7: Yagi-Uda antenna
Fig. 7: Yagi-Uda antenna
Fig. 8: Eleven-element Yagi-Uda antenna
Fig. 8: Eleven-element Yagi-Uda antenna

There is a method for obtaining weights for uniformly spaced linear arrays steered to broadside (θd=90 degrees). It is a popular weighting method because the sidelobe level can be specified, and the minimum possible null-null beamwidth obtained.

Figs 5 and 6 show cartesian and polar plots of the antenna radiation pattern, respectively. Effective selection of lamda (λ) and the number of elements can reduce the sidelobe level of antenna.

Yagi-Uda antenna

B9Z_TableYagi-Uda antenna (refer Fig. 7) is the most common terrestrial TV antenna used on the rooftops. It is usually used at frequencies between 30 MHz and 3 GHz, or a wavelength range of 10 metres to 10 cm.

The design of the antenna depends on the number of elements used in the antenna. The lengths of rods in a Yagi-Uda are about a half wavelength each, and the spacing of the elements about one-third of a wavelength.

As shown in the table, you can estimate the approximate operating frequency of a Yagi-Uda antenna by looking at its length from afar. A Yagi-Uda antenna with eleven elements is shown in Fig. 8.

To obtain the radiation pattern of a Yagi-Uda antenna in MATLAB program, a table with theta (or θ) values for polar angles and corresponding amplitudes of radiation patterns is required. These values can be obtained using antenna trainer. The data table should be saved in text (.txt) format.

MATLAB program

MATLAB R2008b or higher versions can be used for the program. The step-by-step procedure for program testing follows:
1. Run MATLAB from Desktop
2. Open ‘Expt_A1_2D.m’ file from ‘File’ menu
3. Import ‘Polalist-yagi uda.txt’ file from ‘File’ menu by selecting “Import Data” option
4. Click ‘Next’ button
5. Click ‘Finish’ button
6. Compile and run the program from ‘Debug’ menu by clicking ‘Run’ option
7. Go to the main MATLAB window. The command window will prompt you to enter the offset value for theta
8. Enter value like 90, 80 or anything as per your requirement and then press ‘Enter’ key
9. You should get the directivity output plots in polar as well as in cartesian forms

On entering the appropriate value, the program gives a good directivity plot. Maximum directivity is 4.483 or 6.5157 dB.

Download source code: click here


  1. error in matlab2016a:

    Undefined function or variable ‘data’.

    Error in Expt_A1_2D_Antenna_Polar_Radiation_Pattern (line 8)
    if ((size(data)~= [360,2])&&(size(data)~= [72,2]));

  2. Please go through the text again to get more detail on the type of antenna. It is for antenna array type including Yagi-Uda type…

  3. sir, i got error like this
    Undefined function or variable ‘data’.

    Error in a22 (line 5)
    if ((size(data)~= [360,2])&(size(data)~=
    what should i do now?


Please enter your comment!
Please enter your name here