Filter Transformations

The Prototype Filter

Another common approach for filter design is to start with a prototype filter, often a low-pass filter due to their analytical simplicity. We can then use Z-transform/Fourier properties to manipulate the into another filter that we desire. This section discusses these transformation properties and how they are used.

Filter Transformations through Modulation

Low pass to High Pass Transformation

Assume we have a low pass filter represented by $H_{\textrm{low}}(z)$. We can express a high-pass filter $H_{\textrm{high}}(\omega)$ by shifting the low pass filter, resulting in $$H_{\textrm{high}}(\omega) = H_{\textrm{low}}(\omega - \pi) \;. $$

In the time domain, this is equivalent to $$h_{\textrm{high}}[n] = h_{\textrm{low}}[n] \cos(\pi n) \;. $$ Hence, by multiplying by a cosine, we increase the frequency of our impulse response.

In the Z-domain, this is equivalent to $$H_{\textrm{high}}(z) = H_{\textrm{low}}(-z) \;. $$ Hence, a pole placed at $z=1$ would now be placed at $z=-1$.

Low pass to Band Pass Transformation

Assume we have a low pass filter represented by $H_{\textrm{low}}(z)$. We can express a band-pass filter $H_{\textrm{high}}(\omega)$ by shifting the low pass filter, resulting in $$H_{\textrm{pass}}(\omega) = H_{\textrm{low}}(\omega - \omega_0) + H_{\textrm{low}}(\omega + \omega_0) \;, $$ where $\omega_0$ is the center frequency of the band-pass filter.

In the time domain, this is equivalent to $$ \begin{align*} h_{\textrm{pass}}[n] &= h_{\textrm{low}}[n] \left[ e^{- j \omega_0 n } + e^{+ j \omega_0 n } \right] \\ &= 2 h_{\textrm{low}}[n] \cos(\omega_0 n) \;. \end{align*} $$ Again, by multiplying by a cosine, we increase the frequency of our impulse response.

In the Z-domain, this is equivalent to $$H_{\textrm{pass}}(z) = H_{\textrm{low}}(z e^{j \omega_0}) + H_{\textrm{low}}(z e^{-j \omega_0}) \;. $$ Hence, a pole placed at $z=1$ would now be placed at $z=e^{\pm j \omega_0}$.

Filter Transformations with All-Pass Mappings

Low-Pass to Low-Pass

Assume we have a low pass filter represented by $H_{\textrm{low}}(z)$. We can express another low-pass filter $H_{\textrm{low}}'(z)$ through the transformation $$H_{\textrm{low}}'(z) = H_{\textrm{low}}\left( \frac{z-a}{1-a z} \right) \;. $$

This transformation will work for any $a$, but if you know the cut-off frequency of the current filter $w_c$ and the cut-off frequency of the new filter $w_c'$, we can set $$ \begin{align} a = \frac{\sin[(\omega_c - \omega_c')/2]}{\sin[(\omega_c + \omega_c')/2]} \end{align} $$ Note that when $\omega_c = \omega_c'$, the filter is unchanged.

Low-Pass to High-Pass

Assume we have a low pass filter represented by $H_{\textrm{low}}(z)$. We can express a high-pass filter $H_{\textrm{high}}(z)$ through the transformation $$H_{\textrm{high}}(z) = H_{\textrm{low}}\left( - \, \frac{z-a}{1-a z} \right) \;. $$

This transformation will work for any $a$, but if you know the cut-off frequency of the current filter $w_c$ and the cut-off frequency of the new filter $w_c'$, we can set $$ \begin{align} a = \frac{\cos[(\omega_c + \omega_c')/2]}{\cos[(\omega_c - \omega_c')/2]} \end{align} $$ Note that when $\omega_c = \omega_c'$, we get $H_{\textrm{high}}(z) = H_{\textrm{low}}\left( - z \right)$.

Low-Pass to Band-Pass

Assume we have a low pass filter represented by $H_{\textrm{low}}(z)$. We can express a band-pass filter $H_{\textrm{pass}}(z)$ through the transformation $$H_{\textrm{pass}}(z) = H_{\textrm{low}}\left( - \, \frac{z^2 - a_1 z + a_2}{a_2 z^2 - a_1 z + 1} \right) \;. $$

If you know the cut-off frequency of the current filter $w_c$, the upper frequency edge of the band-pass filter $\omega_u$ and the lower frequency edge of the band-pass filter $\omega_\ell$, we can set $$ \begin{align} a_1 &= \frac{-2 \alpha K}{K +1} \\ a_2 &= \frac{K-1}{K+1} \\ \alpha &= \frac{\cos[(\omega_u + \omega_\ell)/2]}{\cos[(\omega_u - \omega_\ell)/2]} \\ K &= \cot[(\omega_u - \omega_\ell)/2] \tan[\omega_c/2] \end{align} $$ Note that when $\omega_u - \omega_\ell = \omega_c$, then $K=1$ and the transformation becomes a low-pass to high-pass conversion (with an additional shift).

Low-Pass to Band-stop

Assume we have a low pass filter represented by $H_{\textrm{low}}(z)$. We can express a band-stop filter $H_{\textrm{stop}}(z)$ through the transformation $$H_{\textrm{stop}}(z) = H_{\textrm{low}}\left( - \, \frac{z^2 - a_1 z + a_2}{a_2 z^2 - a_1 z + 1} \right) \;. $$

If you know the cut-off frequency of the current filter $w_c$, the upper frequency edge of the band-pass filter $\omega_u$ and the lower frequency edge of the band-pass filter $\omega_\ell$, we can set $$ \begin{align} a_1 &= \frac{-2 \alpha K}{K +1} \\ a_2 &= \frac{1-K}{1+K} \\ \alpha &= \frac{\cos[(\omega_u + \omega_\ell)/2]}{\cos[(\omega_u - \omega_\ell)/2]} \\ K &= \tan[(\omega_u - \omega_\ell)/2] \tan[\omega_c/2] \end{align} $$