#### DFT Filter Bank

Recall that the Length*Discrete Fourier Transform*(DFT) is defined as

(10.13) |

Comparing this to (9.12), we see that the filter-bank output , , is precisely the DFT of the input signal when ,

*i.e.*,

(10.14) |

In other words, the filter-bank output at time (the set of samples for ), equals the DFT of the first samples of ( , ). That is, taking a snapshot of all filter-bank channels at time yields the DFT of the input data from time

**0**through . More generally, for all , we will call Fig.9.15 the

*DFT filter bank*. The DFT filter bank is the special case of the STFT for which a rectangular window and hop size are used. The

*sliding DFT*is obtained by advancing successive DFTs by one sample:

(10.15) |

When for any integer , the Sliding DFT coincides with the DFT filter bank. At other times, they differ by a linear phase term. (Exercise: find the linear phase term.) The Sliding DFT

*redefines the time origin*every sampling period (each modulation term within the DFT starts at time 0 for each transform), while the DFT Filter Bank does not redefine the time origin (modulation terms are ``free running'' as they would be in an analog filter bank). Since ``DFT time'' repeats every samples, the two treatments coincide every samples (

*i.e.*, for every integer ). When is a power of 2, the DFT can be implemented using a Cooley-Tukey Fast Fourier Transform (FFT) using only operations per transform. By keeping track of the linear phase term (an modification), a DFT Filter Bank can be implemented efficiently using an FFT. Uniform FIR filter banks are very often implemented in practice using FFT software such as

`fftw`. Note that the channel bandwidths are

*narrow*compared with half the sampling rate (especially for large ), so that the filter bank output signals are

*oversampled*, in general. We will later look at

*downsampling*the channel signals to obtain a ``hopping FFT'' filter bank. ``Sliding'' and ``hopping'' FFTs are special cases of the discrete-time

*Short Time Fourier Transform*(STFT). The STFT normally also uses a

*window function*other than the rectangular window used in this development (the running-sum lowpass filter).

**Next Section:**

Inverse DFT and the DFT Filter Bank Sum

**Previous Section:**

System Diagram of the Running-Sum Filter Bank