Main Content

Array Modeling and Analysis

This example shows how to create, visualize, and analyze an antenna array using the Antenna Toolbox™.

Create Antenna Array

Create a default rectangular antenna array using the rectangularArray object from the array catalog. By default, the array uses a dipole antenna as an element.

ra = rectangularArray
ra = 
  rectangularArray with properties:

           Element: [1×1 dipole]
              Size: [2 2]
        RowSpacing: 2
     ColumnSpacing: 2
           Lattice: 'Rectangular'
    AmplitudeTaper: 1
        PhaseShift: 0
              Tilt: 0
          TiltAxis: [1 0 0]

Visualize Array Layout

Use the layout function to plot the position of the array elements in the xy-plane. By default, the rectangular array is a 4-element dipole array in a 2-by-2 rectangular lattice.

layout(ra)

Figure contains an axes object. The axes object with title Array Layout, xlabel x (m), ylabel y (m) contains 5 objects of type scatter, text.

Visualize Array Geometry

Use the show function to view the structure of the rectangular antenna array.

figure
show(ra)
title("2-by-2 Rectangular Array of Dipoles");

Figure contains an axes object. The axes object with title 2-by-2 Rectangular Array of Dipoles, xlabel x (m), ylabel y (m) contains 12 objects of type patch, surface. These objects represent PEC, feed.

Plot Radiation Pattern of Array

Use the pattern function to plot the radiation pattern of the rectangular array. The radiation pattern is the spatial distribution of the radiated power of an array. The pattern displays the directivity or gain of the array. By default, the pattern function plots the directivity of the array.

figure
pattern(ra,70e6)

Figure contains 2 axes objects and other objects of type uicontrol. Axes object 1 contains 12 objects of type patch, surface. Hidden axes object 2 contains 20 objects of type surface, line, text, patch.

Plot Azimuth and Elevation Pattern of Array

Use patternAzimuth and patternElevation functions to plot the azimuth and elevation patterns of the rectangular array. These are the 2D radiation patterns of the array at a specified frequency.

figure
patternAzimuth(ra,70e6)

Figure contains an axes object and an object of type uicontainer. The hidden axes object contains 2 objects of type line, text. This object represents el=0° .

figure
patternElevation(ra,70e6)

Figure contains an axes object and an object of type uicontainer. The hidden axes object contains 2 objects of type line, text. This object represents az=0° .

Calculate Directivity of Array

Directivity is the ability of an array to radiate power in a particular direction. It can be defined as the ratio of the maximum radiation intensity in the desired direction to the average radiation intensity in all other directions. Use the pattern function to calculate the directivity of the rectangular array.

[Directivity] = pattern(ra,70e6,0,90)
Directivity = 
-39.5713

Calculate Electromagnetic Fields of Array

Use the EHfields function to calculate the electromagnetic fields of the rectangular array. This function returns the x, y, and z components of the electric and magnetic fields of the array. These components are measured at a specific frequency and at specified points in space.

[E,H] = EHfields(ra,70e6,[0;0;1])
E = 3×1 complex

   0.0000 + 0.0000i
   0.0003 + 0.0013i
  -1.3346 - 0.0736i

H = 3×1 complex
10-5 ×

   0.0186 - 0.2052i
   0.0000 + 0.0000i
   0.0000 + 0.0000i

Plot Array Radiation Pattern for Different Polarizations

Use the Polarization name-value argument in the pattern function to plot the different polarization patterns of the rectangular array. Polarization is the orientation of the electric field, or E-field, of an array. Polarization is classified as elliptical, linear, or circular. This example shows the left-hand circularly polarized (LHCP) radiation pattern of the rectangular array.

pattern(ra,70e6,Polarization="LHCP")

Figure contains 2 axes objects and other objects of type uicontrol. Axes object 1 contains 12 objects of type patch, surface. Hidden axes object 2 contains 20 objects of type surface, line, text, patch.

Calculate Beamwidth of Array

Use the beamwidth function to calculate the beamwidth of the rectangular array. The beamwidth of an array is the angular measure of the array pattern coverage. The beamwidth angle is measured in the plane that contains the direction of main lobe of the array.

[bw,angles] = beamwidth(ra,70e6,0,1:1:360)
bw = 4×1

   44.0000
   44.0000
   44.0000
   44.0000

angles = 4×2

    28    72
   108   152
   208   252
   288   332

Calculate Scan Impedance of Array

Use the impedance function to calculate and plot the input impedance of rectangular array. Active impedance, or scan impedance, is the input impedance of each antenna element in an array, when all the elements are excited.

impedance(ra,60e6:1e6:70e6)

Figure contains an axes object and other objects of type uicontrol. The axes object with title Active Impedance, xlabel Frequency (MHz), ylabel Impedance (ohms) contains 2 objects of type line. These objects represent Resistance Element 1, Reactance Element 1.

You can also view the impedance of all four elements by changing the number of elements on the plot from 1 to 1:4. See the following figure.

Calculate Reflection Coefficient of Array

Use the sparameters function to calculate the S11 value of the rectangular array. S11 value gives the reflection coefficient of the array.

S = sparameters(ra,60e6:1e6:70e6,72)
S = 
  sparameters with properties:

      Impedance: 72
       NumPorts: 4
     Parameters: [4×4×11 double]
    Frequencies: [11×1 double]

rfplot(S)

Figure contains an axes object and other objects of type uicontrol. The axes object with xlabel Frequency (MHz), ylabel Magnitude (dB) contains 16 objects of type line. These objects represent dB(S_{11}), dB(S_{21}), dB(S_{31}), dB(S_{41}), dB(S_{12}), dB(S_{22}), dB(S_{32}), dB(S_{42}), dB(S_{13}), dB(S_{23}), dB(S_{33}), dB(S_{43}), dB(S_{14}), dB(S_{24}), dB(S_{34}), dB(S_{44}).

Calculate Return Loss of Array

Use the returnLoss function to calculate and plot the return loss of the rectangular array.

figure
returnLoss(ra,60e6:1e6:70e6,72)

Figure contains an axes object and other objects of type uicontrol. The axes object with title Active Return Loss, xlabel Frequency (MHz), ylabel Return Loss (dB) contains an object of type line. This object represents Element 1.

You can also view the return loss of all four elements by changing the number of elements on the plot from 1 to 1:4. See the following figure.

Calculate Charge and Current Distribution of Array

Use the charge and current functions to calculate the charge and current distribution on the rectangular array surface.

figure
charge(ra,70e6)

Figure contains an axes object. The axes object with title Charge distribution, xlabel x (m), ylabel y (m) contains 9 objects of type patch.

figure
current(ra,70e6)

Figure contains an axes object. The axes object with title Current distribution, xlabel x (m), ylabel y (m) contains 9 objects of type patch.

Calculate Correlation Coefficient of Array

Use the correlation to calculate the correlation coefficient of the rectangular array. The correlation coefficient is the relationship between the incoming signals at the antenna ports in an array.

correlation(ra,60e6:1e6:70e6,1,2)

Figure contains an axes object. The axes object with title Correlation coefficient (Element1, Element2), xlabel Frequency (MHz), ylabel Magnitude contains an object of type line.

Change Size of Array and Visualize Layout

Use the Size property of the rectangular array to change it to a 16-element dipole array.

ra.Size = [4 4];
figure
show(ra)
title("4-by-4 Rectangular Array of Dipoles with Uniform Spacing");

Figure contains an axes object. The axes object with title 4-by-4 Rectangular Array of Dipoles with Uniform Spacing, xlabel x (m), ylabel y (m) contains 48 objects of type patch, surface. These objects represent PEC, feed.

Change Array Elements Spacing to Nonuniform

Use the RowSpacing and ColumnSpacing properties of the rectangular array to change the spacing between the antenna elements.

ra.RowSpacing = [ 1.1 2 1.2];
ra.ColumnSpacing =[0.5 1.4 2]
ra = 
  rectangularArray with properties:

           Element: [1×1 dipole]
              Size: [4 4]
        RowSpacing: [1.1000 2 1.2000]
     ColumnSpacing: [0.5000 1.4000 2]
           Lattice: 'Rectangular'
    AmplitudeTaper: 1
        PhaseShift: 0
              Tilt: 0
          TiltAxis: [1 0 0]

figure
show(ra)
title("4-by-4 Rectangular Array of Dipoles with Nonuniform Spacing");

Figure contains an axes object. The axes object with title 4-by-4 Rectangular Array of Dipoles with Nonuniform Spacing, xlabel x (m), ylabel y (m) contains 48 objects of type patch, surface. These objects represent PEC, feed.

References

[1] Balanis, Constantine A. Antenna Theory: Analysis and Design. Fourth edition. Hoboken, New Jersey: Wiley, 2016.

See Also