How to Calculate a Virtual Array in MIMO Systems

Zachariah Peterson
|  Created: September 20, 2022  |  Updated: September 28, 2022
virtual array calculation

RF and sensing systems that use MIMO functionality have some important design constraints concerning antenna design and placement. In these systems, due to the need for finer resolution and higher transmit/receive gain, the trend has been to pack more antennas into an array for beamforming and reception of low-level signals. There is a reason for this trend, and it relates to an important concept in antenna array systems.

When multiple transmit and receive antennas are co-located, they can act together to form what is known as a virtual antenna array. The virtual array is not a real set of antennas, it is a mathematically equivalent object that describes the behavior of the antenna array. An important part of building an antenna array that enables MIMO functionality, including with spatial multiplexing, is to engineer the arrangement of virtual antennas in a virtual array.

By grouping antennas together properly on the PCB, the virtual array can be engineered such that the real array has higher transmit and receive gain. This is commonly done in physically large radio systems, but it can also be done in systems that involve placement of antenna elements on a PCB. As long as the antennas are located and routed correctly, you can get the maximum possible gain from an antenna array operating in MIMO mode.

What is a Virtual Array?

All co-located antenna systems that act in concert for beamforming and/or spatial multiplexing behave as if they were an equivalent antenna array, known as a virtual array. This leads to the following definition:

When a set of transmit and receive antennas in an array work together to transmit and receive a signal, they act like an equivalent array of antennas, called a virtual array. The real antenna gain in both transmit/receive is equal to the virtual array gain when the virtual array acts only in transmit or receive mode.

The virtual array is a fictitious entity, but it is useful for visually understanding the electronic steering range (in azimuth and elevation) and the array’s effect on angular resolution. In short, when you have more elements working together, in any type of beamforming mode, the emitted beam will have higher directional gain and better angular resolution. To understand the virtual array, we need to calculate two quantities:

  1. The number of virtual elements in the virtual array
  2. The location of elements in the virtual array

Number of Virtual Antenna Elements and Resolution

The number of virtual elements in a planar antenna array with NTX transmit elements and NRX receive elements is:

Virtual array MMO

This number is important because it is related to the maximum resolution of the array. In radar systems, where the velocity and distance resolution are affected by the angular resolution, there has been significant effort to increase the resolution to the point that images can be formed with radar. Traditional 3-TX/4-RX series-fed patch antenna arrays do not have high enough resolution to provide the resolution required for radar imaging, thus the focus on increasing the number of antennas in these systems.

When operating as a MIMO array, the angular resolution of the entire array is related to the angular resolution of a single antenna as follows:

Virtual array MMO

This should illustrate the drive to increase the size of antenna arrays in smaller devices: more arrays equals better resolution, and thus higher gain, so the system could potentially operate with lower power and/or greater communication range.

Similarly, the scanning range will be limited by equivalent distance between the virtual elements in the virtual array. In a sparse array, where the traditional diffraction-limited emission pattern does not necessarily hold, the virtual array could also be sparse and the resolution would not obey the equation shown above (this should underscore the need for a rigorous definition of “co-location”).

Array Gain

The example simulation results below show what happens to the emission pattern when the number of antennas in an array is increased significantly. The top row uses 2 transmit/3 receive square patch antennas, the gain from this array is 15.7 dBc. The system collectively acts like an equivalent array that is transmitting or receiving with (NTX x NRX) = 6 total elements. Now when we increase the array size to 9 transmit/12 receive patch antennas with the same size and shape, we have 108 virtual elements that provide total gain of 25.4 dBc.

Virtual array MMO
Top row: radiation pattern from an array with 2 TX/3 RX antennas. Bottom row: radiation pattern from an array with 9 TX/12 RX antennas. Red curve: radiation pattern from a single patch antenna. Green curve: radiation pattern from the entire array. Simulations were performed in HFSS.

Look in the lower-right graph; there is a huge spike in the forward and backward direction with ~25 dBi gain! Meanwhile, the grating lobes around this main beam area heavily suppressed with gain of about -25 dBi. That's a 50 dB difference between the directed beam and radiation emitted in all other directions! For all practical purposes, this is purely a monodirectional antenna, but it was constructed entirely from azimuthally isotropic emitters. If this doesn't illustrate the power of wave superposition, I don't know what will!

The change in gain has nothing to do with the fact that we are pushing additional power into more antennas. In fact, antenna gain has nothing to do with power output or radiation efficiency at all. In this case, the antenna gain refers to the angular resolution of the system, and it results from superposition of electromagnetic waves emitted from the antenna array. In the case where we have high antenna count, the angular resolution reaches less than 1°. If you can develop a system with comparably small scanning resolution, you can now create a radar system that is suitable for high-resolution imaging that challenges the capabilities of commercial lidar systems.

Location of Virtual Antenna Elements

When we calculate the virtual array, we are calculating the locations of the virtual antenna elements. The locations of the virtual antenna elements are calculated using a convolution operation between the discrete elements making up the array. One property of this convolution is that a single virtual array could be calculated from many possible non-degenerate real antenna arrays. The converse is not true; for any real antenna array, it will only have one possible virtual array.

First, in building antenna arrays for beamforming in MIMO operation, the individual antenna locations need to be specified. Antennas in beamforming arrays are normally spaced apart by multiples of the half-wavelength. An example is shown below to illustrate one possible arrangement of antennas with mixed λ and λ/2 spacing.

Virtual array calculation
Virtual array calculation​​​​​

In this array, the resolution in the azimuth (horizontal scan) and elevation (vertical scan). In this case, because we have more elements in the azimuthal direction, the array will have higher resolution when scanned along the azimuth compared to the elevation. The solid angle resolution can be verified from the 3 dB limit extracted from the antenna radiation pattern.

The virtual elements can be found with a simple procedure when they are lined up in this way. If you’re not one to calculate the convolution between two sets of discrete elements in a 2D space, you can locate where the virtual elements are placed by looking at the intersections between the RX and TX elements. Wherever there is an intersection, you will have a virtual element; you can see the pattern for this drawn out below.

Virtual array calculation
The gray elements in this array are the virtual antenna elements.

In this type of arrangement of real RX and TX antennas, the convolution happens to reduce to an intersection between the Cartesian coordinates for each of the antennas in the real array. Antenna arrays in commercial systems are not as simple as the array presented above. In fact, in the above array, you would only have useful TX resolution in one direction. What is preferable is to have a virtual antenna array formed by a square arrangement of real emitters. This would give you very high resolution in both azimuth and elevation directions.

More complex arrangements of RX and TX antennas can have very odd-looking virtual arrays that are not simple intersections, so they are harder to calculate just by looking at the array. One tool for calulating the convolution between these two discrete sets of emitters is MATLAB, or you can read the paper at the end of this article.

PCB Layout and Routing Into the Antennas

If you look at some designs for systems implementing antenna arrays, such as commercially available radar modules or reference designs from semiconductor vendors, you will see several important characteristics:

  • Antennas are co-located on the same layer
  • If many digital components are in the system, the antennas and digital components can be placed on opposite sides of the board
  • Antennas in the array might be clustered or spread around the edge of the PCB

The reason for the last point is one of layout and routing between the antennas and transceivers. If the analog section and the antennas are on the same side of the board, then you are forced to centrally locate the transceivers so that you can route into all the antennas without making the system excessively large.

Consider the PCB layout shown below. This example shows how the antenna array might be constructed around the transceiver elements. The transceivers are clustered around the center of the board with their interfaces exposed to the antenna elements at the edges of the board.

Virtual array calculation
Simple concept showing transceivers with antennas clustered along the edge of the board. If larger multi-patch antennas are used (like series-fed patch antennas), all antennas would be lined up in a row along the top and bottom edges.

The above image shows 1 transceiver, but this immediately scales to any other number of transceivers as long as a reference oscillator can be fed to all transceivers in-phase (this can be very difficult!). In this case, the virtual array lies in the same region as the transceivers, with the virtual elements overlaid on the components. This is perfectly acceptable; the virtual elements are fictitious and their positions will most likely coincide with the locations of real components.

The other option is to cluster the transceivers on the bottom side of the board and place the antennas on the top side. The feedlines could then be routed on either surface layer (assuming a symmetric stackup). This is an approach we have taken in the past, but getting it right requires routing through a controlled impedance via, something which is difficult as you get higher into mmWave frequencies. Once you get to long-range radar frequencies, you start hitting the limits of traditional manufacturing processes.

Virtual array calculation
As more elements are added, you eventually need to put some of the controllers or transceivers on the back layer and route to the antennas with vias.

As you try to build a larger and larger array, you might have no choice but to place transceivers on the back side of the PCB in order to keep the board at a reasonable size. The other option is to keep increasing the size of the board, which could quickly become impractical.

More Than Just an Antenna Array

Systems implementing MIMO functionality are much more than just an antenna array and routing strategy. Although most of the action happens in the embedded application, specifically with a host of DSP tasks, these systems won’t work at all if the antenna array is not placed and routed in the PCB properly. The best way to build a virtual array is to export it from a drafting tool in DXF format, then it can be used in other analysis programs and in your PCB CAD tools.

Inside Altium Designer, you can import a DXF with your array design into a copper layer to define your antenna elements, and then route into these with your feedlines. Another option is to create a PCB footprint for your custom antenna, and then place a component into your design. You can then wire it up in your schematics and import to the PCB as usual.

For a more thorough look at the mathematics behind virtual arrays, take a look at the following IEEE paper.

When you’re ready to place your antenna array, route feedlines, and design your system, use the complete set of PCB design tools in Altium Designer®. When you’ve finished your design, and you want to release files to your manufacturer, the Altium 365™ platform makes it easy to collaborate and share your projects.

We have only scratched the surface of what’s possible with Altium Designer on Altium 365. Start your free trial of Altium Designer + Altium 365 today.

About Author

About Author

Zachariah Peterson has an extensive technical background in academia and industry. He currently provides research, design, and marketing services to companies in the electronics industry. Prior to working in the PCB industry, he taught at Portland State University and conducted research on random laser theory, materials, and stability. His background in scientific research spans topics in nanoparticle lasers, electronic and optoelectronic semiconductor devices, environmental sensors, and stochastics. His work has been published in over a dozen peer-reviewed journals and conference proceedings, and he has written 1000+ technical blogs on PCB design for a number of companies. He is a member of IEEE Photonics Society, IEEE Electronics Packaging Society, American Physical Society, and the Printed Circuit Engineering Association (PCEA). He previously served as a voting member on the INCITS Quantum Computing Technical Advisory Committee working on technical standards for quantum electronics, and he currently serves on the IEEE P3186 Working Group focused on Port Interface Representing Photonic Signals Using SPICE-class Circuit Simulators.

Recent Articles

Back to Home