Difference between bandpass filter and using fast fourier transform to extract power of frequency bands

In signal processing, I have heard of two terms:

1. Using band-pass filter to extract some frequency bands.
2. Using Discrete/Fast Fourier Transform (DFT/FFT) to extract some frequency bands.

Are these two terms similar or different?

How and when we use each of these methods?

Fast Fourier transform does not extract any frequency bands. It only shows the frequency content of a given signal. But while applying FFT, one should be careful about choosing the sampling frequency. As an example, if a signal contains a frequency range of $$0-100\,\text{Hz}$$ and $$f_{max}=100\,\text{Hz}$$ $$f_{max} = \dfrac{F_s}{2}$$ and the sampling frequency $$F_s \geq 2\cdot f_{max}$$ of the signal should be greater than $$200\,\text{Hz}$$ (according to Nyquist frequency rule). Then FFT will show all the frequencies present in the signal i.e. $$0-100\,\text{Hz}$$.

If the sampling frequency is less than $$<200\,\text{Hz}$$ then aliasing will occur and will provide an aliased frequency representation.

On the other hand, band-pass filters eliminate some frequency content of the signal. As an example say one signal has $$0-100\,\text{Hz}$$ frequency components but you are interested in exploring the frequencies of range $$10-30\,\text{Hz}$$, then one should use a bandpass filter.

As a system identification researcher, I can provide an example where FFT and bandpass filters are used. Say a signal has its main frequencies in the $$10-30\,\text{Hz}$$ range. But the signal is acquired with a sampling frequency of $$200\,\text{Hz}$$.

Performing FFT will show frequency components from $$0-100\,\text{Hz}$$. Say there are measurement noises all over the frequency ranges. I use a bandpass filter to get rid of that measurement noise.

• Thank you very much for your explanation. So for example, if I have an array of time-series data. First by applying fft I will get the frequency representation of data, then by applying bandpass filter, I can get for example power of particular frequency band? The main thing I want to do is similar as "A fast Fourier transforma-tion (FFT; EEGLAB v5.03) was performed for each 1-secondsignal to obtain the power of each of the 3 frequency bands(2–8, 8–25, and 80–150Hz) for each electrode" Is my understanding correct? Thanks Feb 5 '20 at 5:16
• If you do a moving block FFT through a longer set of data (where you shift one sample, take FFT, shift one sample, take FFT... the output is very much the extraction of frequency bands with bandpass filters that each have a Sinc function frequency response (if no other windowing is used). Similarly overlap-add techniques can be used to combine successive FFT blocks. Feb 5 '20 at 13:25
• How do you see windowing, when a very narrow window is applied to $0-100\,\text{Hz}$ i.e., in frequency terms the window of size $10-30\,\text{Hz}$? Feb 5 '20 at 17:44

An FFT extracts frequency bands, similar to a bank of (mediocre) bandpass filters.

An FFT is just a bank of bandpass FIR filters, all of equal length, that because they are in default form rectangularly windowed, have very poor stop-band characteristics (except for deep notches at periodic orthogonal-in-window frequencies), but steep transitions. But they are computationally efficient when one wants a complete orthogonal set of filter outputs over a certain data window (or wants to use them for convolution, etc.)

Bandpass filters are typically not in the form of a rectangular windowed sinusoid (or complex exponential), and can be varied in length and envelope for the targeted frequency band, and thus can have much better filter characteristics for most parameters (stopband attenuation, etc.)