|
Part 2 shows how to optimize filter banks using high-level synthesis tools, and reviews the results of each optimization.
Filter banks are part of a group of signal processing techniques that decompose signals into frequency subbands. This decomposition is useful because frequency domain processing (also called subband processing) has advantages over time domain processing. Due to their computational requirements, filter banks are typically implemented in FPGAs or ASICs.
The implementation process involves two main phases: architectural exploration and logic design. With traditional approaches, both phases are time-consuming and error-prone. High level synthesis (HLS) tools, which have been available for some time, help simplify these design issues. Most of these tools, however, have difficulty addressing the multi-rate behavior and intrinsic parallelism found in filter bank processing.
In this two-part article, we will show how a new generation of HLS tools overcomes this limitation by supporting multi-rate parallelism at multiple levels in the design flow. We will show how these enable rapid architectural exploration and implementation. We will illustrate multi-rate architectural transformation and optimizations, and show how they can reduce design and verification effort, thereby increasing the reliability of the entire design process. Part 1 provides a brief overview on the main filter bank concepts and a basic HLS design flow. Part 2 provides more details on HLS implementation.
Filter Bank Overview
Filter banks, multi-rate signal processing and transforms such as Fourier Transforms are closely related topics. For many applications, the decomposition and subsequent processing in the frequency domain can yield significant benefits in various dimensions of performance:
- Accurate channel selection in wireless communications
[2]
- Faster convergence and lower complexity in adaptive equalization [5]
- Flexible compression of speech and music [7]
- Lower latency and better frequency compensation in hearing aids [6]
- More efficient short-time spectral analysis and synthesis [4]
- Multi-resolution image compression and wavelet transformations [3]
- Reliable automatic speech recognition [5]
Filter banks and subband processing have been a huge success with a very broad range of literature covering the theory and applications. This section will briefly outline the basic concepts. For a deeper introduction to filter bank theory and applications, the reader is encouraged to read some of the classic texts in
[1-4].
As shown in Figure 1, a filter bank is a collection of digital filters with a common input or common output. The analysis filter bank is comprised of the M analysis filters Hk(z), which splits the input signal x(n) into M subband signals xk(n). The synthesis filter bank uses filters Fk(z) to create a reconstructed output signal xh(n). Downsampling by N is done just after the analysis bank and upsampling by N is done before the synthesis bank. The subband processing application is usually done in the frequency domain at a slower rate.

(Click to enlarge)
Figure 1. Basic M-Channel Uniform Filter Bank Structure.
The goal in choosing the various filter bank parameters is to minimize the error in the reconstructed signal xh(n), while optimizing the performance of the signal decomposition. Thus the design problem becomes how to design the coefficients Hk(z), Fk(z) and up/down sampling ratio(s) N.
Uniform vs. Non-Uniform Filter Banks
When N and the filter responses are the same across all channels, the system is called an M-Channel Uniform Filter Bank. It is possible and sometimes beneficial to vary the channel bandwidth and downsampling ratio. A good example is speech processing in which octave-based and other non-uniform decomposition is commonly used [8]. In this article we will limit the discussion to the class of uniform filter banks.
|