Digital Signal Processing Using MATLAB and Wavelets

Chapter 9.7 - Wavelet Filter Design--Filters with Four Coefficients

Here we will examine designing a general filter bank with four taps per filter, very similar to that in the last section. However, one difference is that we use the z-transform in this section, which actually makes the analysis a bit easier. Figure 9.21 shows what this would look like. We specify values $a, b, c, d$ and $d, c, b, a$ for coefficients in one channel, with the understanding that the coefficients for the other channel are a reversed and sign-changed version of these. That is, in the other channel we would have the coefficients $d, -c, b, -a$ and$-a, b, -c, d$, respectively.

We will use $H_0(z)$ and $H_1(z)$ for the lowpass and highpass filters' transfer functions, respectively, while $F_0(z)$ and $F_1(z)$ are for the corresponding inverse filters. $H_0(z)$ and $F_0(z)$ go with the bottom channel in Figure 9.21.

Examining the individual filter's responses, we see

 

\begin{eqnarray*}
F_0(z) &=& d + c z^{-1} + b z^{-2} + a z^{-3} \H_0(z) &=&...
...} \H_1(z) &=& F_0(-z) = d - c z^{-1} + b z^{-2} - a z^{-3} .
\end{eqnarray*}

Using $P_0(z)$ and $P_0(-z)$ notation to represent the product of two sequential filters, for the top channel and the bottom channel, respectively, we get the following equations for a CQF with four coefficients per filter.

 

\begin{eqnarray*}
P_0(z) &=& H_0(z) F_0(z) \P_0(z) &=& (a + b z^{-1} + c z^...
... bd ) z^{-1} + 2 (aa + bb + cc + dd) z^{-3} + 2 (ac + bd) z^{-5}
\end{eqnarray*}

Note that $ - P_0(-z) = H_1(z) F_1(z) $, but we do not have to calculate this explicitly. Instead, we just repeat the expression for $P_0$ with $-z$ as the argument. As we saw in section 8.7, $-z$ raised to a negative power gives a negative value for an odd power, but returns a positive value for an even one.

Figure 9.21: Designing a filter bank with four taps each.

That is, we can determine the filters' responses and see how the terms cancel each other out. Then we can divide by two, which is the same effect that down/up-samplers have.

Without down/up-samplers:

\begin{displaymath}P_0(z) - P_0(-z) = 2 ( ac + bd ) z^{-1} + 2 (aa + bb + cc + dd) z^{-3} + (ac + bd) z^{-5} = 2 z^{-L} . \end{displaymath}

With down/up-samplers:

\begin{displaymath}P_0(z) - P_0(-z) = ( ac + bd ) z^{-1} + (aa + bb + cc + dd) z^{-3} + (ac + bd) z^{-5} = z^{-L} . \end{displaymath}

We are left with the output in terms of three delayed versions of the input: $z^{-1}$, $z^{-3}$, and $z^{-5}$. Two of these must be eliminated, which can be accomplished by setting $ac+bd=0$. Also, we do not want the result to be a scaled version of the input, so $aa + bb + cc + dd = 1$. It is also desirable that the sum of the highpass filter coefficients be zero, i.e., $d - c + b - a = 0$, for this to be a wavelet transform.

The question now becomes, can we find values for $a, b, c,$ and $d$ to satisfy these equations?

\begin{eqnarray*}
a c + b d &=& 0 \a^2 + b^2 + c^2 + d^2 &=& 1 \d - c + b -a &=& 0
\end{eqnarray*}

One possibility is to use the Daubechies wavelet filter coefficients, since they satisfy these criteria.

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.