HOME

PDF (letter size)

Butterworth low pass analog filter design

Nasser M. Abbasi

July 10, 2010   Compiled on January 28, 2024 at 8:18pm

Contents

1 Introduction
2 Algorithm diagram
3 Design steps
3.1 backward transformation
3.2 Determine filter order N
3.3 Finding stables poles assuming Ωc=1
3.4 Rescaling the poles
3.5 Converting normalized low pass using frequency transformation
4 Example designs
4.1 Example 1
4.1.1 backward transformation
4.1.2 Determining filter order N
4.2 Finding stables poles assuming Ωc=1
4.2.1 Rescale the poles
4.2.2 Convert normalized low pass using frequency transformation
5 References

1 Introduction

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

fp The passband corner frequency in Hz
fs The stopband corner frequency in Hz
Ap The attenuation in db at Ωp
As The attenuation in db at Ωs

The specifications are given in db (the left diagram above) and not in magnitude (right diagram above).

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|H(jΩ)|=11+(ΩΩc)2N Where Ωc is the cutoff frequency. This is the frequency at which |H(jΩ)|=12=0.707.

The goal of the design is to determine N and Ωc from the specifications. Once N and Ωc are found, H(s) poles are found. Once the poles are found, then H(s) is now determined.

2 Algorithm diagram

The following diagram outlines the design algorithm

3 Design steps

3.1 backward transformation

Let Ωp=1 rad/sec, and let Ωs=fsfp rad/sec.

3.2 Determine filter order N

Ap=20log|H(jΩp)|=20log11+(ΩpΩc)2N=10log[1+(1Ωc)2N] Solving for Ωc from the above gives (1)Ωc=1(10Ap101)12N Using As gives As=20log|H(jΩs)|=20log11+(ΩsΩc)2N=10log[1+(ΩsΩc)2N] Solving for Ωs from the above results in (2)Ωs=Ωc(10As101)12N Substituting Ωc found in (1) into the above Ωs gives (3)Ωs=[(10As101)(10Ap101)]12N Solving for N in the above by taking logs gives (4)N=log[(10As101)(10Ap101)]2logΩs Since the order of filter 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 to make it clear that this is an updated N from the original N.

3.3 Finding stables poles assuming Ωc=1

Since Butterworth magnitude square of the transfer function is |H(s)|2=11+(sjΩc)2N Hence H(s) poles are found by setting the denominator of the above to zero. Setting Ωc=1 gives 1+(sj)2N=0(sj)2N=1(sj)2N=ej(π+2πk)     sj=ej(π+2πk2N)            k=0,1,2,2N1sk=j ej(π+2πk2N)sk= ejπ2ej(π+2πk2N)(5)sk= ej(π+2πk2N+π2)

Only the LHS poles are needed, which are located at k=0N1, because these are the stable poles.

Now that the poles are found, H(s) becomes (6)H(s)=1k=0N1ssk=1(ss0)(ss1)(ssN1)

3.4 Rescaling the poles

Either Ap or As have to be adjusted depending on if the excess tolerance is to be assigned to the passband or to the stop band and Ωc is calculated based on this.

If the excess tolerance is to be assigned to the passband, then (3) is solved for Ap and this new found value is called Ap (6.1)Ap=10log((10As101)Ωs2N+1) Also Ωc needs to be determined from (1). Calling this Ωc to reflect that this goes with the updated Ap and not the original Ap (6.2)Ωc=1(10Ap101)12N However, if the excess tolerance is to be assigned to the stopband, then (3) is solved for As and this new found value is called As(6.3)As=10log(Ωs2N(10Ap101)+1) Ωc is adjusted to Ωc.

From (2), and using the above new value of As gives (6.4)Ωc=Ωs(10As101)12N H(s) found above in (6) is now adjusted since that was found for Ωc=1 and now an updated Ωc is found. To do that s is replaced by sΩc, hence H(s) becomesH(s)=1(sΩcs0)(sΩcs1)(sΩcsN1)(7)=[Ωc](N1)(sΩcs0)(sΩcs1)(sΩcsN1)

The first part of the design is now complete. N,Ωc is found and adjusted Ap or As depending on the requirements for excess tolerance. All the parts needed are found to design H(s) by finding 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 Ωp=1 and Ωs=2πfs2πfp. The above H(s) is called the normalized transfer function. It is a low pass analog filter, which needs to be mapped to a low pass analog filter, but un-normalized based on the actual frequencies specified (Since the above was designed based on using Ωp=1).

Adjustment is now made to obtain H(s) for Ωp=2πfp and Ωs=2πfs.

To do this, s above is replaced by s2πfp. Equation (7) becomesH(s)=[Ωc](N1)(s2πfpΩcs0)(s2πfpΩcs1)(s2πfpΩcsN1)(8)=[Ωc×2πfp](N1)(s2πfpΩcs0)(s2πfpΩcs1)(s2πfpΩcsN1)

The zeros of H(s) are located at and there are N of them.

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

4 Example designs

4.1 Example 1

Given

fp=1000 hz, fs=2000 hz, Ap=1 db, As=20 db, and Excess tolerance at stopband, determine H(s)

4.1.1 backward transformation

Ωp=1 rad/secΩs=fsfp=2 rad/sec

4.1.2 Determining filter order N

From (4)N=log[(10As101)(10Ap101)]2logΩs=log10[(1020101)(101101)]2log102=4.2894

Hence N=5

4.2 Finding stables poles assuming Ωc=1

From (5), and since N=5sk= ei(π+2πk2N+π2)=ei(π+2πk2(5)+π2)

Find the poles

k sk
0 ei(π10+π2)=0.309+0.951i
1 ei(π+2π10+π2)=0.809+0.587i
2 ei(π+4π10+π2)=1.0
3 ei(π+6π10+π2)=0.8090.587i
4 ei(π+8π10+π2)=0.3090.951i

Hence from (6)H(s)=1(ss0)(ss1)(ss2)(ss3)(ss4)=1(s(0.30902+0.95106i))(s(0.809+0.587i))(s(1))×1(s(0.8090.587i))(s(0.3090.951i))

4.2.1 Rescale the poles

Excess tolerance is in the stopband, hence from (6.3)As=10log(Ωs2N(10Ap101)+1)=10log10(22(5)(101101)+1)=24.251 db

Hence new Ωc is found from (6.4) Ωc=Ωs(10As101)12N=2(1024.251101)12(5)=1.144

Hence the above H(s) becomes (using equation 7 as reference)H(s)=1.14475(s1.144(0.309+0.951i))(s1144(0.809+0.587i))(s1.144(1))×1(s1.144(0.8090.587i))(s1.1447(0.3090.951i))

4.2.2 Convert normalized low pass using frequency transformation

replace s by s2πfp, hence H(s) becomes (using equation 8 as reference), and noting that 2πfp=2π(1000)=6283.2H(s)=(1.144×6283.2)5(s1.144×6283.2(0.309+0.951i))×1(s1.144×6283.2(0.809+0.587i))(s1.144×6283.2(1))×1(s1.144×6283.2(0.8090.587i))(s1.144×6283.2(0.3090.951i))

Now multiplying the complex conjugate terms with each others (to remove the complex terms) gives H(s)=7192.45(s+7192.2)(s2+4445.2s+5.173×107)(s2+11638.s+5.173×107)

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