Measuring Angles with FMCW | Understanding Radar Principles
From the series: Understanding Radar Principles
Learn how multiple antennas are used to determine the azimuth and elevation of an object using FMCW radar.
By looking at the phase shift between the received signals of more than one antenna, the direction to an object can be determined. The accuracy of this measurement depends on the signal-to-noise ratio (SNR) of the radar system. Increasing the number of elements in the antenna array increases the angular resolution of the radar. With multiple transmit and receive antennas, a virtual array can be created which can produce the same resolution with fewer overall antenna elements.
Published: 13 Jun 2022
Let's continue our discussion about frequency modulated continuous wave radar. In the last video, we talked about how we can use FMCW radar to determine the distance and velocity of multiple objects at once. And the key to being able to do that was with clever frequency modulation schemes.
In this video, let's talk about how FMCW radar is also able to determine the direction to an object, both horizontally and azimuth, and vertically in elevation. And to do that, we need to move past modulation schemes and turn our attention to the antenna. Or more precisely, to the antenna array.
And by the way, I've left some links to some fantastic resources that describe the mathematics and equations of measuring angles with continuous wave radar. And I hope you take some time to check them out later. Because in this video, I want to forego a lot of that math and focus mainly on concepts and building a little intuition around the problem. I think it's really interesting. And so I hope you stick around for it.
I'm Brian, and welcome to a MATLAB Tech Talk. Let's start by briefly discussing why it's important for the radar to know the direction to the detected object. And as an example, let's take the forward facing radar that is used for an adaptive cruise controller.
A radar detection would indicate that there's an object somewhere in front of the vehicle. And we would know the distance and the relative speed to that object. However, the adaptive cruise controller wouldn't work too well if it couldn't determine if that detection came from an object in the same lane as itself or the lane next to it.
Or still, what if it couldn't determine the difference between a car parked on the side of the road and a car stopped in its lane? So angle determination along the azimuth is important. But elevation angle determination is equally important.
A vehicle would like to know if a stationary object is from a stopped car or from an overpass. And beyond just detecting a single object in azimuth and elevation, the radar system should be able to resolve two or more objects in the same scene and be able to distinguish one from the other. We want a radar system that can resolve a moving vehicle while it's driving next to parked cars. Or when it's driving under an overpass.
And what I think is really cool is that calculating direction and resolving two different objects like this can be accomplished with continuous wave radar. And to understand how it works, let's walk through a thought experiment. Assume that we have a radar with an isotropic antenna.
So the frequency modulated waves that it sends out are emitted equally in every direction. And we can pick up that reflection from an object from any direction. So we have an isotropic receive antenna as well.
Now, let's put a single object in the scene at some distance in radial velocity. And we know from the last video how to determine those two parameters. However, the range measurement only means that the object is somewhere on this circle. And the velocity measurement means that we only know its speed and direction relative to the radar.
So knowing just range and velocity is of limited use for tracking and understanding where the object actually is. Now to reduce the region where the object could be, we need to change the antenna. Instead of transmitting with an isotropic antenna, we can use an antenna that forms a more narrow beam.
If the radar doesn't sense a detection, then we know that there isn't an object in the direction of the beam. And we could scan through the environment and note the direction the beam is facing when a detection is made. In this way, we can know the direction to the object within the width of the beam. And scanning through the environment like this could be done by physically moving the antenna with motors that gimbal in azimuth and elevation.
Or it can be done with a fixed antenna where you electronically steer the beam by adjusting the gain and phase of the signals to each of the elements in the array. And we're going to talk about phased arrays and beam forming in a future video. So we're going to come back to this topic then.
But what I want to talk about in this video is that there is a way to determine the angle to an object more accurately than the width of the transmit beam itself. In this way, we can have a wide beam that's fixed and still know where an object is within that beam. And the solution is to have multiple receive antennas.
For example, imagine we have two receive antennas that are separated by a distance D. And this distance by the way, is one of the design parameters of the radar. But it's very small. It's typically half of the wavelength of the transmit signal. And the wavelength at 79 gigahertz is about 3.8 millimeters.
So these two receive antennas are only about 1.9 millimeters apart. So I don't want you to get the impression that adding a second antenna is somehow making the radar huge. It's still a compact form factor, which is important for these small vehicle applications.
All right, so the transmit antenna sends out a frequency modulated signal mostly in the direction of the beam. Some rays intercept the object and bounce off. And then some of those rays are reflected back towards the receive antennas.
You could imagine that if the object is far away, like on the order of a few centimeters or more. And you form the triangle to the two antennas that are few millimeters apart. Then, the angle from the object to the two antennas will be really small. It's so small in fact that we can often assume it's 0, and that the two rays are parallel.
And they're definitely not parallel as I've drawn them here. So let's move the object further away, which puts it off the screen. But now we have these nice nearly parallel lines. So basically the reflected signal is arriving at both antennas from the same direction. All right, so what does this do for us?
Well, let's think about the reflected signal, which consists of two orthogonal sinusoids that are 90 degrees out of phase. The so-called IQ signals that we talked about in the last video. And since both rays are from the same source, they move in phase with each other at the same distance from the object.
So at this point here, which is perpendicular to the direction of the rays, the signals are in phase. But since this object is off to one side, one of the received signals needs to travel just a little bit longer to get to the farther antenna. And therefore, each antenna measures slightly different IQ values.
In fact, we can show with some trig that the signal has to travel an extra D sine theta farther. Again, where D is half the wavelength of the signal and theta is the angle between the object and the direction the radar is facing. That's the angle we're trying to measure. So if we sample the IQ signals from each antenna at the same time, we can determine what the phase difference is between the two, which allows us to determine how much farther one signal traveled versus the other.
And therefore, the angle to the object. How cool is that? I mean, we're just using the difference in values between the two antennas to determine angle.
And what's even better is that the accuracy of this calculation comes down to the signal to noise ratio and not the beam width of the transmit antenna. And to illustrate that, let's start with an example that has no noise. Imagine the first antenna at time t measures these IQ values. And the second antenna measures these IQ values.
Again, there's no noise or interference whatsoever in this system. These are perfect values. And so we could line up an ideal signal with the measured values from the first antenna. And then starting from that position, we could add phase until the IQ signal from the second antennas line up.
However far we shifted the signal is the phase difference between the two antennas. And assuming no noise in this system, then we could determine this phase shift really accurately. Of course, there is noise. And so accuracy is degraded. And it's easy to see this by assuming that there's some noise that slightly raises the value of the quadrature signal of the second antenna.
You can see that in order to line up these values it requires us to add slightly more phase. And therefore, the angle to the object would come out as a higher value than it actually is. Of course, we don't actually find the phase shift by manually shifting signals around like this. This is just a way to visualize how it's possible to calculate angles from two separate antennas.
Instead of this, we use a Fourier transform to calculate the angles. And we're going to come back to that in just a bit. So hold that thought. Because before we move on, I want to talk a little bit about angular resolution. That is the ability for the radar to resolve two or more objects in the scene.
If we have a low resolution radar, then two close objects would look like a single large object, which would not be ideal if we want to distinguish between cars that are next to each other in different lanes. And we saw that accuracy is a function of noise. But resolution is a function of the radar's aperture or the size of the antenna array.
By adding more receive antennas to the array, we can increase the angular resolution of the radar. And we can keep adding receive antennas, each set a half wavelength apart from each other. Now, the signal has to travel in extra D sine theta farther to each one. And therefore, the delay to each antenna is more as we move across the array.
So how does this improve resolution? Well, I think showing is going to be a lot easier with a simple MATLAB app that I made. So let's hop over to MATLAB and check it out.
All right, in this example I'm using an array of eight receive antennas. And this plot shows the IQ signals from each of them, where the first line is the first antenna, the second and the third, and so on. And this red line indicates the IQ values that each antenna is seeing at the moment. That's what these red dots are.
And this plot up in the corner is just plotting those IQ values over distance. Remember, each antenna is a distance of half a wavelength away. So the whole array is three and a half wavelengths long. Now, currently the angle to the object is 0 degrees. And so they're all receiving the exact same signal. And that's why this plot is just two straight lines.
At the top over here, I have a slider that lets me change theta. And therefore, delay each of the signals into the eight antennas accordingly. And notice as I increase theta, these IQ signals from the antennas trace out a sine wave with increasing spatial frequency. And it's this relationship between theta and spatial frequency that we can exploit.
Because now we don't have to fiddle around with phase shifts and distances. We can calculate the angle to the object based on this spatial frequency. The faster it is, the larger the angle to the object. And this is where the fast Fourier transform comes in.
Taking the FFT of this signal produces this plot, where the x-axis is the sine of theta. And to find the angle, we just need to find where the max peak is, which is around sine theta of 0.5 or an angle of 30 degrees. And that's exactly where the object is.
And since we're dealing with IQ signals, which means a real and imaginary component, we can determine whether the angle is positive or if it's negative. And this is analogous to what we did in the last video, where we were only able to tell velocity direction when we had two IQ signals.
If we only had a real stage on this radar, then we would only be able to tell the magnitude of the angle and not the sine. All right, so with all of this, where does resolution come in? Well, take note of how narrow this peak is with eight antennas.
Now, as I remove antennas from the array, the peak stays in the same spot, indicating that the angle hasn't changed. But it gets wider with fewer antennas. And this wider peak is analogous to a wider receive antenna pattern. And with a wide receiver pattern, you can't distinguish between two close objects. It'll look just like one-- at least compared to the narrower peak. So we really want these narrow peaks in the FFT in order to get better resolution.
Let me show you what this looks like in this example. I have two objects that are separated by about 30 degrees or so. The above plot shows the angle FFT of a radar system that uses 16 receive antennas. And it has these narrower peaks. The lower plot only uses eight and has wider peaks.
And you can see that in both cases, the two objects can be resolved since there are two distinct peaks. But as I slowly move the right object closer to the other one, we can see how the array with eight antennas has a lower resolution. Right about here the two peaks merge into a single peak for the eight antenna case.
And this happened right around a separation of 15 degrees or so. This means that with eight antennas, the angle between the two objects can't be resolved, as there's only a single peak in the FFT. And so it looks just like a single object. There are still, however, two distinct peaks with the 16 antenna array due to the higher resolution.
In fact, we can resolve objects down to about eight degrees or so. So increasing the number of antennas is good, because it improves our ability to resolve objects that are closer to each other. The downside though, is that you need a larger and more complex antenna array. But there is something that we can do about this.
What we've talked about so far is a radar system with a single transmit antenna and multiple receive antennas. But there's a concept called MIMO radar, or multi-input, multi-output. With MIMO, we can have a system with multiple transmitter antennas and multiple receive antennas. Hence, the name.
And there's a very clear benefit to moving to a MIMO radar. And that's because you can form a virtual array. With a virtual array, you can get the resolution benefit of having more receive antennas, but with fewer overall antennas. Instead of, say, having eight receiver antennas in one transmit, we could have to transmit antennas and four receive, and form a virtual array that is equivalent.
If the arrangement of these antennas is done just right, this system performs the exact same with six antennas as a system does with nine. And this savings increases with larger arrays. Two transmit and eight receive antennas can perform with 10 the exact same as one with 16 receive antennas and one transmit. So about half as many. But you get the benefit of those really narrow peaks in the FFT that improves resolution.
And all of this is a really cool concept. And there's a ton that I'm leaving out in these two videos. But I hope you check out the more complete resources below if you want to find out exactly how all of this stuff works. Plus, I've left some links to MATLAB examples where you can see all of the stuff I just talked about in action.
But that's where I'm going to leave this video for now. In the next video, we're going to move past measuring the parameters of an object and start to talk about the power and noise of the radar itself, and introduce the range radar equation. So if you don't want to miss that, or any other future Tech Talk video, don't forget to subscribe. And you can check out my channel, Control System Lectures, where you can find more control theory topics there as well. Thanks for watching, and I'll see you next time.