# Can anyone explain how dft works as a filter bank?

When we take the fft of input signal, the fft formulas say us to down convert the 2pik/N frequency content of input signal and sum one period interval. This gives us a just one complex number,not an array. When we use fft as channelizer, do we need to take inverse fft?

How can we use DFT formula as channelizer? Can anyone help me to understand concept?

@Ahmet. The DFT equation you posted does not compute an array of complex numbers. For any single given integer value of frequency-domain index $$k$$ the equation tells us how to compute the single complex-valued number $$X[k]$$ based on $$N$$ samples of $$x[n]$$.

Also, please do not fall into the trap of thinking when the DFT is used as a filter that some sort of downward frequency translation occurs. It does not. When used in real-time as a filter, each real-time bin output of the DFT is the output of a bandpass filter. I explain this idea at: https://www.dsprelated.com/showarticle/187.php

• Thanks for answering dear, just i want to learn how dft is used as a channelizer.As you said The fft output is just a single complex value that says frequency and phase information like a+j*b. How can we obtain subband signal(x0[n],x1[n]..)? Can you give me small tip to understand? Commented May 13, 2022 at 11:25
• @Ahmet Serdar I have saved many channelizer papers (PDF files) in the past. Please send me an e-mail at R_dot_Lyons_@_ieee_dot_org and I will send some of those papers to you. Commented May 15, 2022 at 15:07

To add to Richard's good answer, I specifically want to show the difference between:

1. Down-conversion and low-pass filtering (heterodyne the signal).

2. Bandpass filtering the signal directly (heterodyne the coefficients).

This will clearly show the relationship between the DFT and FIR filtering, and how the DFT is indeed a bank of bandpass filters.

This can all be demonstrated nicely with a simple four point DFT given as:

$$X[k] = \sum_{n=0}^{N-1}x[n]W_n^{nk}$$

Where $$W_n = e^{-j2\pi /N}$$ are the so-called "Twiddle Factors" coined by W. M. Gentleman and G. Sande in "Fast Fourier Transforms- for fun and profit" Proc. AFIPS 29, 563-578 (1966).

The four point DFT would then be in matrix form as given in the graphic below:

Given our choice in this case of a 4 point DFT, the twiddle factors reduce to $$\pm 1$$ and $$\pm j$$ resulting in the simplified matrix below:

The DFT can be described as a bank of filters, with each filter being an N-tap moving average FIR filter centered on a particular frequency bin. To clearly understand this, it will help to first understand what an N-tap moving average filter looks like and to understand frequency translation through the heterodyne process, and how that can be used to either translate the signal OR can be used to translate the filter! I will cover each of these in turn.

4 tap moving average

A four tap moving average as an FIR filter with four unity gain coefficients is a low-pass filter. It's transfer function is given as:

$$H(z) = 1 + z^{-1} + z^{-2} + z^{-3}$$

The structure for such a filter and it's frequency response in the range of $$\pm f_s/2$$ where $$f_s$$ is the sampling rate is shown in the graphic below. The frequency response is easily computed in Matlab, Octave or Python scipy.signal using the freqz command as freqz([1, 1, 1, 1]) (no commas in Matlab or Octave), and by default will show the single-sided response from $$0$$ to $$f_s/2$$.

What we note immediately is that this matches the processing of the first row in the DFT matrix as the scaled average of the 4 most current samples:

$$X[0] = x[0] + x[1] + x[2] + x[3]$$

The immediate difference between the typical application of the DFT and the FIR filter is that with the DFT we compute the result over an entire block of samples, while with the FIR filter we stream the data through the filter and compute a new output sample for every input. However the math operations and results are identical and we can use either structure in block or streaming mode. Note that the output of bin 0 of the 4 point DFT exactly matches the output of this given 4 tap FIR filter, at the fourth sample. If we were to shift the data into the DFT by one sample and recompute the DFT, the next sample out of bin 0 would again exactly match the next sample out of the FIR filter.

Heterodyne Process

The "Heterodyne Process" is frequency translation by multiplying with a complex phasor as depicted in the graphic below. For the case when the frequency is translated to zero specifically, this is also referred to as "Homodyne".

This is simple to see given a single tone at $$A(t)e^{j\omega_o t}$$, if we multiply it with the complex conjugate of the carrier, the exponents add resulting in the frequency getting translated:

$$A(t)e^{j\omega_o t}e^{-j\omega_c t} = e^{-j(\omega_o - \omega_c) t}$$

A typical receiver operation is to down-convert and low pass filter. In this case, we move the signal to the filter- we heterodyne the signal. This is depicted below where we translate a signal that is centered at $$f_s/4$$ to the same low pass filter we introduced above. (This is NOT the DFT!):

Alternatively we can make any FIR low pass filter into a bandpass filter by heterodyning the coefficients! In this case we translate in frequency the filter to the signal rather than the signal to the filter! This is exactly what occurs for all the higher bins in the DFT:

Understanding this provides much insight into other spectral properties of the DFT, including resolution bandwidth and as demonstrated below "spectral leakage". Here we see the result of a 4 point DFT when the frequency of the input signal is between DFT bins, the resulting DFT is the response from each of the 4 filters. We also see how when the input is exactly on bin center, that all other bins will be zero in their response.

• Very good answer Dan. I can see that you are one of those people of whom the English poet Chaucer would say, "Gladly would he learn and gladly teach." Commented May 15, 2022 at 15:34
• @RichardLyons Oh thank you so much! As are you so quite a compliment Commented May 15, 2022 at 16:26