# Use FFT to compute only part of frequency response

I am working on a project in which I need to calculate the range of a target using an FMCW radar. Dependent on the target's range, I expect various beat frequencies to occur in the data from my ADC. I would like to calculate the frequencies so that I can predict the distance of my target. If I use the FFT directly on my data, it will give me frequencies from 0 to $$\ f_s$$, the sampling frequency ($$-f_s\,/\,2$$ to $$f_s\,/\,2$$). If knew in advance that only part of the frequency spectrum is likely to contain targets, is there a way I can compute the DFT only in that range using the FFT? Additionally, I am interested to know if such techniques are likely to be faster than calculating the full frequency spectrum.

For example, assume $$\ f_s = 4\texttt{MHz}$$, and I know the targets could have beat frequencies between $$0.5 \texttt{MHz}$$ and $$1.5 \texttt{MHz}$$ is there a way I can calculate the FFT only in the range of $$0.5 \texttt{MHz}$$ to $$1.5 \texttt{MHz}$$, and is it likely to be any faster than calculating the FFT across the full range of $$0$$ to $$4 \texttt{MHz}$$ ($$-2 \texttt{MHz}$$ to $$2 \texttt{MHz}$$).

Thank You,

I do not see a path for the OP's specific case of reducing processing to review the spectrum from 0.5 MHz to 1.5 MHz instead of the complete 0 to 2 MHz the FFT would provide. But I do provide solutions when the ratio of sampling rate to frequency band to process is much larger.

The Goertzel algorithm can be used when a relatively very small number of frequency bins are needed. See this other post where further details are provided, but to bottom line it here, the Goertzel is more efficient when the number of bins $$M$$ needed for an $$N$$ point DFT is very small as:

$$M < \frac{\log_2(N)}{2}$$

Another option for when a larger band or bands are needed for evaluation is to decimate the sampling rate to a lower rate. It is feasible to do both a frequency translation and down-sampling as one operation as part of the resampling process, effectively moving a bandpass to lowpass combined with achieving a lower rate for more efficient processing. The combined frequency translation and resampling to a lower rate can be done efficiently with bandpass polyphase resampling implementations.

For example consider the simple case of a decimate by 8 with the resulting alias bands over the sampled spectrum as depicted below. This shows all the frequency bands that would alias into the final spectrum at the lower rate if we were to simply select every 8th sample (downsampling). For this reason in the decimation process, we first typically lowpass filter, to filter out anything that would be in these higher frequency bands prior to downsampling. We can, as shown below, instead bandpass filter, in which case the bandpass would be around a higher spectral region of choice (limited to the dinstinct bands we know that would fold in). This then combines a frequency translation with down-sampling after which a much more efficient FFT could be done.

Given the FFT complexity as $$2N\log_2(N)$$ real additions and real multiplications where $$N$$ is the number of samples; the consideration would be if the complexity of the bandpass filter implementation needed (which could be efficiently mapped to a polyphase structure), would offset the savings in the FFT implementation, which could be further explored. In this example of reducing by a factor of 8, the number of real multiplications and real additions needed in the FFT is reduced by a factor of 48. The OP's case is just a factor of 2 resulting in a savings of 4 real multipliers and 4 adders...unlikely that we could win with other processing; but this does demonstrate at which point such options would be worth considering for sub-band processing.

(Note: The above graphics assume the signal being processed is real and thus complex conjugate symmetric. If the signal being processed is not real, then there would only be a single bandpass filter in the unique digital spectrum that extends over the full range depicted above).