Digital Signal Processing Using MATLAB and Wavelets

Chapter 9.1 - The Two-Channel Filter Bank

To demonstrate a general transform, we use Figure 9.3 below. Here, an input signal feeds to two channels, each with a pair of FIR filters. We call this structure a two-channel filter bank.

Figure 9.3: A two-channel filter bank.
 

The left half of Figure 9.3 performs the forward transform, also called analysis, while the right half corresponds to the inverse transform, also called synthesis. When we talk about a transform such as the Haar transform or the wavelet transform, we refer only to the analysis part, the left half of the figure. On the other hand, the inverse Haar transform takes place on the right half of the figure. Putting the forward and inverse transforms together, we expect that the output of the two-channel filter bank ($y[n]$) is exactly the same as the input ($x[n]$), with the possible exception of a time delay, such as $y[n] = x[n-k]$, where $k = 1$ for two coefficients.

The complementary filters of a filter bank divide the signal into subsignals of low-frequency components and one of high-frequency components. This approach is called subband coding.

For the inverse transform, each of the filters' outputs ($w[n]$ and $z[n]$) goes to another FIR filter, after which the two channels are recombined by addition to form $y[n]$. The idea is that $w[n]$ and $z[n]$ are a transformed version of $x[n]$, and that $y[n]$ is the signal after the inverse transform. We expect that $y[n]$ is the same as $x[n]$, assuming that we did not alter the signal along the way. If we wanted to perform lossy compression, for example, we might alter $z[n]$ so that it can be stored more efficiently. Of course, this would mean that $y[n]$ would not be $x[n]$ exactly, but rather it would be an approximation of $x[n]$. The discussion here assumes that we want perfect reconstruction, that is, that $y[n]$ will be an exact copy of $x[n]$, though it may be a delayed version. To get perfect reconstruction, we have to choose our filter coefficients with care. Let's use the following values:

\begin{displaymath}h_0 = \{ a, b \} \end{displaymath}

\begin{displaymath}h_1 = \{ b, -a \} \end{displaymath}

\begin{displaymath}g_0 = \{ b, a \} \end{displaymath}

\begin{displaymath}g_0 = \{ -a, b \} . \end{displaymath}

Let's see what the signals $w[n]$ and $z[n]$ would be. This is the forward transform:

\begin{displaymath}w[n] = ax[n] + bx[n-1] \end{displaymath}

\begin{displaymath}z[n] = bx[n] - ax[n-1] . \end{displaymath}

We will also need to know \begin{displaymath}w[n-1] = a x[n-1] + b x[n-2] \end{displaymath}and $w[n-1]$ and $z[n-1]$, which can be found by replacing $n$ with $n-1$:

\begin{displaymath}w[n-1] = a x[n-1] + b x[n-2] \end{displaymath}

\begin{displaymath}z[n-1] = b x[n-1] - a x[n-2] . \end{displaymath}

Now we can talk about what $y[n]$ is, after the inverse transform:

\begin{displaymath}y[n] = b w[n] + a w[n-1] - a z[n] + b z[n-1] . \end{displaymath}

However, it is interesting to see how $y[n]$ relates to the original signal, $x[n]$:

$y[n] = $$b(a x[n] + b x[n-1])$+ $a(a x[n-1] + b x[n-2])$
 - $a(b x[n] - a x[n-1])$+ $b(b x[n-1] - a x[n-2])$
$y[n] = $$a b x[n]$+ $b b x[n-1]$+ $a a x[n-1]$+ $a b x[n-2]$
 - $a b x[n]$+ $a a x[n-1]$+ $b b x[n-1]$- $a b x[n-2] .$

Repeating the previous equation, but eliminating the parts that cancel:

$y[n] = $$b b x[n-1]$+ $a a x[n-1]$
 + $a a x[n-1]$+ $b b x[n-1]$

\begin{displaymath}y[n] = (2aa + 2bb) x[n-1] . \end{displaymath}

The Haar transform is a very simple wavelet transform. If we carefully choose our coefficients $a$ and $b$ above, we will have the Haar transform. If $2aa + 2bb = 1$, then $y[n] = x[n-1]$, meaning that the output is the same as the input, only delayed by 1. We can handle the coefficients $a$ and $b$ in one of two ways. Either we can make them both 1, which makes the filters easier to implement, and then remember to divide all $y[n]$ values by $(2 \times 1^2 + 2 \times 1^2) = 4$, or we can choose our $a$ and $b$ values to make sure that $(aa + bb) = 1$. If we force $aa = 1/2$, and $bb = 1/2$, then $a = b = 1/\sqrt{2}$. These values correspond to the Haar transform. The reason we want $(aa + bb) = 1$ and not $2(aa + bb) = 1$ has to do with the down/up-samplers, discussed later in this chapter.

UNLIMITED FREE
ACCESS
TO THE WORLD'S BEST IDEAS

SUBMIT
Already a GlobalSpec user? Log in.

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.

Customize Your GlobalSpec Experience

Category: DSP Boards
Finish!
Privacy Policy

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.