# Filter Banks and FFT, are they similar conceptually?

I'm using Filter Banks (Narrow Band Pass) created using the functions in Matlab. However, I wanted to know if there are fundamental limitations like that of FFT which also affect the Filter Banks. Is there any co-relation between the two?

Basically, I don't know if they share the same problem of time and frequency being inversely related. If they do share this problem, this means that we cannot have higher time and higher frequency resolution at the same time.

• Too broad a question. Please be little more specific – KharoBangdo May 7 '14 at 4:41
• Time frequency uncertainty is universal to all linear time-frequency representations. Filter banks and short time fourier transforms all fall into this category. – Jazzmaniac May 7 '14 at 8:58
• In both cases you will have to deal with the uncertainty principle. See also this answer to a related question: dsp.stackexchange.com/questions/15607/… – Matt L. May 7 '14 at 10:21

The answer is yes, the discrete Fourier transform (DFT), of which the fast Fourier transform (FFT) is an efficient implementation, can be interpreted quite literally as a filter bank. Recall the formula for the DFT:

$$X[k] = \sum_{n=0}^{N-1} x[n] e^{\frac{-j2\pi k n}{N}}$$

The "filterbank" interpretation for the above equation goes something like this:

• In order to get the $k$-th DFT output $X[k]$, we start with the input signal $x[n]$.

• Multiply $x[n]$ by a complex exponential function $e^{\frac{-j2\pi k n}{N}}$. By the frequency-shifting property of the DFT, this has the effect of shifting the content at frequency $\frac{2\pi k}{N}$ down to zero frequency.

• Convolve the result with a filter that has the impulse response: $$h[n] = \begin{cases} 1, && 0 \le n \le N-1 \\ 0, && \text{otherwise} \end{cases}$$ This filter (known as a moving average or a "boxcar") has a lowpass characteristic.

Thus, we can view the DFT as placing a bank of uniformly-spaced critically-sampled filters across the signal's spectrum. Each filter has the same frequency response as an $N$-sample moving average filter, centered at frequencies $e^{\frac{j2\pi k n}{N}}, k = 0, \ldots, N-1$. I described this similarly in an answer to a previous question here.

• Great and correct answer! – Royi May 9 '14 at 11:59
• I am confused by your post a little. I get the complex band shift part. But when you say "convolve the result with a boxcar" - how is this equivalent in the DFT? In the DFT we just multiply with a complex signal, and sum, to get one number. Are you saying this is the equivalent to the result of the convolution taken at PEAK of the convolution? – TheGrapeBeyond May 9 '14 at 16:03
• Perhaps that is what you mean when you say 'critically sampled'? What does that mean exactly? Does it mean take the result of the convolution right in the middle of it? – TheGrapeBeyond May 9 '14 at 16:04
• I'm not sure what you mean by the "peak" of the convolution. The convolution is apparent by rewriting the DFT equation as $X[k] = \sum_{n=0}^{N-1} x_s[n]$, where $x_s[n]$ is the shifted version of $x[n]$. This is equivalent to convolving the shifted version with a boxcar filter. The "critically sampled" part of it is that each block of $N$ input samples yields only 1 sample in each of $N$ filters in the bank. – Jason R May 9 '14 at 16:11
• I guess I just dont understand something simple here: I have a signal x[n] of length N. I put it through a filter bank of say 10 filters, each of length M. I will get an output of 10 vectors, each of length N + M - 1. In contrast, if I take a DFT of x[n], I get 1 vector, of length N. So... those are very different outputs. This is what I do not understand. – TheGrapeBeyond May 9 '14 at 19:41

if you want to have a good frequency resolution both in time domain as well as in frequency domain, you can use wavelet transforms to get it done. you can split your data into (1st level/iteration) low pass(smoothening), high pass(edge/zero crossing), band pass information.

regards, phani tej

• A wavelet transform is just a filter bank too and therefore subject to the same time-frequency resolution constraints. Wavelets only change the trade off so that bandwidth becomes proportional to frequency. – Jazzmaniac May 8 '14 at 17:16