Skip to content

Designing, Building, & Analyzing an FMCW Radar

Introduction

Radar technologies remain essential to critical national security functions. Modern radars dramatically eclipse the capabilities of the first radars deployed in WWII, but the foundational principles of electromagnetic sensing animate all radars deployed over the past eighty years. I developed a low-cost Frequency-Modulated Continuous Wave (FMCW) radar to improve my understanding of radars and practical radio frequency (RF) design.

System Parameters

FMCW radars, unlike traditional pulsed radars, transmit continuously. The radar mixes the transmitted frequency-modulated waveform with the reflected waveform, producing a beat frequency that indicates the distance to an object. Doppler frequency shifts provide velocity information, although my radar design doesn’t (yet) exploit the Doppler effect.

ParameterValue
Chirp Bandwidth100 MHz
Ramp Time5 ms
Maximum Unambiguous Range112.5 m
Receiver Bandwidth15 kHz

The maximum unambiguous range is determined by the chirp bandwidth, the receiver bandwidth (the design constraint I chose), and the ramp time. Simple hardware, including low-end oscilloscopes and even PC sound cards, can sample data at 30 kHz (2 * 15 kHz, per the Nyquist criterion). The maximum unambiguous range of 112.5 m permitted by my chirp parameters is more than sufficient for my low-power transmitter (18 dBm).

Simple relationships describe how these parameters interact. The round-trip propagation time for electromagnetic radiation launched at an object 112.5 m away is t_d = \frac{2(112.5\text{ m})}{3 \times 10^8 \text{ m/s}} = 0.75\enspace\mu\text{s}, producing a beat frequency of f_b = \frac{(0.75\mu\text{s})(100\text{ MHz})}{5\text{ ms}} = 15\text{ kHz}.

Antenna Design

I based my antennas on the Cantenna design popularized by MIT, a quarter-wave monopole resonator inside a circular waveguide. I used a beans can for the waveguide. (The can had corrugated sides, so it cannot be modeled purely as a circular waveguide.)

At 2.4 GHz, the quarter-wave resonator is roughly 3 cm long. Ideally, the length of the monopole would be trimmed until S11 was less than -10 dB across 2370-2470 MHz, but I didn’t have access to a VNA. The antenna was positioned one-quarter of a wavelength from the back wall of the waveguide. Note that the wavelength of the signal inside the waveguide differs from the free space wavelength.

The gain of the antenna can be estimated using the following relation. This is critical for applying the radar equation. Gain is normally measured in decibels relative to an isotropic radiator.

G = (\frac{\pi D}{\lambda})^{2}

G = (\frac{\pi 0.083}{0.125})^{2} = 4.3515 \Rightarrow 6.3864 \text{ dBi}

Notably, the Cantennas have a significant -3 dB beamwidth. Radars typically use antennas with narrower beamwidths.

Receiver Modeling

With my antennas selected, I turned my attention to modeling the receiver. The radar equation determines the amount of power received by the radar for an object a given distance away. The radar cross section (RCS) \sigma describes how much energy a target reflects back to the radar. I used an RCS of \sigma = 1 \text{ m\textsuperscript{2}}, which is typical for a human, an antenna gain of G = 4.3515, and a transmit power of 18 \text{ dBm} = \frac{1\text{ W}}{1000\text{ mW}} \times 1\text{ mW} \times 10^{18/10} = 0.0631\text{ W}. I swept the distance from 0 to 112 m.

Microstrip Transmission Line Design

Like any RF design, care must be taken to ensure low-loss signal transmission. RF engineers achieve a particular characteristic impedance for a planar transmission line by varying the trace width and the distance between the microstrip line and the ground plane, affecting the inductance and capacitance per unit length of the line.

JLCPCB provides a set of four-layer board stackup options, so the only parameter I could vary was the trace width. I wrote a MATLAB script using Hammerstad’s formulas to solve for the trace width that achieved 50 Ω.

Warning: Unable to solve symbolically. Returning a numeric solution using vpasolve. 
> In sym/solve (line 313)
In Microstrip_Line_Solver (line 16) 
Width: 0.187268 mm (7.372736 mil)
Wavelength in TX Line: 0.067843 m

The TXLINE tool in the AWR suite provides a similar result, but it is more accurate, since it incorporates frequency-dependent behavior. Calculators like TXLINE appear to render manual calculations obsolete; however, I always like to validate the results of third-party tools. The MATLAB calculation also provides other useful information, like the wavelength of the signal in the transmission line. Transmission line effects only need to be considered when the length of the line l obeys \frac{l}{\lambda} > \frac{1}{10}.

AWR can provide more insight into the behavior of transmission lines across the frequencies of interest. I modeled my substrate and a quarter-wavelength length of my transmission line in a schematic file.

I plotted S11 (reflection loss) and S21 (insertion loss) from 2.4 to 2.5 GHz, demonstrating the transmission line’s excellent performance. The phase shift of the quarter-wavelength line is around 90°, as we expect. (Quarter-wavelength lines are useful for narrowband impedance matching.)

As useful as closed-form solvers are, they don’t always reveal issues in board layouts. Microstrip calculations expect free space above the transmission line. I mistakenly routed portions of my line under components, breaking this assumption. The EM simulation capabilities in AWR or a dedicated tool like CST (the subject of another project) help catch such mistakes.

Baseband Analog Circuitry

The baseband circuitry follows the mixer and has two responsibilities: (1) Amplifying the uV signal from the mixer output and (2) providing a low-pass filter response to avoid aliasing. Two LT6230 op-amps were used (the LT6231 contains two LT6230 devices in one package).

Amplifier

The baseband amplifier magnifies the small-signal AC variation from the mixer output and adds a DC offset centered midway between the 3.3V and ground rails. I began my design of the baseband amplifier by considering the AC RMS output voltage from the mixer as a function of distance. Because the system is normalized to 50 Ω, I can easily calculate the AC RMS voltage using the power output from the mixer: P = \frac{V^2_{RMS}}{50}. The power output from the mixer is determined using the received power from the radar equation, the gain of the receiver PA (21 dB), and the conversion loss of the mixer (6.79 dB).

Amplifier input voltage, expressed in dBV, calculated from the radar equation and the specifications of the receiver PA and mixer.

I chose 33 kΩ biasing resistors to produce a biasing current of approximately 50 uA. Notably, the LT6231 is a non-ideal op-amp, and both the inverting and non-inverting inputs draw 5 uA, according to my SPICE simulations. This input current sets the DC offset of the output terminal 0.5 V above the biasing of the non-inverting input. The size of the mismatch between the expected and actual output DC bias voltage depends on the value of R7, limiting the maximum gain of the amplifier. (If R7 is too large, the output voltage will have a large DC offset, causing the op-amp to saturate.) R7 and R8 produce a non-inverting gain of 101.

C21 influences the location of the high-pass pole by shorting R8. The high-pass pole is located at \frac{1}{2\pi(330\text{ nF})(1\text{ k}\Omega)} = 482\text{ Hz}, consistent with the amplifier Bode plot. C19 is a coupling capacitor that shorts the parallel combination of R3 and R6 at \frac{1}{2\pi(220\text{ nF})(33\text{ k}\Omega)/2} = 44\text{ Hz}, providing supply noise suppression. R13AN0003EU0100 from Renesas should be reviewed for more information.

Frequency response of the baseband amplifier with the cutoff frequency indicated.
Transient analysis of the baseband amplifier for a 5 kHz sinusoidal input. The non-inverting input (top) has a DC offset roughly midway between the voltage rails; the output (bottom) DC offset is roughly 0.5 V greater. A 0.1 mV small-signal AC amplitude is scaled by 40 dB to produce a 10 mV small-signal fluctuation at the output.

Anti-Aliasing

The anti-aliasing filter enforces the 15 kHz receiver bandwidth. I implemented a second-order Butterworth filter using the Sallen-Key topology. The design relations for the Butterworth Sallen-Key topology are well-documented in this TI application note. I fixed the values of R4 and R5 and calculated C16 and C20 to achieve a 15 kHz cutoff frequency.

Frequency response of the Butterworth anti-aliasing filter with the cutoff frequency indicated.

Noise Analysis

Noise analysis helps radar designers track the degradation of SNR from input to output through the receiver chain. In this design, the antenna is fed to a PA and mixer before the baseband circuitry. This noise analysis excludes the baseband op-amp filters and the MCU ADC because they operate at low frequencies and contribute relatively little to the noise floor compared to the mixer and PA.

Applying Friis’ formula requires the gain and noise factor (linear-scale/non-dB noise floor) of the mixer and PA.

ComponentGainNoise FactorConditions
ADL5545 (PA)125.89 (~21 dB)2.51 (4 dB)2.4 GHz
ADE-30+ (Mixer)0.21 (-6.79 dB)4.78 (6.79 dB)RF = 2450 MHz
LO = 2480 MHz
LO Power = +7 dBm

With this information, we can calculate the noise figure.

F = F_{1}  + \frac{F_{2} - 1}{G_{1}}

F = 2.51 + \frac{4.78 - 1}{125.89} = 2.54 \text{ (4.05 dB)}

Because of the large PA gain, the mixer has effectively no contribution to the noise figure of the receiver chain. The PA’s large noise figure dominates. This is why receivers typically use LNAs instead of PAs.

The mixer also has a local oscillator (LO) input, which is driven by the VCO through a coupler and attenuator. LO phase noise can mix with blockers through reciprocal mixing, producing interference in the baseband that masks target detections. We can calculate the threshold at which blocker power becomes comparable to the receiver chain noise floor.

The minimum noise power in a receiver with a 14.5 kHz bandwidth is -132.4 dBm (P_{dBm} = -174 + 10\log_{10}(\text{14.5 kHz}) where -174 \text{ dBm/Hz} is the Johnson noise at 290 K). At the input of the mixer (after the PA), the noise power is multiplied by G_{1}F_{1}, producing -107.4 dBm (-132.4 dBm + 25 dB). The following table summarizes the blocker powers at particular frequency offsets that are required for reciprocal mixing to overtake input noise power (-107.4 dBm). Reciprocal mixing noise power is calculated as P_{dBm} = 10\log_{10}(\text{14.5 kHz}) + L(\Delta f) + P_{\text{blocker}}, where L(\Delta f) is the phase noise at offset \Delta f from the oscillator center frequency.

Frequency OffsetLO Phase NoiseBlocker Power Threshold
0.1 MHz-93 dBc/Hz-174 + 25 - (-93) = -56\text{ dBm}
1 MHz-117 dBc/Hz-32 \text{ dBm}
10 MHz-130 dBc/Hz-19\text{ dBm}

Radar designers can increase the blocker power threshold (and thus reduce the sensitivity to interferers in the environment) by using a phase-locked loop as the LO, reducing the phase noise.

Software Design

Firmware

An FMCW radar must synchronize transmission and reception; this is necessary for proper measurement of the beat frequency. The STM32 family of microcontrollers was chosen for its rich set of hardware timing peripherals and support for DMA, transferring the responsibility of synchronization to hardware.

A common timer, clocked at 51.2 kHz, drives the ADC (RX stage) and DAC (transmit stage). The DAC accesses a pre-calculated lookup table to sweep the VCO. The ADC uses half transfer and full transfer callbacks to access the sampled values. By the Nyquist theorem, a 51.2 kHz sampling rate can be used with frequencies up to 25.6 kHz without aliasing, well above the anti-aliasing filter’s cutoff frequency.

During the assembly process, the USB connector broke off the board (I forgot to solder the mechanical attachment through-hole pins). To access the sampled data for post-processing in Python, I developed a PowerShell script that used the OpenOCD debugger to interrupt the firmware when the ADC buffer was fully populated and write the buffer contents to a hex file. I developed the firmware using STMicroelectronics’ Eclipse-based STM32CubeIDE, which lacked the ability to write buffer contents to a file in the debugger.

VCO Sweep

My FMCW radar uses a linear frequency sweep, also known as a chirp. However, the output frequency of a VCO doesn’t vary linearly with the applied tuning voltage. I received assistance from Artificial Intelligence to develop a Python script that modelled the tuning voltage curve and generated a lookup table that the MCU could sweep to produce a chirp.

The STM32 DAC provides the tuning voltage for the VCO.

Results

Initially, I developed my board using a baseband amplifier gain of 301, producing the following oscilloscope capture. The large DC offset caused the op-amp to saturate, producing a distorted output.

Photos

Overhead view of the radar featuring the Cantennas, RF connectors, and enclosure for the board.

Leave a Reply

Your email address will not be published. Required fields are marked *