Finite impulse response (FIR) filter design applet

Use the following applet to design finite impulse response filters for discrete digital signals. Instructions are provided below.

We may revisit the applet in the future
April 24, 2018


  • Use the first drop-down box to select the type of filter that you want to use: low pass, high pass, band pass, or band stop.
  • Specify the sampling frequency of the signal. Any sampling frequency between 2 KHz and 100 KHz is allowed.
  • Specify the filter length, which should usually be an odd number.
  • Specify the cutoff / transition frequency of the filter, which could be as low as 20 Hz and as high as half of the sampling frequency.
  • If the filter is a band pass filter or a band stop filter, specify the second transition frequency. The applet expects that the second transition frequency is larger than the first one.
  • Specify the window function type in the last drop-down box (e.g., rectangular, Hann, Hamming, etc.). Note that some windows (e.g., flat top, Blackman-Harris) have large transition bands by design and that they may have other properties that make them useful (the flat top window, for example, has very small ripples in the pass band).

The applet will automatically redraw its graphs and will recompute the filter coefficients whenever a change to the filter data is made. The filter coefficients are printed at the bottom of the applet.


  • Version 1.0.0 of this applet was posted on 2010 09 07.
  • Version 1.0.1 of 2010 12 02 corrects for rounding errors in the computation of the Bartlett-Hann window. The errors produced a window that was not properly normalized and introduced loss of amplitude along the whole frequency spectrum.
  • Version 1.0.2 corrects errors in the computation of the zeroth order modified Bessel function of the first kind for the Kaiser window. This version was posted on 2011 01 04.