The Adaptive Beamforming Tutorial Parts 1 and 2 are available for download as a PDF!
In Adaptive Beamforming Tutorial Part 1: Suppressing Interference we derived an adaptive nuller for a multi-element antenna that would attempt to suppress all signals detected above the noise floor. While a powerful tool, its use is limited to situations where the signal of interest (SOI) is below the noise floor. There are many cases where the SOI is detectable and we want to preserve the signal instead of crushing it. Even if the SOI is faint, adaptive beamforming can constructively combine the received signals to increase the SOI’s power while simultaneously mitigating interference.
There are numerous applications for this technology ranging from cochlear implants to self-driving cars, radio astronomy to submarines, and from 5G mobile phone technologies to military applications. More novel use cases are being explored and as antenna technology gets smaller and cheaper, many more will come in the future.
This tutorial is meant for engineers who are interested in understanding the math behind adaptive beamforming and might be interested in implementing an adaptive beamformer for their own application. We assume that you have already read Part 1 of this series and do not redefine our notation. However, Appendix A lists all of the variables used for easy reference.
Propagating Waves
Before we begin our discussion we need to understand some of the physics acting on our SOI. In many cases, we can assume that the SOI is generated by a point source and that the signal radiates equally in all directions. Imagine that the SOI is a sphere around the point source that grows larger the further it travels. If we were to take a small subsection of the imagined spherical SOI, say a square foot, while still close to the source we would see the small section greatly curved. However, taking a square foot subsection of the imagined spherical SOI a mile or two from the source would give us a section of the SOI that appears nearly planar. In fact, the curvature of the signal would probably be negligible for most applications and the signal would justifiably be assumed to be a plane wave. The point at which the curvature of the signal becomes negligible is called the far field (because you’re far away from the source). If the curvature of the signal is significant then you are in the near field (because you’re near the source).
For beamforming applications, the two biggest factors affecting whether you are in the near or far field are the distance between the source and the antenna, and the element spacing of the antenna array. The tighter the element spacing, the more likely you can assume being in the far field. However, there are tradeoffs between element spacing and performance that will not be discussed here. This adaptive beamforming tutorial assumes the antenna array is in the far field.
Figure 1 shows a simple line array where the distance between the antenna elements is . Our signal of interest, the green planar wave, strikes the antenna with angle . Element receives the signal first and a short time later receives the signal. For narrowband signals, this time delay translates into a phase offset between the signal received at and . Determining the phase offset requires us to solve for using trigonometry. I still use the mnemonic SohCahToa to figure out which trigonometric formula to use. In this case, the hypotenuse and angle are known but the side opposite from the angle is not. Soh, or sine of theta equals opposite over hypotenuse will do the trick as shown below.
Now we need to figure out how much the signal rotates traveling distance to . RF signals rotate a full radians over the course of their wavelength which is written as, . If you’ve forgotten how to calculate the wavelength, , check out the previous post. has units of distance and it’s in the denominator of the fraction. We can simply multiply the equation just written by , which also has units of distance, to get our phase offset.
Next, we write our steering vector . The steering vector simply contains the phase offsets the SOI experiences at each of the antenna elements with respect to . If we had N equally spaced antenna elements then our steering vector would be extended to .
Problem Setup
Figure 2 shows a block diagram of our system. The signal of interest, m(n), is the super-secret, ultra-important message you’re trying to receive. i(n) is the interference generated by the bad guys. CSOI p is the channel response experienced by the SOI for antenna element p (includes things like delay, amplitude distortion, etc.), CI p is the channel response experienced by the interference, vp(n) is random white noise, ap(n) is the received signal, Wp* is the conjugate adaptive weight to rotate and scale the received signal, yp(n) is the modified received signal and y(n) is the output of the system after the modified signals are summed together. Hopefully, you didn’t read that too fast and miss the fact that the weights, Wp, are conjugated which is different from what we’ve done in previous posts.
Mathematical Derivation
Our main objective is to minimize power while preserving the SOI. If this sounds like a constrained optimization problem then congratulations, your intuition is correct. Constrained optimization problems are composed of two parts, the cost function, , that we want to either maximize or minimize and the constraint function, , that we must simultaneously satisfy. Previously, we learned that minimizing power is equivalent to minimizing where and . This is our cost function. Preserving the SOI means that when the received signals are weighted and summed, signals originating in the direction of the SOI are undistorted. In other words, or more succinctly, . This is our constraint function. We make one important assumption, that the SOI and the interference are uncorrelated i.e. . Putting this all together we have
The cost function simplified to . We’ll use Lagrange multipliers to solve our constrained optimization problem. The first step is to create the Lagrangian function which combines the cost function and the constraint into a single equation while introducing the Lagrangian variable .
Minimizing is accomplished by taking the derivative with respect to and setting it equal to zero.
(1)
Next, is found by taking the derivative of the Lagrangian function with respect to and setting it equal to zero.
Substitute equation (1) for and solve for .
Because is Hermitian symmetric, is hermitian symmetric i.e. .
(2)
The denominator of the fraction, , turns out to be a real only scalar. We won’t prove that out here but you can try generating a few hermitian symmetric matrices and multiplying them by a complex vector on the left and right side and see what you get. This means that and we can substitute (2) into (1) and finish solving for .
(3)
Beamformers with the solution found in (3) are called minimum variance distortionless response (MVDR) beamformers. The MVDR beamformer produces a distortionless response in the direction of the SOI thanks to the linear constraint placed earlier on the system, .
Now that we have the optimal weight vector, we can plug it back into our cost function and solve for the average power of the system.
Creating the Scanning Vector
Once we have solved for our weights, it’s common to look at the spatial response of our system. This means looking at the gain corresponding to different angles of arrival. To find the gain at different angles of arrival we generate steering vectors, now called scanning vectors because we are scanning the response, for each of the angles of interest. Then we take the dot product of our scanning vectors with our weights, i.e. where is swept over all the angles of interest. Typically, the spatial response is visualized using either a two-dimensional plot for a uniform line array (ULA) or a heat map for a two-dimensional array of antenna elements.
To help visualize this I plotted the MVDR response for a six-element antenna system with inter-element spacing of in Figure 3. The SOI impinges the antenna at while the interference impinges the antenna at . Notice that the gain in the direction of the SOI is 0 dB, corresponding to a gain of 1. Thus, our constraint was satisfied. Our interference, on the other hand, was pulled into a null. If you look closely though, the jammer is not in the absolute center of the null. The MVDR beamformer does not guarantee that the interference is placed in the absolute center of a null.
Figure 4 shows the same setup but with an additional jammer at . Notice how the MDVR response adapted to the new interferer, hence the MVDR is an adaptive beamformer.
Conclusion
Adaptive beamformers are powerful tools. They can allow signals that are overwhelmed with interference to be successfully detected and processed. They allow you to digitally steer beams so if the SOI is moving the steering vector for the beamformer can be updated and you can track the SOI.
Though we did not cover it in this tutorial you can find the angle of arrival (AoA) of a signal using techniques like MUltiple SIgnal Classification (MUSIC) and Estimation of Signal Parameters via Rotational Invariance Technique (ESPRIT). This can be advantageous if you want to know the direction of your interferer.
Finally, the MVDR beamformer can be extended to the Linearly Constrained Minimum Beamformer (LCMV). LCMV generalizes the idea of placing constraints that the system must satisfy. For instance, maybe there are multiple signals you want to receive simultaneously but propagate from different directions. I’d love to hear your feedback in the comments section. If anything is unclear, just let me know and I’ll do my best to update this tutorial.
Appendix A: Variables defined
Propagating wave angle of arrival | |
Distance between propagating wave and antenna element | |
Inter element antenna spacing | |
Wavlength | |
Phase offset | |
Steering Vector. Contains the phase offsets the SOI experiences at each antenna element | |
Signal of interest | |
Interfering signal | |
Channel response experienced by the SOI for antenna element | |
Channel response experienced by the interference for antenna element | |
Asynchronous white Gaussian noise (AWGN) on antenna element | |
Received signal at antenna element | |
Optimal weight for element to minimize power while preserving SOI | |
Weighted received signal from antenna element | |
System output after all are summed | |
Spatial correlation matrix of received samples |
Thank you! Very helpful, and easy to understand
Adaptive beamforming is a versatile approach to detect and estimate the signal-of interest at the output of a sensor array by means of data-adaptive spatial filtering and interference rejection. The object of this article is to link the adaptive beamforming capabilities to estimating algorithms from the ESPRIT family. To note that the simulated adaptive beamforming uses the estimation data received from the ESPRIT algorithms.
Thank you, that was very informative.
I had a question regarding adaptive beamforming, maybe you could help?
If I had a half-duplex phased array system on a spacecraft, and the spacecraft is tracking a ground station. If the spacecraft is using adaptive beamforming to track the ground station, and also transmit data to the ground station sequentially. I would think the spacecraft would lose the lock to ground station when it tries transmits, and would not be able to transmit at the ground station? Or is the the a way to follow the ground station without losing the lock during transmitting?
Thanks.
I think it depends on how the spacecraft is tracking the ground station. If it relies on the ground station’s transmission signal then I believe it would lose lock. However, if your spacecraft knows its precise location and orientation as well as the precise location of the ground station, then it can still form a beam in the direction of the ground station. Does that help?
The best MVDR beamformer tutorial I have ever seen!