WaveWarp 2.0 Component
      

Multirate:
Functional Description
Analysis branch of a two-channel IIR filter bank
for simultaneously downsampling both the
high-frequency and
low-frequency sub-bands of the input signal (hence the name "HiLo").
The high and low branches feed the first and second output, respectively.
The outputs have a sample rate which is half of the
input sample rate.
The component is constructed from
downsamplers in combination with both a high-pass and
a low-pass IIR anti-aliasing filter (one for each branch).
IMPORTANT: This component should be used with care.
The low-pass (second) output is a "conventional"
downsampled signal and can be treated as such i.e. can be subjected to
arbitrary further processing.
The high-pass (first) output signal, however,
cannot be treated as a "conventional" signal in the sense that
any processing performed on it may destroy the
possibility of re-constructing the original signal by later upsampling
via the IIR Hi UpSampler (the only upsampler appropriate for this purpose).
The component is most usefully employed when the downstream processing (before the
corresponding IIR Hi UpSampler) consists of only a gain change since this does not
adversely affect the later re-construction of the high-pass branch via the IIR Hi
UpSampler. Examples of such usage would be in the construction of
highly-efficient multirate equalisers and dynamic range controllers consisting of
muliple cascaded units in combination with simple or signal-dependent gain factors.
Algorithm
In the current implementation, the IIR high-pass and low-pass
anti-aliasing filters are
"hard-wired" (i.e. cannot be changed by the user).
They are designed and implemented from the same kernel filter,
according to an adaptation of the "complementary filter" method
described in
[KruKaMo].
The kernel filter is designed and implemented
according to the method described in
[VaCo]
(with a sign-change in the all-pass circuit to convert the design
from low-pass to high-pass).
Concerning the particulars of this method for the present
application, it is found that the use of two cascaded elementary
all-pass sections (per branch) is sufficient for reasonable performance.
The downsampler implementation
is highly-efficient, since the use of all-pass subfilters allows
the entire system to be structured in polyphase form (not generally possible
for IIR filters)
such that all the filtering is computed at the lower
(i.e. the output) sample rate. The end result is the same as if the
filtering was performed first (i.e. at the higher sample rate), followed
by the downsampling (retaining only every Mth filtered sample in each branch).
The real-time output from each polyphase IIR filter branch is computed by direct
evaluation of the cascaded all-pass elements.
See
[CrRa]
and
[StNg]
for a detailed treatment
of multirate signal processing.
For a specific discussion
on downsampling by an integer factor, see
section 2.3.2 of
[CrRa]
and chapters 1 & 3 of
[StNg].
For a specific discussion
on two-channel filter banks (FIR only), see
[StNg]
chapter 4.
For design methodologies for
IIR (recursive) filters suitable for sample rate conversion,
see, for example,
[VaCo],
[ReSa1],
and
[ReSa2].
For a design methodology for complementary polyphase IIR filters,
see [KruKaMo].
Signal Implementations
| Audio signals | Control signals | Description |
| Single input mono double output mono | n/a | Downsamples the mono input signal.
The first and second outputs correspond to the first and second branches of the analysis filter bank,
respectively. The first branch contains the high frequencies; the second branch contains the
low frequencies.
| Single input stereo double output stereo | n/a | Downsamples the stereo input signal.
The first and second outputs correspond to the first and second branches of the analysis filter bank,
respectively. The first branch contains the high frequencies; the second branch contains the
low frequencies.
|
|
Related components:
Example DrawingBoards illustrating usage:

      
|