Infinite Impulse Response (IIR) Digital Low-Pass Filter Design by Butterworth Method

This Demonstration shows the implementation of a design for an infinite impulse response (IIR) low-pass digital filter. The input consists of the design specifications for the desired Butterworh analog filter. These specifications are used to determine the Butterworth (analog) filter transfer function , which is then mapped to the digital filter transfer function . The transformation of to can be made using a bilinear transformation or impulse invariance. A number of plots are made available to examine different aspects of the final design result, such as the locations of the poles and zeros, the response of the filter to common test input signals, and the display of and in symbolic form. Due to space limitations, the design is limited to a filter of order 10. You can get the design by asking for a minimum order filter or by specifying the filter order required. Both normalized units and hertz units can be used in the frequency specification.


  • [Snapshot]
  • [Snapshot]
  • [Snapshot]
  • [Snapshot]
  • [Snapshot]
  • [Snapshot]
  • [Snapshot]
  • [Snapshot]
  • [Snapshot]


Carry out the design by inputting the filter specifications using the sliders. There are five filter specification parameters:
is the sampling frequency;
is the passband end frequency;
is the start of stopband frequency;
is the attenuation in db at ;
is the attenuation in db at .
The plot at the top-left helps you see the locations of these parameters. These are standard digital filter design parameters that can be found in a number of digital signal processing textbooks.
You can do the design using normalized units (0 to 1) or in Hz. If you select normalized units, then 1 corresponds to the Nyquist frequency and and will be between 0 and 1. Next select the analog-to-digital filter mapping method, which can be bilinear or impulse invariance. Next select the order of the filter. You can select a minimum order to be designed or specify the order yourself using the slider. The design supports a filter order up to 10. Finally, using the pulldown menu, select the plot type.
Some inputs will become disabled or enabled depending on what you select for the filter order and for the units. If you select a specific filter order, then only will be enabled, as is not required in this case; attenuation input is also disabled in this case, as attenuation will be fixed at . If you select normalized units, then the slider is disabled, as Nyquist is fixed at 1.
The design status is displayed below the main display window. Two possible design errors are detected and are displayed in red text. The first occurs if the filter order calculated is over 10 (when you select minimum filter order). In this case you need to change the design parameters until the filter order becomes less than 10. This error can occur if you select much larger than . The second error occurs if the gain is found to be too small. This can occur if you select and that are too close to each other.
[1] A. V. Oppenheim and R. W. Schafer, Digital Signal Processing, Englewood Cliffs, NJ: Prentice-Hall, 1975, Chapter 5.
    • Share:

Embed Interactive Demonstration New!

Just copy and paste this snippet of JavaScript code into your website or blog to put the live Demonstration on your site. More details »

Files require Wolfram CDF Player or Mathematica.

Mathematica »
The #1 tool for creating Demonstrations
and anything technical.
Wolfram|Alpha »
Explore anything with the first
computational knowledge engine.
MathWorld »
The web's most extensive
mathematics resource.
Course Assistant Apps »
An app for every course—
right in the palm of your hand.
Wolfram Blog »
Read our views on math,
science, and technology.
Computable Document Format »
The format that makes Demonstrations
(and any information) easy to share and
interact with.
STEM Initiative »
Programs & resources for
educators, schools & students.
Computerbasedmath.org »
Join the initiative for modernizing
math education.
Step-by-Step Solutions »
Walk through homework problems one step at a time, with hints to help along the way.
Wolfram Problem Generator »
Unlimited random practice problems and answers with built-in step-by-step solutions. Practice online or make a printable study sheet.
Wolfram Language »
Knowledge-based programming for everyone.
Powered by Wolfram Mathematica © 2018 Wolfram Demonstrations Project & Contributors  |  Terms of Use  |  Privacy Policy  |  RSS Give us your feedback
Note: To run this Demonstration you need Mathematica 7+ or the free Mathematica Player 7EX
Download or upgrade to Mathematica Player 7EX
I already have Mathematica Player or Mathematica 7+