The purpose of FMCW range estimation is to estimate the range of a target. For example, a radar for collision avoidance in an automobile needs to estimate the distance to the nearest obstacle. FMCW range estimation algorithms can vary in the details, but the typical high-level procedure is as follows:

**Dechirp**— Dechirp the received signal by mixing it with the transmitted signal. If you use the`dechirp`

function, the transmitted signal is the reference signal.**Find beat frequency**— From the dechirped signal, extract the beat frequency or pair of beat frequencies. If the FMCW signal has a sawtooth shape (up-sweep or down-sweep sawtooth shape), you extract one beat frequency. If the FMCW signal has a triangular sweep, you extract up-sweep and down-sweep beat frequencies.Extracting beat frequencies can use a variety of algorithms. For example, you can use the following features to help you perform this step:

`pwelch`

or`periodogram`

`psd`

`findpeaks`

`rootmusic`

`phased.CFARDetector`

**Compute range**— Use the beat frequency or frequencies to compute the corresponding range value. The`beat2range`

function can perform this computation.

While developing your algorithm, you might also perform these auxiliary tasks:

Visualize targets in the range-Doppler domain, using the

`phased.RangeDopplerResponse`

System object™.Determine whether you need to compensate for range-Doppler coupling. Such coupling can occur if the target is moving relative to the radar. You can use the

`rdcoupling`

function to compute the range offset due to range-Doppler coupling. If the range offset is not negligible, common compensation techniques include:Subtracting the range offset from your initial range estimate

Having the FMCW signal use a triangle sweep instead of an up sweep or down sweep

Explore the relationships among your system's range requirements and parameters of the FMCW waveform. You can use these functions:

`range2time`

`time2range`

`range2bw`

`beat2range`

| `dechirp`

| `findpeaks`

| `periodogram`

| `phased.FMCWWaveform`

| `phased.RangeDopplerResponse`

| `pwelch`

| `range2beat`

| `range2bw`

| `range2time`

| `rdcoupling`

| `rootmusic`

| `time2range`

Was this topic helpful?