HOME
PDF (letter size)
PDF (legal size)

## Butterworth low pass analog ﬁlter design

July 10, 2010   Compiled on May 23, 2020 at 4:39am

### 1 Introduction

This is a detailed review of low pass Butterworth analog ﬁlter design. The goal is to generate Butterworth transfer function $$H(s)$$ from frequency speciﬁcations. The following are the four speciﬁcations of the design

 $$f_{p}$$ The passband corner frequency in Hz $$f_{s}$$ The stopband corner frequency in Hz $$A_{p}$$ The attenuation in db at $$\Omega _{p}$$ $$A_{s}$$ The attenuation in db at $$\Omega _{s}$$ The speciﬁcations are given in db (the left diagram above) and not in magnitude (right diagram above).

The speciﬁcations are given with reference to the transfer function magnitude. The phase is not taken into account in the speciﬁcations. Butterworth analog transfer function transfer function magnitude is given by$\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 cutoﬀ frequency. This is the frequency at which $$\left \vert H\left ( j\Omega \right ) \right \vert =\frac{1}{\sqrt{2}}=0.707.$$

The goal of the design is to determine $$N$$ and $$\Omega _{c}$$ from the speciﬁcations. Once $$N$$ and $$\Omega _{c}$$ are found, $$H(s)$$ poles are found. Once the poles are found, then $$H\left ( s\right )$$ is now determined.

### 2 Algorithm diagram

The following diagram outlines the design algorithm ### 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 ﬁlter order $$N$$

$A_{p}=-20\log \left \vert H\left ( j\Omega _{p}\right ) \right \vert =-20\log \frac{1}{\sqrt{1+\left ( \frac{\Omega _{p}}{\Omega _{c}}\right ) ^{2N}}}=10\log \left [ 1+\left ( \frac{1}{\Omega _{c}}\right ) ^{2N}\right ]$ Solving for $$\Omega _{c}$$ from the above gives \begin{equation} \Omega _{c}=\frac{1}{\left ( 10^{\frac{A_{p}}{10}}-1\right ) ^{\frac{1}{2N}}} \tag{1} \end{equation} Using $$A_{s}$$ gives $A_{s}=-20\log \left \vert H\left ( j\Omega _{s}\right ) \right \vert =-20\log \frac{1}{\sqrt{1+\left ( \frac{\Omega _{s}}{\Omega _{c}}\right ) ^{2N}}}=10\log \left [ 1+\left ( \frac{\Omega _{s}}{\Omega _{c}}\right ) ^{2N}\right ]$ Solving for $$\Omega _{s}$$ from the above results in \begin{equation} \Omega _{s}=\Omega _{c}\left ( 10^{\frac{A_{s}}{10}}-1\right ) ^{\frac{1}{2N}} \tag{2} \end{equation} Substituting $$\Omega _{c}$$ found in (1) into the above $$\Omega _{s}$$ gives \begin{equation} \Omega _{s}=\left [ \frac{\left ( 10^{\frac{A_{s}}{10}}-1\right ) }{\left ( 10^{\frac{A_{p}}{10}}-1\right ) }\right ] ^{\frac{1}{2N}} \tag{3} \end{equation} Solving for $$N$$ in the above by taking logs gives \begin{equation} 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}} \tag{4} \end{equation} Since the order of ﬁlter is an integer, the above value is rounded upwards to the next integer if it is not an integer. Let this new $$N$$ be $$N^{\prime }$$ to make it clear that this is an updated $$N$$ from the original $$N$$.

#### 3.3 Finding stables poles assuming $$\Omega _{c}=1$$

Since Butterworth magnitude square of the transfer function is $\left \vert H\left ( s\right ) \right \vert ^{2}=\frac{1}{1+\left ( \frac{s}{j\Omega _{c}^{\prime }}\right ) ^{2N^{\prime }}}$ Hence $$H(s)$$ poles are found by setting the denominator of the above to zero. Setting $$\Omega _{c}=1$$ gives \begin{align} 1+\left ( \frac{s}{j}\right ) ^{2N^{\prime }} & =0\nonumber \\ \left ( \frac{s}{j}\right ) ^{2N^{\prime }} & =-1\nonumber \\ \left ( \frac{s}{j}\right ) ^{2N^{\prime }} & =e^{j\left ( \pi +2\pi k\right ) }\ \ \ \ \ \nonumber \\ \frac{s}{j} & =e^{j\left ( \frac{\pi +2\pi k}{2N^{\prime }}\right ) \ \ \ \ \ \ \ \ \ \ \ \ }k=0,1,2,\cdots 2N^{\prime }-1\nonumber \\ s_{k} & =j\ e^{j\left ( \frac{\pi +2\pi k}{2N^{\prime }}\right ) }\nonumber \\ s_{k} & =\ e^{j\frac{\pi }{2}}e^{j\left ( \frac{\pi +2\pi k}{2N^{\prime }}\right ) }\nonumber \\ s_{k} & =\ e^{j\left ( \frac{\pi +2\pi k}{2N^{\prime }}+\frac{\pi }{2}\right ) } \tag{5} \end{align}

Only the LHS poles are needed, which are located at $$k=0\cdots N^{\prime }-1$$, because these are the stable poles.

Now that the poles are found, $$H(s)$$ becomes \begin{equation} H(s)=\frac{1}{{\prod \limits _{k=0}^{N^{\prime }-1}}s-s_{k}}=\frac{1}{\left ( s-s_{0}\right ) \left ( s-s_{1}\right ) \cdots \left ( s-s_{N^{\prime }-1}\right ) } \tag{6} \end{equation}

#### 3.4 Rescaling the poles

Either $$A_{p}$$ or $$A_{s}$$ have to be adjusted depending on if the excess tolerance is to be assigned to the passband or to the stop band and $$\Omega _{c}$$ is calculated based on this.

If the excess tolerance is to be assigned to the passband, then (3) is solved for $$A_{p}$$ and this new found value is called $$A_{p}^{\prime }$$ \begin{equation} A_{p}^{\prime }=10\log \left ( \frac{\left ( 10^{\frac{A_{s}}{10}}-1\right ) }{\Omega _{s}^{2N^{\prime }}}+1\right ) \tag{6.1} \end{equation} Also $$\Omega _{c}$$ needs to be determined from (1). Calling this $$\Omega _{c}^{\prime }$$ to reﬂect that this goes with the updated $$A_{p}^{\prime }$$ and not the original $$A_{p}$$ \begin{equation} \Omega _{c}^{\prime }=\frac{1}{\left ( 10^{\frac{A_{p}^{\prime }}{10}}-1\right ) ^{\frac{1}{2N^{\prime }}}} \tag{6.2} \end{equation} However, if the excess tolerance is to be assigned to the stopband, then (3) is solved for $$A_{s}$$ and this new found value is called $$A_{s}^{\prime }$$\begin{equation} A_{s}^{\prime }=10\log \left ( \Omega _{s}^{2N^{\prime }}\left ( 10^{\frac{A_{p}}{10}}-1\right ) +1\right ) \tag{6.3} \end{equation} $$\Omega _{c}$$ is adjusted to $$\Omega _{c}^{\prime }$$.

From (2), and using the above new value of $$A_{s}^{\prime }$$ gives \begin{equation} \Omega _{c}^{\prime }=\frac{\Omega _{s}}{\left ( 10^{\frac{A_{s}^{\prime }}{10}}-1\right ) ^{\frac{1}{2N^{\prime }}}} \tag{6.4} \end{equation} $$H\left ( s\right )$$ found above in (6) is now adjusted since that was found for $$\Omega _{c}=1$$ and now an updated $$\Omega _{c}^{\prime }$$ is found. To do that $$s$$ is replaced by $$\frac{s}{\Omega _{c}^{\prime }}$$, hence $$H(s)$$ becomes\begin{align} H(s) & =\frac{1}{\left ( \frac{s}{\Omega _{c}^{\prime }}-s_{0}\right ) \left ( \frac{s}{\Omega _{c}^{\prime }}-s_{1}\right ) \cdots \left ( \frac{s}{\Omega _{c}^{\prime }}-s_{N^{\prime }-1}\right ) }\nonumber \\ & =\frac{\left [ \Omega _{c}^{\prime }\right ] ^{\left ( N^{\prime }-1\right ) }}{\left ( s-\Omega _{c}^{\prime }s_{0}\right ) \left ( s-\Omega _{c}^{\prime }s_{1}\right ) \cdots \left ( s-\Omega _{c}^{\prime }s_{N^{\prime }-1}\right ) } \tag{7} \end{align}

The ﬁrst part of the design is now complete. $$N^{\prime },\Omega _{c}^{\prime }$$ is found and adjusted $$A_{p}$$ or $$A_{s}$$ depending on the requirements for excess tolerance. All the parts needed are found to design $$H\left ( s\right )$$ by ﬁnding its poles. Adjusted values must be used from now on.

#### 3.5 Converting normalized low pass using frequency transformation

The above $$H(s)$$ found in (7) was designed for frequency $$\Omega _{p}=1$$ and $$\Omega _{s}=\frac{2\pi f_{s}}{2\pi f_{p}}$$. The above $$H\left ( s\right )$$ is called the normalized transfer function. It is a low pass analog ﬁlter, which needs to be mapped to a low pass analog ﬁlter, but un-normalized based on the actual frequencies speciﬁed (Since the above was designed based on using $$\Omega _{p}=1$$).

Adjustment is now made to obtain $$H(s)$$ for $$\Omega _{p}=2\pi f_{p}$$ and $$\Omega _{s}=2\pi f_{s}$$.

To do this, $$s$$ above is replaced by $$\frac{s}{2\pi f_{p}}$$. Equation (7) becomes\begin{align} H\left ( s\right ) & =\frac{\left [ \Omega _{c}^{\prime }\right ] ^{\left ( N^{\prime }-1\right ) }}{\left ( \frac{s}{2\pi f_{p}}-\Omega _{c}^{\prime }s_{0}\right ) \left ( \frac{s}{2\pi f_{p}}-\Omega _{c}^{\prime }s_{1}\right ) \cdots \left ( \frac{s}{2\pi f_{p}}-\Omega _{c}^{\prime }s_{N^{\prime }-1}\right ) }\nonumber \\ & \nonumber \\ & =\frac{\left [ \Omega _{c}^{\prime }\times 2\pi f_{p}\right ] ^{\left ( N^{\prime }-1\right ) }}{\left ( s-2\pi f_{p}\Omega _{c}^{\prime }s_{0}\right ) \left ( s-2\pi f_{p}\Omega _{c}^{\prime }s_{1}\right ) \cdots \left ( s-2\pi f_{p}\Omega _{c}^{\prime }s_{N^{\prime }-1}\right ) } \tag{8} \end{align}

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

When simplifying the denominator above, the complex conjugate terms are multiplied with each others to obtain real coeﬃcients.

### 4 Example designs

#### 4.1 Example 1

Given

$$f_{p}=1000$$ hz, $$f_{s}=2000$$ hz, $$A_{p}=1$$ db, $$A_{s}=20$$ db, and Excess tolerance at stopband, determine $$H(s)$$

##### 4.1.1 backward transformation

\begin{align*} \Omega _{p} & =1\text{ rad/sec}\\ \Omega _{s} & =\frac{f_{s}}{f_{p}}=2\text{ rad/sec} \end{align*}

##### 4.1.2 Determining ﬁlter order $$N$$

From (4)\begin{align*} 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}}\\ & \\ & =\frac{\log _{10}\left [ \frac{\left ( 10^{\frac{20}{10}}-1\right ) }{\left ( 10^{\frac{1}{10}}-1\right ) }\right ] }{2\log _{10}2}=4.289\,4 \end{align*}

Hence $N^{\prime }=5$

#### 4.2 Finding stables poles assuming $$\Omega _{c}=1$$

From (5), and since $$N^{\prime }=5$$\begin{align*} s_{k} & =\ e^{i\left ( \frac{\pi +2\pi k}{2N^{\prime }}+\frac{\pi }{2}\right ) }\\ & =e^{i\left ( \frac{\pi +2\pi k}{2\left ( 5\right ) }+\frac{\pi }{2}\right ) } \end{align*}

Find the poles

 $$k$$ $$s_{k}$$ $$0$$ $$e^{i\left ( \frac{\pi }{10}+\frac{\pi }{2}\right ) }=-0.309+0.951i$$ $$1$$ $$e^{i\left ( \frac{\pi +2\pi }{10}+\frac{\pi }{2}\right ) }=-0.809+0.587i$$ $$2$$ $$e^{i\left ( \frac{\pi +4\pi }{10}+\frac{\pi }{2}\right ) }=-1.0$$ $$3$$ $$e^{i\left ( \frac{\pi +6\pi }{10}+\frac{\pi }{2}\right ) }=-0.809-0.587i$$ $$4$$ $$e^{i\left ( \frac{\pi +8\pi }{10}+\frac{\pi }{2}\right ) }=-0.309-0.951i$$

Hence from (6)\begin{align*} H(s) & =\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 ) }\\ & \\ & =\frac{1}{\left ( s-\left ( -0.309\,02+0.951\,06i\right ) \right ) \left ( s-\left ( -0.809+0.587i\right ) \right ) \left ( s-\left ( -1\right ) \right ) }\times \\ & \frac{1}{\left ( s-\left ( -0.809-0.587i\right ) \right ) \left ( s-\left ( -0.309-0.951i\right ) \right ) } \end{align*}

##### 4.2.1 Rescale the poles

Excess tolerance is in the stopband, hence from (6.3)\begin{align*} A_{s}^{\prime } & =10\log \left ( \Omega _{s}^{2N^{\prime }}\left ( 10^{\frac{A_{p}}{10}}-1\right ) +1\right ) \\ & =10\log _{10}\left ( 2^{2\left ( 5\right ) }\left ( 10^{\frac{1}{10}}-1\right ) +1\right ) =24.251\text{ db} \end{align*}

Hence new $$\Omega _{c}^{\prime }$$ is found from (6.4) \begin{align*} \Omega _{c}^{\prime } & =\frac{\Omega _{s}}{\left ( 10^{\frac{A_{s}^{\prime }}{10}}-1\right ) ^{\frac{1}{2N^{\prime }}}}\\ & \\ & =\frac{2}{\left ( 10^{\frac{24.251}{10}}-1\right ) ^{\frac{1}{2\left ( 5\right ) }}}=1.144 \end{align*}

Hence the above $$H\left ( s\right )$$ becomes (using equation 7 as reference)\begin{align*} H(s) & =\frac{1.1447^{5}}{\left ( s-1.144\left ( -0.309+0.951\, i\right ) \right ) \left ( s-1144\left ( -0.809+0.587 \, i\right ) \right ) \left ( s-1.144\left ( -1\right ) \right ) }\times \\ & \frac{1}{\left ( s-1.144\left ( -0.809-0.587 i\right ) \right ) \left ( s-1.1447\left ( -0.309-0.951\, i\right ) \right ) } \end{align*}

##### 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 ) =\allowbreak 6283.\,\allowbreak 2$$\begin{align*} H(s) & =\frac{\left ( 1.144\times 6283.2\right ) ^{5}}{\left ( s-1.144\times 6283.2\left ( -0.309+0.951 i\right ) \right ) }\times \\ & \frac{1}{\left ( s-1.144\times 6283.2\left ( -0.809+0.587 i\right ) \right ) \left ( s-1.144\times 6283.2\left ( -1\right ) \right ) }\times \\ & \frac{1}{\left ( s-1.144\times 6283.2\left ( -0.809-0.587 i\right ) \right ) \left ( s-1.144\times 6283.2\left ( -0.309-0.951i\right ) \right ) } \end{align*}

Now multiplying the complex conjugate terms with each others (to remove the complex terms) gives $H\left ( s\right ) =\frac{7192.4^{5}}{\left ( s+7192.2\right ) \left ( s^{2}+4445.2s+5.173\times 10^{7}\right ) \left ( s^{2}+11638.s+5.173\times 10^{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