Lets take a look at how many multiplications we save by using
the polyphase/DFT analysis filterbank in Figure 5
instead of the standard modulated filterbank in Figure 4.
Here we assume that N is a power of 2 (see Sorensen, Jones, Heideman & Burrus TASSP 87), so that the DFT can be
implemented with a radix-2 FFT.
With the standard structure in Figure 4, modulation
requires 2N2N real multiplies, and filtering of the complex-valued
modulator outputs requires 2×N×M2×N×M additional real
multiplies, for each input point x(n)x(n).
This gives a total of
2N(M+1)realmultipliesperinput.2N(M+1)realmultipliesperinput.
(3)In the polyphase/FFT structure of Figure 5, it is more
convenient to count the number of multiplies required for each block
of N inputs since each new N-block produces one new sample at
every filter input and one new N-vector at the DFT input.
Since the polyphase filters are each length-M/NM/N, filtering the
block requires N×M/N=MN×M/N=M real multiplies.
Though the standard radix-2 N-dimensional complex-valued FFT
uses N2log2NN2log2N complex multiplies,
a real-valued N-dimensional FFT can be accomplished in Nlog2NNlog2N
real multiplies when N is a power of 2.
This gives a total of
M+Nlog2NrealmultipliesperNinputs,orM/N+log2Nrealmultipliesperinput!M+Nlog2NrealmultipliesperNinputs,orM/N+log2Nrealmultipliesperinput!
(4)Say we have N=32N=32 frequency bands and the prototype filter is
length M=512M=512 (which turn out to be the values used
in the MPEG sub-band filter).
Then using the formulas above, the standard implementation
requires 3283232832 multiplies per input, while the polyphase/DFT
implementation requires only 2121!