up

Butterworth low pass analog filter design

Nasser M. Abbasi, July 10, 2010



Contents

1 Introduction

This is a detailed review of low pass Butterworth analog filter design. The goal is to generate $ H\left( s\right) $, the Butterworth transfer function, from frequency specifications. There are 4 specifications as input to this design. The specifications are

$\displaystyle %
\begin{tabular}[c]{\vert l\vert l\vert}\hline
$f_{p}$\ & The ...
..._{s}$\ & The attenuation in db at $\Omega_{s}$\\ \hline
\end{tabular}
\ \ \
$

This diagram below illustrates these specifications
Image specs
Notice that the specifications are given in db (the left diagram above) and not in magnitude (right diagram above).

Notice that the specifications are given with reference to the transfer function magnitude. The phase is not taken into account in the specifications. Butterworth analog transfer function transfer function magnitude is given by

$\displaystyle \left\vert H\left( j\Omega\right) \right\vert =\frac{1}{\sqrt{1+\left(
\frac{\Omega}{\Omega_{c}}\right) ^{2N}}}%
$

Where $ \Omega_{c}$ is the cutoff frequency. This is the frequency at which $ \left\vert H\left( j\Omega\right) \right\vert =\frac{1}{\sqrt{2}}=0.707.$ Hence, the goal of the design, is to determine $ N$ and $ \Omega_{c}$ from the specifications. Once $ N$ and $ \Omega_{c}$ are found, then the $ H(s)$ poles are found. Once the poles are found, then $ H\left( s\right) $ is found.

2 Algorithm diagram

The following diagram outlines the design algorithm

Image flow_chart

3


Design steps

3.1 backward transformation

Let $ \Omega_{p}=1$ rad/sec, and let $ \Omega_{s}=\frac{f_{s}}{f_{p}}$ rad/sec.

3.2 Determine filter order $ N$

$\displaystyle A_{p}=-20\log\left\vert H\left( j\Omega_{p}\right) \right\vert =-...
...ht) ^{2N}}}%
=10\log\left[ 1+\left( \frac{1}{\Omega_{c}}\right) ^{2N}\right]
$

Solve for $ \Omega_{c}$ from the above, we obtain

$\displaystyle \Omega_{c}=\frac{1}{\left( 10^{\frac{A_{p}}{10}}-1\right) ^{\frac{1}{2N}}} %
$ (1)

Now, using $ A_{s}\,$

$\displaystyle A_{s}=-20\log\left\vert H\left( j\Omega_{s}\right) \right\vert =-...
...}}%
=10\log\left[ 1+\left( \frac{\Omega_{s}}{\Omega_{c}}\right) ^{2N}\right]
$

Solve for $ \Omega_{s}$ from the above

$\displaystyle \Omega_{s}=\Omega_{c}\left( 10^{\frac{A_{s}}{10}}-1\right) ^{\frac{1}{2N}} %
$ (2)

Substitute $ \Omega_{c}\,$ found in (1) into $ \Omega_{s}$ above, we see that

$\displaystyle \Omega_{s}=\left[ \frac{\left( 10^{\frac{A_{s}}{10}}-1\right) }{\left( 10^{\frac{A_{p}}{10}}-1\right) }\right] ^{\frac{1}{2N}} %
$ (3)

Hence, solve for $ N$ in the above by taking logs we find

$\displaystyle N=\frac{\log\left[ \frac{\left( 10^{\frac{A_{s}}{10}}-1\right) }{\left( 10^{\frac{A_{p}}{10}}-1\right) }\right] }{2\log\Omega_{s}} %
$ (4)

Now, since order of filter has to be an integer, round the above value for $ N$ upwards if it is not an integer already. Let us call this new $ N$ as $ N^{\prime}$ to make it clear that this is an updated $ N$ from the original one.

3.3 Find stables poles assuming $ \Omega_{c}=1$

Since the butterworth magnitude square of the transfer function is

$\displaystyle \left\vert H\left( s\right) \right\vert ^{2}=\frac{1}{1+\left( \frac
{s}{j\Omega_{c}^{\prime}}\right) ^{2N^{\prime}}}%
$

Hence $ H\left( s\right) $ poles are found by setting the denominator of the above to zero, and for $ \Omega_{c}=1$ we obtain

$\displaystyle 1+\left( \frac{s}{j}\right) ^{2N^{\prime}}$ $\displaystyle =0$
$\displaystyle \left( \frac{s}{j}\right) ^{2N^{\prime}}$ $\displaystyle =-1$
$\displaystyle \left( \frac{s}{j}\right) ^{2N^{\prime}}$ $\displaystyle =e^{j\left( \pi+2\pi k\right) }\ \ \ \ \ $
$\displaystyle \frac{s}{j}$ $\displaystyle =e^{j\left( \frac{\pi+2\pi k}{2N^{\prime}}\right) \ \ \ \ \ \ \ \ \ \ \ \ }k=0,1,2,\cdots2N^{\prime}-1$
$\displaystyle s_{k}$ $\displaystyle =j\ e^{j\left( \frac{\pi+2\pi k}{2N^{\prime}}\right) }$
$\displaystyle s_{k}$ $\displaystyle =\ e^{j\frac{\pi}{2}}e^{j\left( \frac{\pi+2\pi k}{2N^{\prime}%
}\right) }$
$\displaystyle s_{k}$ $\displaystyle =\ e^{j\left( \frac{\pi+2\pi k}{2N^{\prime}}+\frac{\pi}{2}\right) } %
$ (5)

We only need to find the LHS poles, which are located at $ k=0\cdots
N^{\prime}-1$, because these are the stable poles.

Now that we found the poles from above, hence we write

$\displaystyle H(s)=\frac{1}{%
{\displaystyle\prod\limits_{k=0}^{N^{\prime}-1}}...
..._{0}\right) \left( s-s_{1}\right) \cdots\left( s-s_{N^{\prime}-1}\right) } %
$ (6)

3.4 Rescale the poles

We have to adjust either $ A_{p}$ or $ A_{s}$ depending on if the excess tolerance is to be assigned to the passband or to the stop band and calculate $ \Omega_{c}$ based on this.

If the excess tolerance is to be assigned to the passband, then from (3) we solve for $ A_{p}$ and call this new found value $ A_{p}^{\prime}$

$\displaystyle A_{p}^{\prime}=10\log\left( \frac{\left( 10^{\frac{A_{s}}{10}}-1\right) }{\Omega_{s}^{2N^{\prime}}}+1\right) %
$ (6.1)

and also need to determine $ \Omega_{c}$ from (1), lets call this $ \Omega
_{c}^{\prime}$ to reflect that this goes with the updated $ A_{p}^{\prime}$ and not the original $ A_{p}.$

$\displaystyle \Omega_{c}^{\prime}=\frac{1}{\left( 10^{\frac{A_{p}^{\prime}}{10}}-1\right) ^{\frac{1}{2N^{\prime}}}} %
$ (6.2)

However, if the excess tolerance is to be assigned to the stopband, then from (3) we solve for $ A_{s}$ and call this new found value $ A_{s}^{\prime}$

$\displaystyle A_{s}^{\prime}=10\log\left( \Omega_{s}^{2N^{\prime}}\left( 10^{\frac{A_{p}%
}{10}}-1\right) +1\right) %
$ (6.3)

and also need to adjust $ \Omega_{c}$ to $ \Omega_{c}^{\prime}$. From (2), and using the above new value of $ A_{s}^{\prime}$ we write

$\displaystyle \Omega_{c}^{\prime}=\frac{\Omega_{s}}{\left( 10^{\frac{A_{s}^{\prime}}{10}%
}-1\right) ^{\frac{1}{2N^{\prime}}}} %
$ (6.4)

Now need to adjust $ H\left( s\right) $ found above in (6) since that was found for $ \Omega_{c}=1$ and now we have found an updated $ \Omega_{c}^{\prime
}$, to do that we replace $ s$ by $ \frac{s}{\Omega_{c}^{\prime}}$, hence $ H(s)$ becomes

$\displaystyle H(s)$ $\displaystyle =\frac{1}{\left( \frac{s}{\Omega_{c}^{\prime}}-s_{0}\right) \left...
...}\right) \cdots\left( \frac{s}{\Omega _{c}^{\prime}}-s_{N^{\prime}-1}\right) }$
  $\displaystyle =\frac{\left[ \Omega_{c}^{\prime}\right] ^{\left( N^{\prime}-1\ri...
... }s_{1}\right) \cdots\left( s-\Omega_{c}^{\prime}s_{N^{\prime}-1}\right) } %
$ (7)

Now, we have completed the first part of the design. We have found $ N^{\prime
},\Omega_{c}^{\prime}$ and adjusted $ A_{p}$ or $ A_{s}$ depending on the requirements for excess tolerance. Now we have all the parts needed to go ahead and design $ H\left( s\right) $ by finding its poles. But remember to use the adjusted values from now on.

3.5 Convert normalized low pass using frequency transformation

The above $ H(s)$ found in (7) we designed for frequency $ \Omega_{p}=1$ and $ \Omega_{s}=\frac{2\pi f_{s}}{2\pi f_{p}}$. The above found $ H\left(
s\right) $ is called the normalized transfer function. It is a low pass analog filter, which we need to map to a low pass analog filter, but un-normalized based on the actual frequencies specified (remember, the above was designed based on using $ \Omega_{p}=1$).

So now we need to make adjustment to obtain $ H(s)$ for $ \Omega_{p}=2\pi f_{p}$ and $ \Omega_{s}=2\pi f_{s}$.

To do this, replace $ s$ above by $ \frac{s}{2\pi f_{p}}$, hence (7) becomes

$\displaystyle H\left( s\right)$ $\displaystyle =\frac{\left[ \Omega_{c}^{\prime}\right] ^{\left( N^{\prime}-1\r...
...\cdots\left( \frac{s}{2\pi f_{p}}-\Omega_{c}^{\prime}s_{N^{\prime}-1}\right) }$
   
  $\displaystyle =\frac{\left[ \Omega_{c}^{\prime}\times2\pi f_{p}\right] ^{\left(...
...ght) \cdots\left( s-2\pi f_{p}\Omega_{c}^{\prime}s_{N^{\prime}-1}\right) } %
$ (8)

The zeros of $ H(s)$ are located at $ \infty$ and there are $ N^{\prime}$ of them.

When simplifying the denominator above, multiply the complex conjugate terms with each others to obtain real coefficients.

4 Example designs

4.1 Example 1

Given

$ f_{p}=1000\ hz$

$ f_{s}=2000\ hz$

$ A_{p}=1db$

$ A_{s}=20db$

Excess tolerance at stopband, find $ H(s)$

4.1.1 backward transformation

$\displaystyle \Omega_{p}$ $\displaystyle =1$ rad/sec
$\displaystyle \Omega_{s}$ $\displaystyle =\frac{f_{s}}{f_{p}}=2$ rad/sec$\displaystyle %
$

4.1.2 Determine filter order $ N$

From (4)

$\displaystyle N$ $\displaystyle =\frac{\log\left[ \frac{\left( 10^{\frac{A_{s}}{10}}-1\right) }{\left( 10^{\frac{A_{p}}{10}}-1\right) }\right] }{2\log\Omega_{s}}$
   
  $\displaystyle =\frac{\log_{10}\left[ \frac{\left( 10^{\frac{20}{10}}-1\right) ...
...eft( 10^{\frac{1}{10}}-1\right) }\right] }{2\log_{10}2}=4.\,\allowbreak 289\,4$

Hence

$\displaystyle N^{\prime}=5
$

4.2 Find stables poles assuming $ \Omega_{c}=1$

From (5), and since $ N^{\prime}=5$

$\displaystyle s_{k}$ $\displaystyle =\ e^{i\left( \frac{\pi+2\pi k}{2N^{\prime}}+\frac{\pi}{2}\right) }$
  $\displaystyle =e^{i\left( \frac{\pi+2\pi k}{2\left( 5\right) }+\frac{\pi}{2}\right) }%
$

Find the poles

$\displaystyle %
\begin{tabular}[c]{ll}%
$k$\ & $s_{k}$\\
$0$\ & $e^{i\left(...
...rac{\pi}{2}\right) }%
=-0.309\,02-0.951\,06\allowbreak i$%
\end{tabular}
\
$

Hence from (6)

$\displaystyle H(s)$ $\displaystyle =\frac{1}{\left( s-s_{0}\right) \left( s-s_{1}\right) \left( s-s_{2}\right) \left( s-s_{3}\right) \left( s-s_{4}\right) }$
   
  $\displaystyle =\frac{1}{\left( s-\left( -0.309\,02+0.951\,06\allowbreak i\right...
....587\,79\allowbreak i\right) \right) \left( s-\left( -1\right) \right) }\times$
  $\displaystyle \frac{1}{\left( s-\left( -0.809\,02-0.587\,79\allowbreak i\right) \right) \left( s-\left( -0.309\,02-0.951\,06\allowbreak i\right) \right) }%
$

4.2.1 Rescale the poles

Excess tolerance is in the stopband, hence from (6.3)

$\displaystyle A_{s}^{\prime}$ $\displaystyle =10\log\left( \Omega_{s}^{2N^{\prime}}\left( 10^{\frac{A_{p}}{10}}-1\right) +1\right)$
  $\displaystyle =10\log_{10}\left( 2^{2\left( 5\right) }\left( 10^{\frac{1}{10}%
}-1\right) +1\right) =24.\,\allowbreak251\text{ db}%
$

Hence new $ \Omega_{c}^{\prime}$ is found from (6.4)

$\displaystyle \Omega_{c}^{\prime}$ $\displaystyle =\frac{\Omega_{s}}{\left( 10^{\frac{A_{s}^{\prime}%
}{10}}-1\right) ^{\frac{1}{2N^{\prime}}}}$
   
  $\displaystyle =\frac{2}{\left( 10^{\frac{24.\,\allowbreak251}{10}}-1\right) ^{\frac {1}{2\left( 5\right) }}}=1.\,\allowbreak144\,7$

Hence the above $ H\left( s\right) $ becomes (using equation 7 as reference)

$\displaystyle H(s)$ $\displaystyle =\frac{1.\,\allowbreak144\,7^{5}}{\left( s-1.\,\allowbreak 144\,...
...right) \right) \left( s-1.\,\allowbreak 144\,7\left( -1\right) \right) }\times$
  $\displaystyle \frac{1}{\left( s-1.\,\allowbreak144\,7\left( -0.809\,02-0.587\,...
...\allowbreak 144\,7\left( -0.309\,02-0.951\,06\allowbreak i\right) \right) }%
$

4.2.2 Convert normalized low pass using frequency transformation

replace $ s$ by $ \frac{s}{2\pi f_{p}}$, hence $ H\left( s\right) $ becomes (using equation 8 as reference), and noting that $ 2\pi f_{p}=2\pi\left(
1000\right) =\allowbreak6283.\,\allowbreak2$

$\displaystyle H(s)$ $\displaystyle =\frac{\left( 1.\,\allowbreak144\,7\times6283.\,\allowbreak2\righ...
....\,\allowbreak2\left( -0.309\,02+0.951\,06\allowbreak i\right) \right) }\times$
  $\displaystyle \frac{1}{\left( s-1.\,\allowbreak144\,7\times6283.\,\allowbreak2\...
...1.\,\allowbreak144\,7\times6283.\,\allowbreak2\left( -1\right) \right) }\times$
  $\displaystyle \frac{1}{\left( s-1.\,\allowbreak144\,7\times6283.\,\allowbreak2\...
...283.\,\allowbreak2\left( -0.309\,02-0.951\,06\allowbreak i\right) \right) }%
$

Now multiply the complex conjugate terms with each others (to remove the complex terms), we obtain

$\displaystyle H\left( s\right) =\frac{7192.\,\allowbreak4^{5}}{\left(
s+7192.\...
...ak\right) \left( s^{2}%
+11638.s+5.\,\allowbreak173\,1\times10^{7}\right) }%
$

5 References

  1. ECE 408 lecture notes chapter 12, by Dr James S. Kang. Cal Poly pomona, California, USA.
  2. Mostafa Shiva, Electrical engineering department, California state university, Fullerton, Lecture notes, handout H.
  3. John Proakis, Dimitris Manolakis, digital signal processing, 3rd edition

me 2012-05-07