Two-Channel Filter Banks

Two-Channel Filter Bank

General Setup

Below shows the two-channel filter bank. The first half of the filter bank (before $Y_0(z)$ and $Y_1(z)$) is known as an analysis filter bank. The second half of the filter bank (after $Y_0(z)$ and $Y_1(z)$) is known as a synthesis filter bank.

If you go thru each step of the bank, you will find that the $$ \begin{eqnarray*} V(z) &=& \frac{1}{2} X(z) \left[ H_0(z) G_0(z) + H_1(z) G_1(z) \right] \\ &~& + \frac{1}{2} X(-z) \left[ H_0(-z) G_0(z) + H_1(-z) G_1(z) \right] \end{eqnarray*} $$

Conditions for Perfect Reconstruction

If we want to use the analysis filter bank to transform data into a new domain that we can manipulate, we need to return back from that domain without loss. This is known as the perfect reconstruction condition.

Alias Canceling Condition

The z-domain

The aliasing canceling condition is defined by: $$ \begin{eqnarray*} H_0(z) G_0(z) + H_1(z) G_1(z) &=& 2 \\ H_0(-z) G_0(z) + H_1(-z) G_1(z) &=& 0 \end{eqnarray*} $$

The Frequency Domain

In the frequency domain, this is equivalent to $$ \begin{eqnarray*} H_0(\omega) G_0(\omega) + H_1(\omega) G_1(\omega) &=& 2 \\ H_0(\omega-\pi) G_0(\omega) + H_1(\omega-\pi) G_1(\omega) &=& 0 \end{eqnarray*} $$

The Time Domain

In the time domain, this is equivalent to $$ \begin{eqnarray*} h_0[n] \ast g_0[n] + h_1[n] \ast g_1[n] &=& 2 \delta[n] \\ \left( (-1)^n h_0[n] \right) \ast g_0[n] + \left( (-1)^n h_1[n] \right) \ast g_1[n] &=& 0 \end{eqnarray*} $$

Orthogonal Filter Bank Condition

General Assumptions

In the orthogonal filter bank condition, we define $$ \begin{eqnarray*} H_0(z) &=& G_0(z^{-1}) \\ H_1(z) &=& G_1(z^{-1}) \end{eqnarray*} $$ and we assume that $X(z)$ can be defined by $$ X(z) = \alpha G_0(z) + \beta G_1(z) $$ where $\alpha$ and $\beta$ are scalar constants.

Derivation

Under this condition, the output of the two-channel filter bank can be expressed as: $$ \begin{eqnarray*} V(z) &=& \frac{1}{2} \left[ \alpha G_0(z) + \beta G_1(z) \right] \left[ G_0(z^{-1}) G_0(z) + G_1(z^{-1}) G_1(z) \right] \\ &~& + \frac{1}{2} \left[ \alpha G_0(-z) + \beta G_1(-z) \right] \left[ G_0(-z^{-1}) G_0(z) + G_1(-z^{-1}) G_1(z) \right] \end{eqnarray*} $$ By clustering all of the $\alpha$ terms and $\beta$ terms together, this can be rearranged into $$ \begin{eqnarray*} V(z) &=& \frac{1}{2} \alpha \left( G_0(z) \left[ G_0(z) G_0(z^{-1}) + G_0(-z) G_0(-z^{-1}) \right] + G_1(z) \left[ G_0(z) G_1(z^{-1}) + G_0(-z) G_1(-z^{-1}) \right] \right) \\ &~& + \frac{1}{2} \beta \left( G_0(z) \left[ G_0(z) G_0(z^{-1}) + G_1(-z) G_0(-z^{-1}) \right] + G_1(z) \left[ G_1(z) G_1(z^{-1}) + G_1(-z) G_1(-z^{-1}) \right] \right) \end{eqnarray*} $$ The orthogonal filter bank conditions are derived from this expression by forcing $$ V(z) = \alpha G_0(z) + \beta G_1(z) = X(z) $$

The z-domain

The orthogonal filter bank condition is defined by: $$ \begin{eqnarray*} G_0(z) G_0(z^{-1}) + G_0(- z) G_0(- z^{-1}) &=& 2 \\ G_1(z) G_1(z^{-1}) + G_1(- z) G_1(- z^{-1}) &=& 2 \\ G_0(z) G_1(z^{-1}) + G_0(- z) G_1(- z^{-1}) &=& 0 \\ G_1(z) G_0(z^{-1}) + G_1(- z) G_0(- z^{-1}) &=& 0 \end{eqnarray*} $$ The last two equations are equivalent conditions since transforming $z$ into $z^{-1}$ gives the other expression. Hence, we only need three equations in the condition: $$ \begin{eqnarray*} G_0(z) G_0(z^{-1}) + G_0(- z) G_0(- z^{-1}) &=& 2 \\ G_1(z) G_1(z^{-1}) + G_1(- z) G_1(- z^{-1}) &=& 2 \\ G_0(z) G_1(z^{-1}) + G_0(- z) G_1(- z^{-1}) &=& 0 \end{eqnarray*} $$

The Frequency Domain

In the frequency domain, this is equivalent to $$ \begin{eqnarray*} G_0(\omega) G_0(-\omega) + G_0(\omega - \pi) G_0(- \omega - \pi) &=& 2 \\ G_1(\omega) G_1(-\omega) + G_1(\omega - \pi) G_1(- \omega - \pi) &=& 2 \\ G_0(\omega) G_1(-\omega) + G_0(\omega - \pi) G_1(- \omega - \pi) &=& 0 \end{eqnarray*} If the time-domain filter coefficients are real (i.e., $G(-\omega)=G^*(\omega)$), this is equivalent to: \begin{eqnarray*} |G_0(\omega)|^2 + |G_0(\omega - \pi)|^2 &=& 2 \\ |G_1(\omega)|^2 + |G_1(\omega - \pi)|^2 &=& 2 \\ G_0(\omega) G_1^*(\omega) + G_0(\omega - \pi) G_1^*(\omega - \pi) &=& 0 \end{eqnarray*}

The Time Domain

In the time domain, this is equivalent to $$ \begin{eqnarray*} g_0[n] \ast g_0[-n] + \left( (-1)^n g_0[n] \right) \ast \left( (-1)^n g_0[-n] \right) &=& 2 \delta[n] \\ g_1[n] \ast g_1[-n] + \left( (-1)^n g_1[n] \right) \ast \left( (-1)^n g_1[-n] \right) &=& 2 \delta[n] \\ g_0[n] \ast g_1[-n] + \left( (-1)^n g_0[n] \right) \ast \left( (-1)^n g_1[-n] \right) &=& 0 \end{eqnarray*} $$ So the condition states that the sum of the auto-correlation of the filters and their transformed versions must equal 2, and the sum of cross-correlation must equal 0.

It can be shown that this is equivalent to: $$ \begin{eqnarray*} \sum_{n=-\infty}^{\infty} g_0[n] g_0^*[n-2k] &=& \delta[k] \\ \sum_{n=-\infty}^{\infty} g_1[n] g_1^*[n-2k] &=& \delta[k] \\ \sum_{n=-\infty}^{\infty} g_0[n] g_1^*[n-2k] &=& 0 \\ \end{eqnarray*} $$