Hello DSP experts; I took an introduction to digital filters course at cal state univ and learned something about design of IIR digital filters (was a hard course!). I used the textbook we had and the instructor notes to write this small Mathematica demonstration to design a low pass IIR digital filter using Butterworth method. I used Mathematica since I wanted to display H(s) and H(z) in symbolic form. If someone would like to try it and to let me know if they spot an bug or something I might not be doing right. You can either email me or post here. You need the free mathematica player to run this demo. The player can be downloaded from Wolfram research web site. the link is at the top of my page where I have the demo (pls see the bottom of this email). This is an educational demo. This is below what I wrote in the demo: --------------- "This demonstration implements design of an 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 filter transfer function H(s) which is then mapped to digital filter transfer function H(z). The transformation of H(s) to H(z) is performed using either bilinear transformation or impulse invariance. A number of plots are made available to examine different aspects of the final design such as the locations of poles and zeros, the response of the filter to common signals and the display of H(s) and H(z) in symbolic format. Due to space limitation the design is limited to a filter of order 10. The design can be made 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." ------------- I only do Butterworth low pass design. And no bandpass, high pass, etc... but these can be done easily once the low pass digital filter is done using frequency transformation formulas, but will not do it now. No space left on the UI :) I used basic textbook method to do the design. I wrote a seprate report on IIR design here before starting coding: http://12000.org/my_notes/IIR_digital_filter_design/index.htm I still need to do some cosmetic minor changes to the UI and more testing, but I think the functionality is all done. I run few cases, compared my output to that generated by Matlab FDAtool, and I get similar output. Also run some examples from the textbook, and I get same H(s) and H(z). here is the link to my Mathematica demo page http://12000.org/my_notes/mma_demos/KERNEL/index.htm It is item #12 on the table shown there. Thanks for trying it if you do. --Nasser
would you like to try my IIR low pass digital filter design program?
Started by ●September 18, 2010