This book is a very concise introduction to recursive digital filters. The goal is to get the reader to the point where he or she can understand and use these filters as quickly as possible. To accomplish this we have kept the amount of mathematical background material to a minimum and have included many examples. But make no mistake, this is not a book for dummies or complete idiots. Some degree of mathematical sophistication is required. If you have never used complex numbers and do not know what Euler’s identity is, then this book is not for you. If you have a basic physical science mathematics background, then you should have no problem with this book.

We start with a short introduction to the minimum mathematics required to describe, use, and design recursive digital filters. This includes a description of the z-transform, filter system functions, and the frequency response. This is followed by examples of the simplest possible low pass, high pass, band pass, and band stop filters. There are examples showing how to use all these filters. A section on band stop filter banks is also included.

The design portion of the book covers impulse invariance and bilinear transform design. We give a minimum theoretical description of these methods and plenty of examples. For the bilinear transform method we show how to turn analog low pass Butterworth filters into digital low pass, high pass, band pass, and band stop filters. Being able to convert analog filters to digital is useful because analog filter design is a more mature and well understood subject.

Next we take an in depth look at Butterworth and Chebyshev filters, showing how to design low pass, high pass, band pass, and band stop versions of these filters. The section on Chebyshev filters also shows how to create a Chebyshev Butterworth filter hybrid. This is followed by a detailed example showing how to use a Butterworth and Chebyshev band pass filter.

A rudimentary introduction to elliptic filters comes next. The final section shows how digital filters can be implemented in different ways, considering efficiency and numerical stability.

The filter software used in this book is written by the authors, and is available free on the book’s website: The programs are written in the C programming language, and will have to be compiled before you can use them. You do not have to know C to use the programs or understand the contents of the book. There is a C language compiler for every major operating system. A good one that is also free is gcc. Some of these programs have also been converted to the awk scripting language.

May your filter results be beautiful.

Stefan Hollos and Richard Hollos
Exstrom Laboratories LLC
Longmont, Colorado
Apr 24, 2014.
Revised Dec 1, 2014

Return to Table of Contents