Finite Impulse Response (FIR) Digital Filter

Introduction

To provide a brief introduction to the applet only, without any theory, would not be in the spirit of what the applet is designed to achieve. The theory then, is to be found in a number of different hypertexed documents. The first document is a tutorial on digital filters with an emphasis on finite impulse response filters but which includes infinite impulse response (IIR) filters. This tutorial is fairly large and runs into 40 pages. The second document concerns the subject of the time response derivation of the different types of filters, that is, the low pass, high pass, band pass and band stop filters. As window functions play an important role in the "windowed-sinc" type of FIR, this applet being of this type, there is a document describing the parameters of the Rectangular, Bartlett, Hamming, Hanning and Blackman windows that are used in this applet to smooth the effects of truncation and provide a sharper rolloff of the frequency response at the expense of the increase in the filter order or the number of coefficients used in the filter implementation. In the same document is a section explaining how the filter in this applet is made causal . There is also a document on the discrete Fourier transform as it is used in the programme. Finally, there is also a document that briefly explains how the Java applet has been programmed

What this applet will provide?

For a selected filter type, transition bandwidth, sampling frequency, window type and cut off frequency (high pass or low pass) or frequencies (band pass or band stop), this applet will provide the following;
  1. The normalized impulse response coefficients for the implementation of a FIR digital filter. These coefficients may be copied from the text field region just above the "Summary sheet." Also, included is a summary of the parameters used.
  2. The impulse response of the filter.
  3. The frequency response of the filter together with its ideal response mask.
  4. A summary sheet showing all inputs and input variations.
What needs to be done?
In order to have the applet provide sensible information, the following is required to be completed;
Note: It is important that you press "Enter" on the keyboard after you enter each entry. This ensures that the value is properly entered.
  1. Select the filter type.
  2. Enter the transition bandwidth.
  3. Enter the sampling frequency.
  4. Select the window type.
  5. Enter the cut off frequency or frequencies.
  6. CLICK ON the DESIGN button.
  7. It is worthwhile noting after this step, the value of the filter order from the "Summary sheet."  If the filter order is very large, then it will take some time for the programme to perform the calculations. 
  8. Click on Impulse Response button to see the designed impulse response.
  9. Click on the Frequency response to see the designed frequency response and compare this response against the ideal response for the different windowing types. The windowing type mask is coloured orange and will automatically adjust to the set cutoff frequencies, transition bandwidth and the attenuation for the chosen windowing type. The transition bandwidth used may be slightly different to that which you have entered. The summary sheet will show you the value the programme has used.
  10. You may adjust the graph in the vertical direction using the "Y axis Scale" scrollbar and change the frequency axis from logarithmic to linear by using the radio buttons..
  11. You may select with your mouse and then copy all of the filter coefficients calculated and presented in the text area. As an applet is not permitted to write to the hard disk, this method allows you to copy and write the information to your hard disk.

For your comments and suggestions, mail the author: A.A.R.Townsend

Return to Applets page.