As discussed in the post on ideal filter types, the Butterworth filter is a filter approximation technique that is also known as the maximally flat filter technique. This filter gives a very flat frequency response in the Pass Band, which ensures that there are no ripples present. Hence, as the name suggests, the maximal flat response you get with the Butterworth Filter cannot be matched by the Chebyshev, Inverse Chebyshev, or Bessel Filters. Though it may not be as effective as the other filters in giving a filter response with a steep transition band, it has a better tolerance to overshoot or ringing compared to the Chebyshev filters. It also allows for minimum attenuation in the Stop Band.
Hence, The Butterworth filter’s applications include:
- Anti-Aliasing Filter for Data Converter applications due to its maximally flat nature.
- High-quality audio applications as they ensure the frequencies that are supposed to pass do so entirely owing to the flat response, ensuring we hear everything we are supposed to from audio samples.
- In motion analysis, digital Butterworth filters are used as they have close to zero ringing in the passband, which gives a clear video for precise analysis.
In this post, we will study the steps for Butterworth Filter approximation and design analog and digital Butterworth filters using the impulse invariance and bilinear transform techniques to design IIR filters.
Contents
Introduction to Butterworth Filters
Let us examine a Low Pass Butterworth Filter. The amplitude response of a low-pass Butterworth filter is:
where is the filter’s cutoff frequency and n is the order of the filter.
The graph you see above represents the magnitude of the frequency response of the filter. From the graph, we can infer that at low frequencies, the gain is very close to 1. But as the frequency increases, the gain goes off and starts rejecting higher frequency components as general low pass filters do. The colors that denote the different values for n are signifying the filter order. Observe that when the filter order is low, the graph rolls off smoothly. However, when the filter order is high, it almost looks like a step function. Hence, we can conclude that to get a smaller transition band, we have to increase the order of the filter.
To simplify the process of designing the Butterworth filter, we are going to be observing a normalized filter first. Then we will be scaling the values to our desired cutoff.
Normalized Butterworth Filter
A normalised filter is one that has cutoff frequency equal to 1 ()
Hence, the amplitude response will become
The transfer function of a filter is given by H(s) which is the impulse response of a filter in the s-domain where
The frequency response of a filter can be determined by evaluating using the imaginary axis when and
The inverse is also possible, given , you can evaluate H(s) by substituting
Therefore, we can infer
The 2n denotes the poles of which occur when
Putting it in terms of s we get, —(1)
-1 can also be represented in terms of an exponential function as shown
, where for every integer k,So, substituting for the -1 in equation(1)
Taking 1/2n root on each side,
for k=1, 2, 3,…,2n
As you can see from the image above, depending on the value of n the number of poles on each side of the plane will correspond. For example, if N=4, there are four poles in the left-hand plane which correspond to Hn(s), which suggests a causal and stable filter. The four poles on the right-hand plane correspond to the conjugate. Therefore, the number of poles on each side depends on n.
The transfer function for a Normalized Butterworth filter is
where you obtain the nth order Butterworth polynomial.
can be computed by working it out or using a Butterworth Lookup Table, we will look into this in detail while solving the problems.Scaling Normalized Filter
Now, we know the transfer function for a normalized filter. What if we want a cutoff frequency other than unity?
Depending on the type of filter we would be designing, we would replacing s by the respective transformations shown below to find H(s)
Type of transformation | Transformation(Replace s by the following) |
Low Pass | |
High Pass | |
Band Pass | |
Band Stop |
where is the cutoff frequency
is the lower band edge frequency is the higher band edge frequencyWe also need to have specifications of the gain definitions, there are specifically four values that we have to define which can be obtained from the graph below.
Here
- is the Pass band gain at Pass band frequency
- is the Stop band gain at Stop band frequency
From these filter specifications, we can determine the order of the filter. The gain is usually represented in dB.
At frequency ,
the gain of the filter would be,
Hence, Passband Gain and Stopband Gain can be determined
=>
you can also determine the cutoff frequency this way
=>
you can also determine the cutoff frequency this way
Dividing the Stopband gain by the Passband gain,
Rearranging the equation in terms of n so that we can identify the filter order,
Example Problem on Butterworth Filter
Design a Butterworth filter with the following specifications
Also, find the filter’s transfer function.
substituting the particular values
n=3.142
When you get a decimal number always round up, as this will give a better roll off than rounding down. We will discuss more about this further down the road.
Now, with the filter order and the filter requirements we can identify the cutoff frequency
We will use both the passband values and stopband values to carry out this calculation
Now, why are there two different values for the same cutoff frequency? Well, we did round off the filter order number for easier design purposes, that’s why!
Let us choose to match up with the passband cutoff frequency and carry on calculating the transfer function taking { \omega }_{ C }=20.01
Next up, we have to design the normalized function before moving on to scaling.
You can either look it up on the Butterworth filter table or you can compute the H(S) using the equation below
where
but why do all that calculating when you can just copy the numbers from the table. (Don’t worry I’ll show you how to do it in the preceding examples)
So, since N=4 in this case,
Therefore, the coefficients would be a1=2.6131, a2=3.4142, a3=2.6131, a4=1.0000
Putting these coefficients into the normalized transfer function
Now, we are going to scale the normalized function to obtain the actual transfer function,
We’ve got to replace s with s/
Hence, the final transfer function is
According to the stopband, the attenuation should be at -25dB, which is the cutoff limit for this filter. Looking at the red curve which depicts the frequency response of the filter if we choose to go with the stopband cutoff frequency, it touches -25dB which is well within the limit. Over attenuation is totally fine too, as long as it does not under attenuate which will allow signals beyond the frequency range to enter. Over attenuation(when the attenuation is less than -25db) will not lead to this problem, so over attenuation and exact attenuation are a thumbs up for your Low Pass Filter. Hence, the blue curve which depicts the frequency response if we choose to go with the passband cutoff frequency over attenuates.
I know the question popping up in your mind right now. If the red curve gives exact attenuation, why not just go with the stopband cutoff frequency?
The problem is with the transition band. At 20 rad/s, the graph should be down by 3dB already but the red curve hardly dipped, it only came down by 1 dB. This is not advisable for the Low Pass Filter. So, the only thing you have to keep in mind is that when choosing the cutoff frequency to scale your transfer function equation, go with the passband cutoff frequency.
Solving Butterworth Filter Transfer Function with Impulse Invariance technique
The Impulse Invariance method does a good job in designing Low Pass Filters. It preserves the order and stability of the analog filter well. However, they cannot be used for High Pass Filters as they are not band limited.
Let us look at the steps involved:
Step 1. Find out the filter specifications
is the Pass band gainPass band frequency is the Stop band gain
Stop band frequency
Step 2. Find out the order of the filter
Step 3. Now, identify the Normalised transfer function,
where
Step 4. Now, we have to find out the actual transfer function
Step 5. Now this is the step that determines what method you are using,
we can use a table to do the digital transformation
Type of Transformation | Transformation(Replace s by) |
How about an example to clear things up?
Solved Example
Butterworth IIR Low Pass Filter using Impulse Invariant Transformation, T=1 sec
Solution:
1. =0.707[/latex] =0.3π[/latex] =0.2[/latex] =0.75π[/latex] = =0.3π/1=o.3×3.14=0.9425[/latex] = =0.75π/1=2.35624[/latex]
2.Order of the filter
n=1.7339
So rounding this up, our filter order is 2.
3. Next up, according to the steps, we have to find out the normalized function.
where
k=N/2=2/2=1
Therefore,
4. Now, for the actual transfer function
After finding out the cutoff frequency of course,
Ok so now we have the cutoff frequency and we can do the substitution now,
Simplifying this we will obtain the transfer function using impulse invariance method
To perform the digital transform, we need to make sure it is in a form that can be transformed to Z. So we need to make a few changes, starting with completing the square.
5. Doesn’t this equation look similar to
So, we will be transforming the equation to
Solving Butterworth Filter Transfer Function with Bilinear Transformation technique
Bilinear Transformation is useful when the gains of your filter are constant over certain bands of frequency, such as in Low Pass Filters, High Pass Filters, and Band Pass Filters. The BLT method helps to avoid aliasing of the frequency response that you may encounter while using the Impulse Invariance method to obtain your filter values by mapping one-to-one from the s-plane to the z-plane. Hence, using this method lowers the sampling rate required significantly compared to the IIR method.
This technique involves all the steps in the previous section except the last step and a small change in the second step.
Let us see how with another one of those examples, that’s going to make understanding all this complex stuff a bit easier.
Problem
Design a Butterworth digital IIR highpass filter using Bilinear Transformation by taking T=0.1 second, to satisfy the following specifications.
Solution:
1. For a High Pass Filter
=0.6[/latex] =0.7π[/latex] =0.1[/latex] =0.35π[/latex]For a Low Pass Filter
=0.6 =0.35π[/latex] =0.1[/latex] =0.7π[/latex]2. Order of the filter
n=1.726
Therefore, the order of the filter will be 2.
3. Now, for the normalized transfer function
where
k=N/2=2/2=1
4. Time for the actual transfer function now and we need the cutoff frequency again
5. This is the little twist that I warned y’all about at the beginning, the last step.
So, for this step, we have to replace
Using the Bilinear Transformation, the transfer function will be
simplifying this very complicated equation, we get
which gives us the transfer function of the High Pass Filter in the ‘z’ domain.
Sources: 1, 2, and 3. The second video is in English (created by Adam Panagos and the other two are in Tamil).