Sounds Logical
home

WaveWarp 2.0 Component

IndexCurrent GroupPrevious GroupNext GroupPrevious ComponentNext ComponentBottom of Page

Functional Description | Algorithm | Signal Implementations | Related Components | Example DWBs usage

Multirate:

IIR HiLo DownSampler

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:
  • None

IndexCurrent GroupPrevious GroupNext GroupPrevious ComponentNext ComponentTop of Page

home - news - products - store - support - site map - company info
© 2007 Sounds Logical. All rights reserved.
Sounds Logical
legal notice - privacy statement