Antenna Analysis and Design in MATLAB

By Nishant Mittal

Fig. 1: Antenna aperture (Courtesy:
Fig. 1: Antenna aperture (Courtesy:

Today, almost all applications are expected to be wireless, consume very little power and have high data retention capability. For this, selection of an effective media at the physical layer is important. Today, several wireless devices featuring ZigBee protocol, IR transceiver, RF transceiver and dish antennas are commonly used. Antenna plays a vital role in all these devices.

A good antenna design can result in a high degree of efficiency, better directivity and more beamwidth for long-distance transmission without much loss of information. Here is a program written in MATLAB for designing antenna arrays & antenna analysis.

Before delving into the MATLAB program, let’s go through the basics of some parameters required for antenna analysis & design, such as signal radiation pattern, sidelobes, efficiency, beamwidth and directivity.

Fig. 2: Antenna beamwidth (Courtesy:
Fig. 2: Antenna beamwidth (Courtesy:

Antenna basics

Fig. 3: Cell-tower antenna array (Courtesy:
Fig. 3: Cell-tower antenna array (Courtesy:

Fig. 1 shows the aperture of a typical antenna. Here BWΦ denotes the azimuth beamwidth and BWθ the elevation beamwidth. Beamwidth is normally measured at the half-power or -3dB point of the main lobe, unless otherwise specified.

According to the official website of the Antartic Impulsive Transient Antenna (ANITA,, the gain or directivity of the antenna is the ratio of the radiation intensity in a given direction to the radiation intensity averaged over all directions. The difference between directivity and gain is that the directivity neglects antenna losses such as dielectric, resistance, polarisation and voltage standing wave ratio (VSWR) losses. Since these losses are usually quite small in most classes of antennas, directivity and gain are approximately equal, disregarding unwanted pattern characteristics.

However, antennas are different practically, and do not have ideal radiation distribution. Energy varies with angular displacement and losses occur due to sidelobes.

Fig. 4: Typical antenna radiation pattern with side lobes
Fig. 4: Typical antenna radiation pattern with side lobes

If you can measure the radiation pattern, and determine the beamwidth, you can use two or more ideal antenna models to approximate a real antenna pattern as shown in Fig. 2. Assuming the antenna pattern to be uniform, gain G is equal to the area of the isotropic sphere divided by the sector (cross-section) area as:

Antenna gain formula

Antenna efficiency is a factor that includes all reductions from the maximum gain. It can be expressed as a percentage or in dB. Several types of losses must be accounted for while determining the efficiency:

1. Illumination efficiency, which is the ratio of the directivity of the antenna to that of a uniformly illuminated antenna of the same aperture size

2. Phase-error loss or loss due to the aperture not being a uniform phase surface

3. Spillover loss (for reflector antennas), which reflects the energy spilling beyond the edge of the reflector into the back lobes of the antenna

4. Mismatch loss expressed as voltage standing wave ratio (VSWR), derived from the reflection at the feed port due to impedance mismatch—especially important for low-frequency antennas

5. RF losses between the antenna and the antenna feed port or measurement point


  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