An introduction to Beamforming
From the series: Understanding Phased Array Systems and Beamforming
This video talks about how we actually have more control over the shape of the beam than just adding additional elements, or adjusting the position and orientation of the elements. We can also adjust the gain of the signal to each element and apply phase unevenly to each element, and that gives us a lot more flexibility in beam forming. Plus, with the advances in fast analog to digital converters, we can have full digital control over each individual element which opens up the possibility of adaptive beamforming.
In the last video, we talked about how the combination of the array factor and the element pattern creates the array pattern. And often we are trying to create a more directional beam with an array. In this video, I want to talk about how we actually have more control over the shape of the beam than just adding additional elements, or adjusting the position and orientation of the elements. We can also adjust the gain of the signal to each element and apply phase unevenly to each element, and that gives us a lot more flexibility in beam forming. Plus, with the advances in fast analog to digital converters, we can have full digital control over each individual element which opens up the possibility of adaptive beamforming. Which is pretty cool. I’m Brian, and welcome to a MATLAB Tech Talk.
Before we get into beamforming, I first want to talk about why we might need more control over how we form the beam than what we just covered in the last video. We know we can form a really sharp beam with an array. In general, the more elements in the array, the sharper the main lobe of the beam. And then through phase shifting, the beam can be steered. However, forming the sharpest beam and pointing it at the desired signal isn’t the only thing we care about. We care about the quality of the signal, and specifically how much signal we get compared to noise and interference. And the world is full of noise and interference.
For example, interference can come from the signal itself reflecting off other surfaces and arriving at the array through multiple different paths.
Or interference can come from a secondary source. For example, in cellular applications, when trying to communicate with a single phone, interference can come from other nearby cell phones or even other devices that operate in nearby bands. Or with an array of microphones that are used to pick up sounds in one direction, interference can come from just other noises in the vicinity.
Now, regardless of the source, potentially, we have signal in some direction that we want to maximize and interference in others that we want to minimize.
Ideally, we would point the sharp beam at the signal, and then hopefully, the array gain in the direction of the interference would be low enough that the signal to noise plus interference ratio at the receiver is sufficient. Of course, this might not be the case because remember, that we have these sidelobes. They have less gain than the main lobe but, you know a loud interference signal from that direction will still impact the received signal.
So, one thing that is often done is to try to reduce the side lobes. And this is where additional beamforming, in the form of gain tapering, can come into play.
So, this is the pattern for an 8-element, isotropic, linear array. Now, for this pattern, we are sending the exact same signal to each element. And that means that each signal has the same power.
Which I’ve indicated with these sliders. You can kind of think of these as like volume sliders where moving them up increases the volume, or gain, and moving them down decreases the gain. So, watch what happens when I lower the gain to the two outside elements. Notice that the pattern changes. The two lowest side lobes get smaller and eventually disappear. In fact, by taking the power all the way down to zero like this, then we’re left with just a 6 element array. And by bringing the power back up we are slowly transitioning back to an 8-element array with uniform gain.
In this way, changing the gain to an element can affect the pattern. And, it can affect it quite a bit. Here, I’m just cycling through random gains for each element and you can see how much the side lobes grow and shrink and change. Now, most of these random patterns are much worse than the original uniform gain, but here’s what’s interesting. Instead of random gain, if we taper the gain to each element in a way that lowers the power to the edge elements and increases the power to the center elements, we can lower the gain of all of the side lobes.
I mean check them out. They’re much smaller now, and that’s the power of, well, adjusting the power to each element. But it comes at a cost; the main lobe is now wider than it was without tapering. If I cycle back and forth between tapered and uniform gain you can see the side lobes shrink and grow but the main beam gets a little wider or narrower.
So, with tapered gains we’re trading the resolution of the radar for lower side lobe gain.
Now, for older radar systems, tapering would be achieved using analog attenuators in line with each element. And they would more or less be fixed for a given array. So, you’d pick a tapering strategy that would produce the pattern you need, and then shift the phase to steer that pattern.
So, with that being said, let’s look at phase. I’m adding a second blue slider that indicates how much phase shift is being adding into each element signal. And recall, that by shifting the phase the same amount relative to the element before it, we can steer the beam.
And phase shifting, at least for narrowband systems, could be achieved by delaying the signal to each element and summing them all up. So-called delay and sum approach.
But just like with gain, we aren’t limited to a regular spacing of phase shifts, we can apply any arbitrary phase shift to each element separately. Fore example, these are a bunch of different random phase shifts. And you can see how much this also affects the pattern.
And, now that modern beam scanning radar have full digital control over the signal to each element, both the phase and gain can be manipulated digitally. Giving us the ability to pick any gain and phase shift that we want to each element. And once again, most combinations of random gains and phases produce probably an undesired pattern, but the important thing is that we have the capability of choosing these combinations and that is powerful for beam forming.
Now the way we define these gains and phases, at least mathematically, is with a weight vector. To understand what this is, let’s look at the gain and phase slider. Instead of a left/right/up/down slider system like I’ve drawn here, let’s say we represent gain and phase on a complex plane with a phaser. So here, a value of 1 + 0j, corresponds to a gain of 1, which is the length and a phase of 0 degree, which is the angle.
So, I can increase the gain to 1.5 with this complex number. And I could change the phase to pi radians. Or any combination of these two. So, now if we zoom back out, we have 8 complex numbers representing the gain and phase for each of the elements in our array.
And finally, these numbers all packaged together, are the weights for an array. They represent the unique gain and phase that is applied to each element.
Alright cool, we have this ability to form a beam through these weights, but the question is how do we choose them?
Well, with a conventional beam former, it’s usually set up with a gain taper to control the side lobes and then the phase is shifted to steer the beam. Exactly what I’m showing here.
In this way, we form a sharp beam and then steer it towards the desired direction regardless of what other interferences exist in the environment.
But, in contrast to the conventional approach, we can also use an optimization algorithm to adjust the weights based on the statistics of the received data. That is, we can calculate the weights that will produce some optimal pattern given the actual environment. This is adaptive beam forming.
Now, I’m going to briefly introduce one particular algorithm for adaptive beam forming, which is MVDR, but there are many others and I’ve left links to some of them below if you would like to learn more. Alright, so, for this example, let’s say that we have this 8-element linear array. There is a signal coming from this direction that the array is trying to pick up. So, obviously we’ve pointed the highest gain portion of the main lobe right at the signal.
But, let’s say that within the environment, there is another source coming from this direction that is producing some interference. The interference is right at the highest gain of one of the side lobes, and perhaps we want to do something about this.
We know that we can manipulate the shape of the pattern even further by adjusting both gain and phase. So, how can we adjust the weights to minimize this interference? Well, if all we’re trying to do is minimize the total power in the received data then the optimal gains are zeros across the board. If nothing is getting through, then there’s no interference. Problem solved. Of course, that is a silly option. We’re not just trying to optimize for lower interference, we also have a constraint in the that we want to maintain the same gain in the direction of the signal. That is, we want to minimize power variance but not distort the signal. This is the idea behind the Minimum Variance Distortionless-Response adaptive beam former, or MVDR.
With MVDR, we have to give the algorithm two things; we need to give it the received signal at the array so that it has an idea of the total power that it’s trying to minimize. And we have to tell it where we want a distortionless response. That is, we have to give it the angle of arrival for the signal so that it constrains the algorithm to maintain the gain in that direction.
So, this is a classic constrained optimization problem. Optimize the weights such that total received power is minimized but with the constraint that power in the direction of the signal is maintained.
And, graphically, this is what we’re looking for. We want to manipulate the weights in such a way that changes the gain everywhere except in the direction of the signal. But the minimum variance part comes from the fact that we want the lowest total power at the receiver. Now, in this case, since the interference is only coming from a single direction, the lowest total power means dropping the gain in the direction of the interference only. All of the other directions don’t contribute to the total power since nothing is coming in from those angles, so we have a lot of room to play with here.
I’ve linked to a page that walks through the details of the mathematics of this algorithm if you’re curios, but for this video, I’m going use, MVDRbeamformer, which packages that optimization algorithm up into a simple MATLAB function. Ok, so we need a few things for this function to work, like the environment, the direction of the signal, and the array specifics. To set the environment with the signal and the interference, I loosely followed the example called Nulling with LCMV Beamformer, which is linked below. In this example, we set up a signal from one direction and interference from another direction and build the received data.
And now I’m going to use this data to calculated the weights with this simple script. I am creating an MVDR beamformer, for my 8-element isotropic array, and I’m telling it the direction of the signal, which I know. And now here I’m calculating the optimal gains given the received data, which has both the signal and the interference in it. And this is the resulting weight matrix, which by the way, corresponds to these phases and gains for the elements.
And if I go back to our array pattern and put that weight matrix in we can see the result. And as expected, there is a deep null right at the interference. Now, there is more gain in these other directions, but again we don’t care about that since there is no power coming in from that way. If we later find out that there is another interference source from that direction, we can update that environment data, and rerun MVDR to find new optimal weights that will minimize both interferences. In this way, MVDR allows the beam former to adapt to a changing environment.
Alright, so, that was a quick introduction to beam forming, and I recommend checking out the examples that I left links to in the description below. In the next video, we’re going to talk about some of the modern applications of beam forming and scanning arrays.
So, if you don’t want to miss that or any future Tech Talk videos don’t forget to subscribe to this channel. Also, if you want to check out my channel control system lectures you can find more control theory topics there as well. Thanks for watching and I’ll see you next time.
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.