Perfect Reconstruction Filter Banks
We now consider filter banks with an arbitrary number of channels, and
ask under what conditions do we obtain a perfect reconstruction filter
bank? Polyphase analysis will give us the answer readily. Let's
begin with the
-channel filter bank in Fig.11.20. The
downsampling factor is
. For critical sampling, we set
.
The next step is to expand each analysis filter
into its
-channel ``type I'' polyphase representation:
![]() |
(12.49) |
or
![]() |
(12.50) |
which we can write as
![]() |
(12.51) |
Similarly, expand the synthesis filters in a type II polyphase decomposition:
![]() |
(12.52) |
or
![]() |
(12.53) |
which we can write as
![]() |
(12.54) |
The polyphase representation can now be depicted as shown in
Fig.11.21. When
, commuting the up/downsamplers gives
the result shown in Fig.11.22. We call
the
polyphase matrix.
As we will show below, the above simplification can be carried out
more generally whenever
divides
(e.g.,
). In these cases
becomes
and
becomes
.
Simple Examples of Perfect Reconstruction
If we can arrange to have
![]() |
(12.55) |
then the filter bank will reduce to the simple system shown in Fig.11.23.
Thus, when
and
,
we have a simple parallelizer/serializer,
which is perfect-reconstruction by inspection: Referring to
Fig.11.23, think of the input samples
as ``filling'' a
length
delay line over
sample clocks. At time 0
, the
downsamplers and upsamplers ``fire'', transferring
(and
zeros) from the delay line to the output delay chain, summing with
zeros. Over the next
clocks,
makes its way toward the
output, and zeros fill in behind it in the output delay chain.
Simultaneously, the input buffer is being filled with samples of
. At time
,
makes it to the output. At time
,
the downsamplers ``fire'' again, transferring a length
``buffer''
[
:
] to the upsamplers. On the same clock pulse, the
upsamplers also ``fire'', transferring
samples to the output delay
chain. The bottom-most sample [
] goes out immediately
at time
. Over the next
sample clocks, the length
output buffer will be ``drained'' and refilled by zeros.
Simultaneously, the input buffer will be replaced by new samples of
. At time
, the downsamplers and upsamplers ``fire'', and
the process goes on, repeating with period
. The output of the
-way parallelizer/serializer is therefore
![]() |
(12.56) |
and we have perfect reconstruction.
Sliding Polyphase Filter Bank
When
, there is no downsampling or upsampling, and the system
further reduces to the case shown in Fig.11.24. Working
backward along the output delay chain, the output sum can be written
as
![\begin{eqnarray*}
\hat{X}(z) &=& \left[z^{-0}z^{-(N-1)} + z^{-1}z^{-(N-2)} + z^{-2}z^{-(N-3)} + \cdots \right.\\
& & \left. + z^{-(N-2)}z^{-1} + z^{-(N-1)}z^{-0} \right] X(z)\\
&=& N z^{-(N-1)} X(z).
\end{eqnarray*}](http://www.dsprelated.com/josimages_new/sasp2/img2121.png)
Thus, when
, the output is
![]() |
(12.57) |
and we again have perfect reconstruction.
Hopping Polyphase Filter Bank
When
and
divides
, we have, by a similar analysis,
![]() |
(12.58) |
which is again perfect reconstruction. Note the built-in overlap-add when

Sufficient Condition for Perfect Reconstruction
Above, we found that, for any integer
which divides
, a sufficient condition for perfect reconstruction is
![]() |
(12.59) |
and the output signal is then
![]() |
(12.60) |
More generally, we allow any nonzero scaling and any additional delay:
where


![]() |
(12.62) |
Thus, given any polyphase matrix
, we can attempt to compute
: If it is stable, we can use it to build a
perfect-reconstruction filter bank. However, if
is FIR,
will typically be IIR. In §11.5 below, we will look at
paraunitary filter banks, for which
is FIR and
paraunitary whenever
is.
Necessary and Sufficient Conditions for Perfect Reconstruction
It can be shown [287] that the most general conditions for perfect reconstruction are that
![]() |
(12.63) |
for some constant




Note that the more general form of
above can be regarded as a (non-unique) square root of a vector unit delay, since
![]() |
(12.64) |
Thus, the general case is the same thing as
![]() |
(12.65) |
except for some channel swapping and an extra sample of delay in some channels.
Polyphase View of the STFT
As a familiar special case, set
![]() |
(12.66) |
where

![]() |
(12.67) |
The inverse of this polyphase matrix is then simply the inverse DFT matrix:
![]() |
(12.68) |
Thus, the STFT (with rectangular window) is the simple special case of a perfect reconstruction filter bank for which the polyphase matrix is constant. It is also unitary; therefore, the STFT is an orthogonal filter bank.
The channel analysis and synthesis filters are, respectively,
![\begin{eqnarray*}
H_k(z) &=& H_0(zW_N^k)\\ [5pt]
F_k(z) &=& F_0(zW_N^{-k})
\end{eqnarray*}](http://www.dsprelated.com/josimages_new/sasp2/img2142.png)
where
, and
![]() |
(12.69) |
corresponding to the rectangular window.
Looking again at the polyphase representation of the
-channel
filter bank with hop size
,
,
,
dividing
, we have the system shown in Fig.11.25.
Following the same analysis as in §11.4.1 leads to the following
conclusion:

Our analysis showed that the STFT using a rectangular window is
a perfect reconstruction filter bank for all
integer hop sizes in the set
.
The same type of analysis can be applied to the STFT using the other
windows we've studied, including Portnoff windows.
Example: Polyphase Analysis of the STFT with 50% Overlap, Zero-Padding, and a Non-Rectangular Window
Figure 11.26 illustrates how a window and a hop size other than
can be introduced into the polyphase representation of the STFT.
The constant-overlap-add of the window
is implemented in the
synthesis delay chain (which is technically the
transpose of a tapped delay
line). The downsampling factor and window must be selected
together to give constant overlap-add, independent of the
choice of polyphase matrices
and
(shown here as the
and
).
Example: Polyphase Analysis of the Weighted Overlap Add Case: 50% Overlap, Zero-Padding, and a Non-Rectangular Window
We may convert the previous example to a weighted overlap-add
(WOLA) (§8.6) filter bank by replacing each
by
and introducing these gains also between the
and
upsamplers, as shown in Fig.11.27.
Next Section:
Paraunitary Filter Banks
Previous Section:
Critically Sampled Perfect Reconstruction Filter Banks