I was just studying an old circuit analysis textbook that was describing how to design a Butterworth filter, and that seemed easy enough.. then, I started to wonder if I can take this analog filter and convert it into a digital filter. Its not really an exercise in the textbook, i was just curious how to convert the analog filter into a digital filter just for fun without the heavy DSP theory.

So I was tried to taking a toy Butterworth filter to do just that. For example, Let's suppose I had an analog filter:

$$H_a(j\Omega) = \frac{1}{(1+j\Omega)(2+j\Omega)}$$

and i wanted to convert this into a digital filter with say a sampling period $T=200\pi$ rad/sec, and neglecting the effects of aliasing, using this formula:

$$H(e^{j\omega}) = H_a(j\Omega)\Big|_{\Omega = \omega/T}$$

What would $H(z)$ and $h[n]$ look like for the digital filter?

  • 1
    $\begingroup$ need to look into the Bilinear Transform: $$ H(z) = H_a(s) \Big|_{s=\tfrac{2}{T} \tfrac{z-1}{z+1}} $$ $\endgroup$ – robert bristow-johnson Jan 30 '20 at 5:30
  • $\begingroup$ what is the $\frac{z-1}{z+1}$, is that suppose to be there? $\endgroup$ – pico Jan 30 '20 at 5:32
  • $\begingroup$ it's the same $z$ that you have in $H(z)$. another question (that i assumed you were not asking) is: "How does one convert a transfer function $H(z)$ into a filter structure?" $\endgroup$ – robert bristow-johnson Jan 30 '20 at 5:34
  • $\begingroup$ we can reduce the toy example down to one pole to keep it simple. $H_a(j\Omega) = \frac{1}{1+j\Omega}$ $\endgroup$ – pico Jan 30 '20 at 5:34
  • $\begingroup$ so what is "$s$" in your $H_a(s)$? $\endgroup$ – robert bristow-johnson Jan 30 '20 at 5:35

Converting the analog filter $H_a(s)$ into a digital filter $H_d(z)$ using the bilinear transform where T is the sampling period:

$\Large H_d(z) = H_a(s)\bigg|_{s=\frac{2}{T}\frac{z-1}{z+1}}$


Given a first order Butterworth filter

$H_a(s) = \frac{1}{1+RCs}$

$H_d(z) = H_a\bigg( \frac{2}{T} \frac{z-1}{z+1} \bigg)$

$H_d(z) = \frac{1}{1+RC\Big(\frac{2}{T}\frac{z-1}{z+1} \Big)}$

$H_d(z) = \frac{1}{1+RC(\frac{2}{T}\frac{z-1}{z+1})}$

$H_d(z) = \frac{1+z}{(1-2RC/T)+(1+2RC/T)z}$

$H_d(z) = \frac{1+z^{-1}}{(1+2RC/T)+(1-RC/T)z^{-1}}$

The coefficients of the denominator are the 'feed-backward' coefficients and the coefficients of the numerator are the 'feed-forward' coefficients used to implement a real-time digital filter.

  • $\begingroup$ very good. now the next thing you gotta learn about, pico, is about frequency warping. $\endgroup$ – robert bristow-johnson Jan 30 '20 at 15:02
  • $\begingroup$ Nice job! ..... $\endgroup$ – Dan Boschen Jan 30 '20 at 19:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.